Recherche avec matrice variable

Résolu
Ohlala88 Messages postés 9 Statut Membre -  
Ohlala88 Messages postés 9 Statut Membre -
Bonjour à tous.
Je suis nouvellement confrontée aux fameuses formules dans Excel...
Voici mon problème!!

J'ai une base de donnée en Première feuille, qui inclut plein d'informations sur les clients.
J'ai une 2e feuille dans laquelle j'entre des données mensuelles sur des modifications apportées à leur système (toujours des nombres, triées de janvier à décembre)

Dans la première feuille, j'ai une cellule que je veux qui rapporte à la dernière donnée entrée sur la ligne correspondant à ce même nom de client de la 2e feuille.
Le trouble est que je change souvent le triage de ces clients selon différentes données, que ce soit dans un tableau ou dans l'autre... donc le numéro de la ligne peut changer... c'est pourquoi je veux que le nom du client soit ma référence!

Ce qui m'a rapproché le plus était:
=RECHERCHE(9^9;Feuil2!5:5)
Mais la ligne varie... j'ai donc essayé avec des recherches supplémentaires, sans succès...

J'ai essayé avec RECHERCHEV aussi, mais je n'arrive pas à rendre mon numéro de colonne variable!!!

J'ai aussi essayé avec des formules de SI, mais un message d'erreur me dit qu'il y a trop d'imbrications...

Pouvez-vous m'aider?

Merci!

