Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

sens de la recherche avec INDEX et EQUIV ?

4 réponses
Avatar
didadel
Bonjour,

Sur une feuille excel, je saisie quotidiennement l'arriv=E9e de colis
pour des personnes qui sont generalement les memes.
Pour m'eviter de saisir a chaque fois le N=B0 de bureau de ces personnes
(elles, sont reconnues par excel lors de la saisie ;-) j'ai inser=E9 une
formule qui recherche dans mon propre tableau a partir de la ligne
precedente.
Le soucis, c'est que ces personnes change de bureau et meme si je
change manuellement le N=B0 lors de la saisie, les fois d'apres il me
reaffiche l'ancien N=B0 de bureau.

Cela viens t'il du fait que la recherche dans le tableau se fait de
haut en bas et m'est il possible d'inverser ce sens de fa=E7on a avoir
le N=B0 des bureaux mis a jour precedemment ?

J'espere avoir ete clair et que qqu'un pourras me renseigner, merci,
didier

4 réponses

Avatar
JB
Bonjour,


PJ: http://cjoint.com/?mCoioNZTqC

A B
1 110 aa
2 112 bb
3 115 cc
4 113 dd
5 114 ee
6 113 ff
7 112 gg


Solution formule standard:

=INDEX(B1:B7;MAX(SI(D2:A7;LIGNE(INDIRECT("1:"&LIGNES(A1:A7)));0)))
Valider avec Maj +ctrl+entrée

D2 contient la valeur cherchée:

Solution fonction perso:

=INDEX(B1:B7;EQUIVInv(D2;A1:A7))

Pour 113 cherché, on obtient ff

Dans un module:

Function EquivInv(v, champRech As Range)
Dim temp
temp = 0
For i = champRech.Count To 1 Step -1
If v = champRech(i) Then
temp = i
Exit For
End If
Next i
EquivInv = temp
End Function

Cordialement JB
Avatar
didadel
Merci JB pour la reponse

A B
1 mr X bur 01
2 mr FF bur 03
3 mr X bur 07 (nouv. bureau saisie manuellement)
4 mr X bur 01 (reponse de ma formule lors d'une nouvelle
saisie)


Dans ma formule (qui se trouve en B4) :
=SI( A4="";"";INDEX(A$1:B3;EQUIV(A4;A$1:A3;0);2))
Je cherche dans le tableau que constitue les lignes precedentes but je
n'est pas mon nouveau bureau qui se trouve en B3 mais celui de la 1ere
ligne.

Qu'en penses tu ?

merci, didier
Avatar
JB
Avatar
didadel
Bonjour jb et encore merci

La formule de base est super tant que je ne touche pas aux lignes que
j'ai saisie ( je les deplace pour les mettre dans un certain ordre) ;
et des lors plus rien ne vas ;-(
Je pense que la fonction serais plus adaptée but j'ai mis la fonction
dans module et son appel (=index.....) dans la cellule que je cherche a
obtenir......rien ne se passe ;-(

Si je peu abuser une derniere fois de tes competences et apres promis
j'me tais.

merci, didier