Recherchv sur références similaire

Fermé
Maoandnano Messages postés 37 Date d'inscription lundi 8 janvier 2018 Statut Membre Dernière intervention 30 mai 2018 - 22 mai 2018 à 16:32
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 - 23 mai 2018 à 10:29
Bonjour,

je rencontre actuellement un problème, je travaille sur plusieurs fichiers qui vont chercher des références avec des recherchev ou des formules tels que celles-ci : INDEX(Feuil1!A:C;EQUIV(A1;Feuil1!C:C;0);1).

Mon problème vient du fait que des fois, dans les fichiers de recherche, il y a une référence associée à une case vide et une autre référence (la même) associée à une date .... sur le même fichier.

J'aimerai donc que ma recherchev ne prenne que la référence associé à la date et ne m'affiche pas la case vide.


2 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 411
Modifié le 22 mai 2018 à 16:45
Bonjour
si on comprend bien, vous pouvez avoir deux fois la même référence en colonne C, une avec une date en A et l'autre vide?
essayez alors (formule matricielle à limiter au nombre de lignes utiles pour ne pas alourdir le fichier):

=INDEX(Feuil1!$A$1:$C$100;SOMMEPROD(($C$1:$C$100=A1)*($A$1:$A$100>0)*(LIGNE($A$1:$A$100)));1)

formule à entrer 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
  • ne fonctionne que si une seule ligne contenant la référence contient une date
  • les champs commencent obligatoirement en ligne 1



ou plus simplement si vous ne voulez ressortir que la date de la colonne A, toujours en matricielle:

=MAX(SI(C1:C100=A1;B1:B100))

crdlmnt
0
Maoandnano Messages postés 37 Date d'inscription lundi 8 janvier 2018 Statut Membre Dernière intervention 30 mai 2018
22 mai 2018 à 16:44
Oui c'est exactement ça, je vais essayer votre solution, merci
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 411 > Maoandnano Messages postés 37 Date d'inscription lundi 8 janvier 2018 Statut Membre Dernière intervention 30 mai 2018
22 mai 2018 à 16:46
j'en ai rajouté une plus simple en fin de message si vous ne ressortez que la date
0
Maoandnano Messages postés 37 Date d'inscription lundi 8 janvier 2018 Statut Membre Dernière intervention 30 mai 2018
23 mai 2018 à 09:40
J'ai mis un document pour vous faire comprendre peu être un peu mieux mon problème
https://www.cjoint.com/c/HExhN6XUDsB

Encore merci
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 411
Modifié le 23 mai 2018 à 10:27
Bonjour
Plusieurs remarques:
  • 1°) pour le principe: vous avez "tiré" la formule vers le bas sans bloquer les adresses des plages, ce qui fait qu'elles se décalent à chaque ligne par ex: E6:F10 devient E7:F11 etc...

_il faut bloquer les plages avec les signes $ pour pouvoir tirer la formule, par ex:$E$6:$F$10
  • 2°)Accessoirement, la formule de recherche ne fonctionnera correctement (et encore, voir la suite au point suivant) que si vous compléter le code avec un 0 ou FAUX

exemple RECHERCHEV(I6;$E$6:$F$10;2;FAUX)) ou ;0)
sinon le code va chercher une valeur proche inférieure dans une liste classée
  • 3°)Après ces précisions sur le code RECHERCHEV, i reste à dire qu'il ne peut pas résoudre votre problème, car cette formule retournera toujours la 1° valeur de F sur la ligne qui contient le code en E. Autrement dit: ressort une date si la 1° ligne du code affiche une date, ne ressort rien si la 1° ligne du code est vide en F
  • 4°) d'où la nécessité d'utiliser une matricielle pour ressortir la valeur maximum de nF selon le code en E, soit en J6, et celle ci devrait convenir:

=MAX(SI(E6:E10=I6;F6:F10))
(Rappel matricielle à entrer avec la touche enter en maintenant les touches ctrl et shift enfoncées)
  • 5°) cette formule va renvoyer 0 quand le code est vide. (il n'y en a pas dans votre exemple)Deux options pour éviter ce 0:

soit vous allez dans les options Excel et dans "options avancées", vous décochez la ligne "afficher un 0 dans les cellules de valeurs nulles"
soit vous écrivez:
=SI(MAX(SI(E6:E10=I6;F6:F10))=0;"";MAX(SI(E6:E10=I6;F6:F10)))
toujours en matricielle
  • 6°) cette formule va vous renvoyer plusieurs fois le même résultat si vous avez plusieurs fois le même code en I c'est le cas en I6,I8,I10. Vous pouvez éviter ça en écrivant:

=SI(NB.SI($I$6:I6;I6)>1;"doublon";SI(MAX(SI($E$6:$E$10=$I6;$F$6:$F$10))=0;"";MAX(SI($E$6:$E$10=$I6;$F$6:$F$10))))

dans tous les cas, surveillez bien les positions des $ et l'entrée en matricielle
voila ce que ça pourrait donner:
https://mon-partage.fr/f/M0FiMwrT/
revenez si besoin
crdlmnt
0
Maoandnano Messages postés 37 Date d'inscription lundi 8 janvier 2018 Statut Membre Dernière intervention 30 mai 2018
23 mai 2018 à 10:23
Bonjour, il semblerait que votre réponse n'est pas était publié en entier.
Cordialement
Maoandnano
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 411
23 mai 2018 à 10:29
Elle était partie un peu vite, maintenant elle est complète
0