6 réponses

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Bonjour,

    pour essayer de comprendre la structure du fichier et tester des formules il serait préférable de joindre un exemple de fichier anonymisé.
    Pour joindre éventuellement un fichier

    1) Tu vas dans https://www.cjoint.com/
    2) Tu cliques sur [Parcourir] pour sélectionner ton fichier (15 Mo maxi)
    3) Tu défiles vers le bas pour cliquer sur le bouton bleu [Créer le lien Cjoint]
    4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien en gras ; tu fais un clic-droit dessus et tu choisis "Copier le lien"
    5) Tu reviens dans ta discussion sur CCM, et dans ton message tu fais "Coller".
    =>Voir la fiche https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers

    dans le même style tu as https://mon-partage.fr/
    0
  2. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonsoir
    difficile d'imaginer la structure de votre fichier avec votre message, vous parlez de ligne et de colonne
    pouvez vous déposer un modèle "bidonné" si confidentialité ici:
    http://mon-partage.fr
    et revenir coller le lien créé sur le site
    rajoutez des commentaires dans le fichier, voire des exemples de résultats attendus.
    A vous lire
    crdlmnt
    0
  3. titeufdu89 Messages postés 387 Statut Membre 38
     
    Bonjour,

    As-tu essayé avec la fonction "indirect" pour passer ta colonne en variable dans ta "recherchev"?
    Sinon un petite exemple de ton fichier serait le bienvenu pour pouvoir t'aider de façon plus pertinente.
    Si tu pouvais poster un exemple sans éléments confidentiels, ce serait li'déal.

    A bientot

    Jc
    0
    1. Ohlala88 Messages postés 9 Statut Membre
       
      J'ai tenté avec INDIRECT, mais je ne comprends pas tout à fait comment! Ça me renvoie le numéro de la ligne où se trouve mon information... mais pas la donnée que je cherche!

      https://www.cjoint.com/c/HKCrbKrIhSr
      0
  4. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    en D2 colle cette formule et incrémente la vers le bas

    =RECHERCHE(9^9;INDIRECT("Feuil2!"&EQUIV(A2;Tableau1[Nom du client];0)+1&":"&EQUIV(A2;Tableau1[Nom du client];0)+1))
    0
    1. titeufdu89 Messages postés 387 Statut Membre 38
       
      Génial! Je connaissais pas cette fonction :-)
      9^9 ça renvoi la dernière colonne non vide c'est ça?
      Merci
      Jc
      0
    2. Ohlala88 Messages postés 9 Statut Membre
       
      Wow, merci infiniment, ça fonctionne!!!!

      Donc, si je comprends un peu la formule...
      Indirect fait en sorte que je cherche un texte...
      Equiv sert à faire un autre type de recherche?

      Je me doutais que ces fonctions me seraient utiles, mais je ne les saisis pas tout à fait... Pourriez-vous me les expliquer avec mon exemple?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Salut titeuf,

    oui tout à fait te donne la dernière valeur d'un ligne ou colonne mais la syntaxe est différente lorsque la plage contient des valeurs numériques, du texte, si tu veux plus d'explications fait signe.

    pour ohlala
    décomposition de la formule
    =EQUIV(A2;Tableau1[Nom du client];0) te donne l'index ligne du nom trouvé dans ton tableau pour A ligne 1 du tableau mais l'index ligne de la feuille Excel est le 2 donc il faut rajouté +1 ce qui donne EQUIV(A2;Tableau1[Nom du client];0)+1

    comme la formule de bas est =RECHERCHE(9^9;Feuil2!2:2)
    on va remplacer dans ta formule Feuil2!2:2 avec la syntaxe INDIRECT
    soit
    INDIRECT("Feuil2!"&EQUIV(A2;Tableau1[Nom du client];0)+1&":"&EQUIV(A2;Tableau1[Nom du client];0)+1)

    ce qui donne en formule terminée
    =RECHERCHE(9^9;INDIRECT("Feuil2!"&EQUIV(A2;Tableau1[Nom du client];0)+1&":"&EQUIV(A2;Tableau1[Nom du client];0)+1))

    0
    1. Ohlala88 Messages postés 9 Statut Membre
       
      Je retrouve un petit problème rendu à ma base de donnée originale... La ligne recherchée n'est pas toujours la "+1"... Donc rendu à un moment où ma base de donnée a changé, l'info renvoyée est celle de la cellule au dessus... donc ma liste n'est plus exacte... Comprenez-vous ce que je veux dire?
      0
    2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
       
      regarde comme cela

      =RECHERCHE(9^9;INDIRECT("Feuil2!"&EQUIV(A2;Feuil2!A:A;0)&":"&EQUIV(A2;Feuil2!A:A;0)))

      et s'il y a des lignes vides
      =SIERREUR(RECHERCHE(9^9;INDIRECT("Feuil2!"&EQUIV(A2;Feuil2!A:A;0)&":"&EQUIV(A2;Feuil2!A:A;0)));"")
      0
    3. Ohlala88 Messages postés 9 Statut Membre
       
      On y est presque, mais j'ai encore des décalages qui sont occasionnés... donc la recherche ne varie pas en fonction de la ligne du nom... mais bien en fonction de la position de ladite ligne...??
      0
    4. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
       
      Re,

      je ne comprends pas, avec ma dernière formule
      =SIERREUR(RECHERCHE(9^9;INDIRECT("Feuil2!"&EQUIV(A2;Feuil2!A:A;0)&":"&EQUIV(A2;Feuil2!A:A;0)));"")

      quelque soit le filtrage sur l'une ou l'autre des feuilles la valeur est bien affichée en face le nom concerné.

      L'ami Vaucluse que je salue a apporté sa contribution que je n'ai pas regardée et connaissant ses valeurs regarde son fichier et apporte lui une réponse.
      0
    5. Ohlala88 Messages postés 9 Statut Membre
       
      Bon.. je ne sais pas ce que je faisais d'incorrect plus tôt, mais là, ça fonctionne parfaitement!!!
      Merci infiniment!
      0
  7. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Re
    voyez ici, je ne suis pas sur d'avoir compris
    Revenez si ça ne convient pas
    https://mon-partage.fr/f/ruHQv4Uj/
    il y a quelques explications dans a feuille
    crdlmnt

    0
    1. Ohlala88 Messages postés 9 Statut Membre
       
      Woah. C'est effectivement une formule assez complexe!... Je ne crois pas être assez avancée pour la transférer dans mon document officiel!!
      0