XL 2019 RECHERCHEV dans une somme

  • Initiateur de la discussion Initiateur de la discussion alain160
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

alain160

XLDnaute Nouveau
Bonjour,
Comment faire fonctionner une recherche verticale lorsque la "table matrice" contient la valeur recherchée
mais à l'intérieure d'une somme.
Exemple:
Dans la colonne B j'ai ma formule =RECHERCHEV(A1;$D$1:$D$5;1;0)
En B1 la valeur recherchée n'est pas trouvée , ce qui est normal
Mais en B2 et B3, les valeurs recherchées se trouvent dans la cellule D3 mais sous forme de somme
Quelle formule utiliser pour trouver ces 2 valeurs ?
1630337002556.png
Merci par avance
 
Merci pour vos réponses.
Cette RECHERCHEV me sert à faire un état de rapprochement comptable.
C'est à dire à savoir quelles sont les valeurs de la colonne A qui n'existent pas en D ( donc pas comptabilisées).
En principe il doit y en avoir trés peu et donc une réponse #N/A me convient.
Je peux aussi ,lorsque je maitriserai la formule, l'aménager avec une formule "=si(xx" pour ne faire ressortir que les valeurs oubliées .......
Il existe aussi probablement d'autres façons d'y arriver........
Cordialement
 
Bonjour alain160, Wayki, JHA, le forum,

Voyez le fichier joint et cette fonction VBA :
VB:
Function RechercheSommeV(Valeur_cherchée As Double, Plage As Range, Numéro_colonne As Integer)
Dim derlig&, tablo, i&, x$, j%
derlig = Plage.Parent.UsedRange.Row + Plage.Parent.UsedRange.Rows.Count
tablo = Plage.Columns(1).Resize(derlig - Plage.Row + 1).Formula 'matrice, plus rapide, au moins 2 éléments
For i = 1 To UBound(tablo)
    x = "+" & tablo(i, 1)
    j = InStr(x, Valeur_cherchée)
    If j Then If Not IsNumeric(Mid(x, j - 1, 1)) And Val(Replace(Mid(x, j), ",", ".")) = Valeur_cherchée _
        Then RechercheSommeV = Plage(i, Numéro_colonne): Exit Function
Next
RechercheSommeV = [NA()]
End Function
Le code doit impérativement être placé dans un module standard.

A+
 

Pièces jointes

La macro du post #9 ne donne pas toujours le bon résultat, utilisez celle-ci :
VB:
Function RechercheSommeV(Valeur_cherchée, Plage As Range, Numéro_colonne%)
Dim derlig&, tablo, i&, s, j%
derlig = Plage.Parent.UsedRange.Row + Plage.Parent.UsedRange.Rows.Count
tablo = Plage.Columns(1).Resize(derlig - Plage.Row + 1).Formula 'matrice, plus rapide, au moins 2 éléments
For i = 1 To UBound(tablo)
    s = Split(Replace(Replace(tablo(i, 1), "=", ""), "+", " "))
    For j = 0 To UBound(s)
        If s(j) = Valeur_cherchée Then RechercheSommeV = Plage(i, Numéro_colonne): Exit Function
Next j, i
RechercheSommeV = [NA()]
End Function
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
100
Retour