Rechercher correspondance valeur dans un tableau

elbarto56 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Voici mon besoin :

J'ai un tableau sous cette forme :



Je voudrais insérer une colonne à droite (E) qui me donne pour chaque ligne, le délai écoulé entre l'envoi du 1er indice d'un devis et la date de réception de la commande (qui corredpond au dernier indice envoyé)
Exemple : ligne 2 et 6, il s'agit du même devis, et la commande a été reçu sur l'indice B. Il faut donc qu'en E2 et E6, j'ai le même résutat, c'est à dire le délai écoulé entre le 18/01/18 (date envoi 1er indice) et le 28/02/18 (date réception commande)

J'espère avoir été suffisamment clair....




A voir également:

3 réponses

Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Re
je n'avais pas tout à fait percuté sur votre tableau
je pense que la proposition de mdo100 est adaptée,
A vous de nous dire ce que vous en tireZ
crdlmnt

1
Jauster Messages postés 126 Date d'inscription   Statut Membre Dernière intervention   41
 
Hello,

Si il y a bien une chose que je ne maîtrise pas encore totalement sur Excel (sans parler du VBA évidemment, on en apprend toujours) c'est les fonctions matricielles, mais j'ai quelques questions concernant les différentes propositions.

La condition $A$2:$A$7=A2 ne sera pas toujours égale à 1 puisque la valeur est au moins une fois dans la liste ? (sauf si il ne compte pas A2 dans $A$2:$A$7). Ne faut-il pas utiliser quelque chose comme If(($A$2:$A$7=A2)>1;...) ?
0
mdo100 Messages postés 126 Date d'inscription   Statut Membre Dernière intervention   22
 
Salut Jauster,

La question posée est de connaître le nombre de jours écoulés entre la première date émise du devis N° x dans la colonne "C" et la date de réception du devis N° x dans la colonne "D".
Donc peut importe le nombre de fois que le devis N° x apparaît dans la colonne "A". puisque ce qui compte c'est la date de réception.

Est-ce plus clair pour toi ?

Cordialement.
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
... et en petit complément:
vous parlez d'utiliser IF... ça c'est pour la version anglaise.. dans la formule de mdo100, c'est le SI (french version) qui fait fonction et il y est bien!
crdlmnt
0
Jauster Messages postés 126 Date d'inscription   Statut Membre Dernière intervention   41
 
Oui, je tourne sur Excel ENG d'où mon abus de langage, désolé sur ce point.

Concernant cette histoire de date de réception :
Ce que je ne comprends pas c'est à quoi sert SI($A$2:$A$7=A2; puisque cette formule sera toujours vraie. Je pourrais encore comprendre si c'est pour forcer la sortie du chiffre 1 et ensuite fait une multiplication, mais la je suis perdu. Quelle est l'utilité du si ?

Avez-vous également un lien vers un bon tuto pour les fonctions matricielles ? Puisque la majorité des tutos que je trouve ne vont pas assez loin et survole juste le sujet.

Merci
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Cet élément sert à dire à Excel que pour trouver le MIN demandé, il ne faut prendre en compte dans la liste A2:A7 que uniquement les dates de D sur les lignes contenant le N° écrit en A2.
Sinon, il va vous ressortir le min de toute la liste de date
et c'est pour faire cette sélection que justement, la formule est matricielle
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Bonjour
essayez cette formule
attention, elle est matricielle et doit être entrée avec la touche enter en maintenant les touches ctrl et shift enfoncées
elle doit s'afficher automatiquement entre accolades dans la barre de formule
et elle est assez lourde, donc bien limiter les champs aux nombres de ligne utiles (dans l'exemple: ligne 2 à ligne 1000)

en E2 à tirer sur la hauteur:

=SI(D2="";"";D2-MIN(SI($A$2:$A$1000=A2);$B$2:$B$1000));"")

attention aux signes $ pour tirer la formule

crdlmnt

0
elbarto56 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour votre réponse.
Malheuresement, lorsque je valide la formule avec ctrl+shift+enter je n'ai pas d'accolades....
De plus la colonne C devrait intervenir dans la formule puisque c'est la date qu'il faut soustraire.
0
mdo100 Messages postés 126 Date d'inscription   Statut Membre Dernière intervention   22
 
Bonjour,

A essayer en "D2"
=SI(D2<>"";D2-MIN(SI($A$2:$A$7=A2;$C$2:$C$7;""));"")
Formule matricielle à valider avec ctrl + maj + entrée

Cordialement.
0
elbarto56 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   > mdo100 Messages postés 126 Date d'inscription   Statut Membre Dernière intervention  
 
Merci. La formule à l'air correcte mais je n'arrive pas à la valider avec ctrl+maj+entrée...les accolades ne veulent pas apparaitre...
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour,

C'est normal que tu aies de 2 dates de réception sur une même commande (lignes 5 et 7) ?
Dans ce cas la formule de mdo te renvoie 2 délais ayant pour départ la 1ère date de devis.
S'il ne te faut qu'une seule date :
=SI(ET(D2<>"";NB.SI($A$2:A2;A2)=NB.SI(A:A;A2));D2-INDEX(C:C;EQUIV(A2;A:A;0));"")

non matricielle, elle reste valable même si tu n'as qu'une seule date de réception bien sûr.
eric

PS : la prochaine fois fois dépose le fichier sur cjoint.com, ça évite de perdre du temps à le refaire.

0