Excel Formule

Elsa1603

XLDnaute Nouveau
Bonjour à tous,

Pouvez-vous m'éclairer à propos d'une formule que je recherche ? Voici ci-joint le problème.
Le contenu de la cellule G5 doit être égale au contenu de la cellule qui est à gauche de la cellule dont le contenu est "1" entre D4 et D11. Donc G5 doit être égale à la valeur 126.


Merci :)
 

Pièces jointes

  • Problème EXCEL.xlsx
    13.2 KB · Affichages: 27
  • Problème EXCEL.xlsx
    13.2 KB · Affichages: 33

mutzik

XLDnaute Barbatruc
Re : Excel Formule

Bonjour Elsa, les hommes, le forum

une 3ème solution avec recherchev (en inversant les colonnes de volume et BEC)

elle n'aura que l'embarras du choix
 

Pièces jointes

  • xld.xlsx
    14 KB · Affichages: 32
  • xld.xlsx
    14 KB · Affichages: 28

job75

XLDnaute Barbatruc
Re : Excel Formule

Bonjour à tous,

Une 4ème solution pour ceux qui aiment bien avoir une formule unique.

Formule matricielle en G5 à valider par Ctrl+Maj+Entrée et tirer à droite et en bas :

Code:
=INDEX($C$1:$C$23;PETITE.VALEUR(SI($D$1:$D$23=G$3;LIGNE($D$1:$D$23));$F5))
Fichier joint.

A+
 

Pièces jointes

  • Problème EXCEL(1).xlsx
    14 KB · Affichages: 28

job75

XLDnaute Barbatruc
Re : Excel Formule

Re,

Pas de VBA ???

Pourquoi pas, mais ici c'est nettement plus compliqué que les formules.

Macro évènementielle dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dest As Range, ncol%, mot$, c As Range, n&, a, b
Set dest = [F5] 'début du tableau de destination, à adapter
ncol = 9 'nombre de colonnes, à adapter
mot = UCase("godet") 'mot cherché, à adapter
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
dest.Resize(Rows.Count - dest.Row + 1, ncol).ClearContents 'RAZ
For Each c In Me.UsedRange
  If UCase(c) = mot Then
    n = n + 1
    With c.CurrentRegion
      a = Application.Transpose(.Columns(3))
      b = Application.Transpose(.Columns(2))
      tri a, b, 1, UBound(a)
      dest(n).Resize(, ncol) = b
      dest(n) = n
    End With
  End If
Next
Application.EnableEvents = True 'réactive les évènements
End Sub

Sub tri(a, b, gauc, droi)      ' Quick sort
Dim ref, g, d, temp
ref = a((gauc + droi) \ 2)
g = gauc: d = droi
Do
    Do While a(g) < ref: g = g + 1: Loop
    Do While ref < a(d): d = d - 1: Loop
    If g <= d Then
      temp = a(g): a(g) = a(d): a(d) = temp
      temp = b(g): b(g) = b(d): b(d) = temp
      g = g + 1: d = d - 1
    End If
Loop While g <= d
If g < droi Then Call tri(a, b, g, droi)
If gauc < d Then Call tri(a, b, gauc, d)
End Sub
Fichier joint, validez ou modifiez une cellule quelconque.

A+
 

Pièces jointes

  • Problème EXCEL par VBA(1).xlsm
    21.8 KB · Affichages: 18

job75

XLDnaute Barbatruc
Re : Excel Formule

Re,

Noter que si les titres des séries sont au-dessus des tableaux il n'y a pas à modifier la macro.

Fichier (1 bis).

Edit : si les séries portent un nom on utilisera plutôt :

Code:
'-----
      dest(n) = Split(.Cells(1))(1)
Fichier (1 ter).

A+
 

Pièces jointes

  • Problème EXCEL par VBA(1 bis).xlsm
    20.8 KB · Affichages: 22
  • Problème EXCEL par VBA(1 ter).xlsm
    20.9 KB · Affichages: 20
Dernière édition:

Discussions similaires

Réponses
9
Affichages
369

Statistiques des forums

Discussions
314 221
Messages
2 107 489
Membres
109 835
dernier inscrit
Marie Bénédicte