Problème recherche V excel

Résolu

Bonjour

sur mon fichier à partir de la ligne 50 j ai des formules recherche v mais la table matrice (onglet liste déroulante) n'est pas figée on est amené à insérer ou supprimer des lignes et là c'est la cata dans la recherche V de la feuille 1 au lieu d avoir en 

B50: =RECHERCHEV($B$21;'liste déroulante'!2:2;2;FAUX)

B51 =RECHERCHEV($B$21;'liste déroulante'!3:3;2;FAUX)

B52=RECHERCHEV($B$21;'liste déroulante'!4:4;2;FAUX)

je me retrouve soit avec

B50: =RECHERCHEV($B$21;'liste déroulante'!2:2;2;FAUX)

B51=RECHERCHEV($B$21;'liste déroulante'!#REF!;2;FAUX)

B52=RECHERCHEV($B$21;'liste déroulante'!4:4;2;FAUX)

soit avec

B50: =RECHERCHEV($B$21;'liste déroulante'!2:2;2;FAUX)

B51=RECHERCHEV($B$21;'liste déroulante'!#REF!;2;FAUX)

B52=RECHERCHEV($B$21;'liste déroulante'!3:3;2;FAUX)

ce qui est moins dramatique que le premier résultat car ma ligne 3 est bien reprise alors que dans l'autre cas elle disparait carrément.

Y a t il une solution pour ne pas corrompre les formules de recherche lorsque des lignes sont insérées ou supprimées de la table matrice

https://www.cjoint.com/QS_MODELE-FICHIER.xlsm

merci d avance

Cdt

7 réponses

  • Votes
  • Date
  • Date décroissante
Résumé de la discussion

Le problème survient lorsque les lignes de la table matrice peuvent être insérées ou supprimées, ce qui déplace les références fixes (2:2, 3:3, 4:4) et peut générer des erreurs #REF!. Une solution robuste consiste soit à convertir la matrice en Table et à utiliser une approche INDEX/MATCH plutôt que RECHERCHEV, soit à employer une plage nommée dynamique pour éviter les références figées. Par exemple, avec une plage nommée donnees, on peut écrire =INDEX(donnees[#Tout],EQUIV($B$21;'liste déroulante'!$A:$A;0),2) et adapter pour les autres colonnes. Il est également conseillé d’éviter les cellules fusionnées, qui compliquent les calculs, et de privilégier des références structurées pour garantir la stabilité des formules lors des insertions ou suppressions de lignes.

Bobot (l’IA à votre service)
  1. Bonjour,

    Juste au passage vos formules devraient-être de cette forme, si bien compris :

    B50=RECHERCHEV($B$21;donnees;Feuil1!2;FAUX)
    E50=RECHERCHEV($B$21;donnees;Feuil1!3;FAUX)
    

    1. Bonjour,

      Une erreur c'est glisser dans la formule, voici la bonne:

      B50=RECHERCHEV($B$21;donnees;2;FAUX)
       
      E50=RECHERCHEV($B$21;donnees;3;FAUX)
  2. Bonjour,

    Essaie, en B50 :

    =INDEX(donnees[#Tout];EQUIV($B$21;'liste déroulante'!$A:$A;0);2)

    Adapte pour les autres cellules.

    Daniel


    1. bonjour

      merci ça fonctionne si je supprime des lignes mais le problème c'est que la recherche se fait par colonne et le résultat affiché est donc le premier trouvé qui se répercute plusieurs fois

      il faut que dans la ligne 50 de la feuille 1 la recherche se fasse sur la ligne 2 de la feuille liste déroulante

      dans la ligne 51 de la feuille 1 la recherche se fasse sur la ligne 3 de la feuille liste déroulante...

      la valeur recherchée apparait sur plusieurs lignes de la feuille liste déroulante et il faut que toutes les données trouvées dans chaque ligne de cette feuille se répercutent sur la feuille 1

    2. @AUDREYLAB

      Bonjour,

      Il serait plus simple de mettre manuellement les résultats à obtenir sur votre fichier exemple

      Dans votre formule vous rechercher la correspondance pour $B$21          ce qui ne correspond pas à votre dernière explication...!                               

    3. @AUDREYLAB

      si je fais un mix de votre formule et la mienne pour une recherche par ligne en mettant par exemple dans la cellule B50 de la feuille 1 pour une recherche en ligne 4 de la feuille liste déroulante =INDEX(donnees[#Tout];EQUIV($B$21;'liste déroulante'!4:4;0);2) le résultat affiché n'est pas ce que contient la cellule de la quatrième ligne de la deuxième colonne mais l’entête de la deuxième colonne

    4. @AUDREYLAB

      Bonjour à tous,

      Ca aiderait aussi d'écrire en toutes lettres ce que tu cherches à obtenir avec deux ou trois exemples à la clé.

      Daniel

    5. @Le Pingou

      https://www.cjoint.com/c/NJBrxsn0cW1

      https://www.cjoint.com/c/NJBrycM5Xg1

      voici deux exemples avec une valeur de recherche différente en B21 et le résultat souhaité en feuille 1 dans le tableau à partir de la ligne 50, j ai filtré les résultats affichant #N/A

      pas toujours facile d'expliquer par écrit ce qu'on cherche à obtenir , désolée

  3. merci je n'ai pas la même version chez moi qu'au travail donc il faudra que j'ouvre votre fichier au travail car là quand j ouvre je ne vois pas de formules mais uniquement des résultats affichés

    apparemment j'ai 2007

    1. Bonjour,

      J'ai un peut d'avance et voici ma proposition que vous découvrez sur le fichier ;

      https://www.cjoint.com/c/NJBvJwbvK4Z

      Note: je l'ai réalisé pour les 10 premier N° de ligne. Il est aussi nécessaire de supprimer la fusion des cellules .


      1. Bonjour

        Je prends connaissance de votre message, merci pour le temps passé, je vais regarder et reviendrai vers vous

        merci bonne journée

      2. je viens de regarder, je ne comprends pas tout mais ça fonctionne, c'est top :-)

        merci beaucoup

        par contre pourquoi il faut supprimer la fusion de cellules? car je viens de tester en laissant les cellules fusionnées et cela fonctionne très bien aussi et au moins le texte est centré c'est mieux visuellement.

        Si je les laisse fusionnées je peux avoir un problème lors d'une certaine manip qui ne me vient pas à l'esprit tout de suite?

        j'attends quand même votre retour sur ce dernier point avant de passer la conversation en résolu

        encore merci

    2. Bonjour,

      Certaines formules matricielles ne font pas bons ménages avec les cellules fusionnées. Si vous voulez centrer sur plusieurs colonnes vous pouvez le faire comme suit :


      1. MERCI BEAUCOUP c'est juste parfait

        Bonne fin de journée