Comparaison de données sous Excel

Résolu
Bonjour,

Je suis à la recherche d'une solution pour résoudre le problème suivant :
J'ai deux listes numérotées que l'on peut donc assimiler à des tableaux de deux colonnes chacun, l'une comportant des numéros et l'autre comportant des mots.

Exemple liste 1 :
1 / Julien
4 / Patrick
6 / Jacques
8 / Matthieu
13 / Jean Michel

Exemple liste 2 :

1 / Gilbert
3 / Romain
4 / Patrick
6 / Marc
7 / Carine
8 / Jean
12 / Olivia
13 / Luc

On insère dans une feuille Excel la liste 2 ...
Est-il possible d'insérer la liste 1 à cette feuille en se basant sur les numéros ?
C'est-à-dire de faire en sorte que le mot « Patrick » soit directement assimilé au numéro « 4 » et que le nom « julien » vienne se placer au niveau du numéro « 1 » et du mot « Patrick » ...
Je ne sais pas si je me suis bien expliqué, mais la liste crée ressemblerait à çà :

Listes combinées :

1 / Gilbert / 1 / Julien
3 / Romain
4 / Patrick / 4 / Patrick
6 / Marc / 6 / Jacques
7 / Carine
8 / Jean / 8 / Matthieu
12 / Olivia
13 / Luc / 13 / Jean Michel

OU ENCORE :

1 / Gilbert / Julien
3 / Romain
4 / Patrick / Patrick
6 / Marc / Jacques
7 / Carine
8 / Jean / Matthieu
12 / Olivia
13 / Luc / Jean Michel

Merci par avance pour votre aide

10 réponses

  1. Contributeur
    Bonjour
    avec cette formule
    selon votre exemple, et à adapter:

    en feuille 1 liste des N° en colonne A et liste des noms en colonne B
    sur la feuille 2 liste des N° en A liste des noms en B
    tout ça à partir de la ligne 2

    sur feuille 2 en C2:
    =SI(NB.SI(A2;Feuil1!A:A)=0;"";RECHERCHEV(A2;feuil1!A:B;2;0))
    à tirer sur la hauteur de la liste

    la première partie de la formule est destinée à éviter un affichage d'erreur (#/NA) si la valeur ne se trouve pas dans la colonne A de Feuil1!

    Si vous voulez afficher aussi le N°:
    en colonne C:
    =SI(NB.SI(A2;Feuil1!A:A)=0;"";RECHERCHEV(A2;feuil1!A:B;1;0))
    et en colonne D
    =SI(NB.SI(A2;Feuil1!A:A)=0;"";RECHERCHEV(A2;feuil1!A:B;2;0))

    crdlmnt

    Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
    1
    1. Contributeur
      Bonjour,
      tes tableaux commence e,n A2 par ex

      en feuil2 ,C2
      =SI(NB.SI(Feuil1!A$2:A$6;A2)=0;"";RECHERCHEV(A2;Feuil1!A$2:B$6;2;0))

      tirer la formule vers le bas
      1
      1. Contributeur
        excuses moi , Vaucluse, je n'avais pas rafraichi...
        0
      2. Contributeur
        pas de problème, michel; deux fois valent mieux que pas du tout, et nous étions en synchro!
        crdlmnt
        0
    2. Merci beaucoup pour vos aides rapides et efficaces !! :p

      Cependant, est-ce que l'un d'entre vous pourrait m'expliquer pas à pas ce que signifie la formule ? Car j'aimerai beaucoup la comprendre..

      Merci encore pour votre aide
      0
      1. Contributeur
        dans l'onglet "astuces" de CCM rubrique bureautique tu as un topo "produit de la ferme" sur rechercheV

        comme c'est un véritable B.... dans cette rubrique
        https://www.commentcamarche.net/faq/24720-fonction-recherchev-sur-excel
        Michel
        0
        1. Par ailleurs, la formule que vous m'avez donné ne marche pas :-s ...

          Les résultats ne s'affichent pas en face des numéros correspondants ...

          De plus, serait-il possible à partir de deux listes de ne retenir que les résultats correspondants ?

          Exemple : à partir des listes suivantes :

          Liste 1

          1 / Chachi
          2 / Benji
          3 / Romain
          4 / Jean

          Liste 2

          1 / Chachi
          2 / Benji
          4 / Jean

          A partir de ces listes là, est-il possible de ne retenir que les noms et numéros qui correspondent, à savoir,

          1 / Chachi / 1 / Chachi
          2 / Benji / 2 / Benji
          4 / Jean / 4 / Jean

          ??
          0
          1. Contributeur
            Si les rèsultats ne sont pas en face des N° correspondant:
            _soit vos champs sont décalés
            _soit votre formule est mal entrée, et par exemple, ne comporte pas le 0 de la fin.

            votre seconde question, (qui aurait du être la premiére,non?)
            tout est possible, mais compte tenu des solutions, il faudrait soumettre un fichier modèle de vos données, même avec des données bidon, pour que l'on vous propose une solution.
            sur :
            http://www.cijoint.fr
            et revenez placer ici le lien donné par le site.
            a vous lire.
            crdlmnt
            0
        2. Bonjour,

          A partir du fichier suivant :
          http://www.cijoint.fr/cjlink.php?file=cj201107/cijAU0tJWK.xlsx

          Est-il possible d'insérer les mots (de la feuille 2)
          AA
          AZ
          AE
          AR
          AT
          AY
          AU
          AI
          AO
          AP
          AQ
          AS
          AD
          AF
          AG

          aux niveaux des chiffres

          2
          3
          5
          8
          10
          11
          14
          16
          18
          22
          23
          24
          27
          29
          30

          dans la feuille 1 ? Et le tout automatiquement ?

          Éventuellement, si mettre les tableaux l'un au dessus de l'autres simplifie les choses, considérons que nous mettons le tableau de la feuille 2 en "A34" de la feuille 1 ... Le but étant de trouver la solution la plus simple ^^ (je ne suis pas un AS d'excel)

          Merci par avance pour votre aide
          0
          1. Contributeur
            Re

            la formule en Feuil2 A2 , à, tirer vers le bas, devrait vous donner le résultat:

            =SI(NB.SI(Feuil2!A:A;A2)=0;"";RECHERCHEV(A2;Feuil2!A:B;2;0))

            crdlmnt
            0
            1. je ne comprends pas ... La formule ne marche toujours pas :s
              0
            2. Au temps pour moi, la formule était à appliquer en C1 feuille 1 !
              Celle ci marche très bien ...

              Cependant, je ne comprends pas très bien l'écriture de cette formule .. Pourriez vous me l'expliquer SVP ?
              0
            3. Contributeur
              RE

              effectivement, une petite erreur dans mon message pour définir la cellule ou placer la formule :-( !

              la formule:

              SI(NB.SI(Feuil2!A:A;A2)=0;"";
              cette partie est destinée à renvoyer une cellule sans affichage parasite si la valeur cherchée (A2) n'existe pas dans le tableau de références
              elle compte le nombre de fois où A2 se trouve dans la colonne A est renvoie "" (rien) si elle trouve 0.

              Si elle trouve 1, c'est l'item suivant qui est pris en compte,soit:

              RECHERCHEV(A2;Feuil2!A:B;2;0))

              recherche la valeur de A2 dans la première colonne du champ A:B(systématiquement pour le code RECHERCHEV) et ressort la valeur de la seconde colonne du champ, indiquée par la valeur 2.La valeur finale 0 est un code excel qui impose à la formule de ne pas considérer de valeur proche dans la recherche,(sinon, la colonne de recherche doit être classée, par ordre croissant, numérique ou alpha)

              bonne route
              0
            4. Merci beaucoup pour votre aide !! Je maîtrise désormais ces formules !!

              Je reviendrais probablement vers vous à travers ce topic si je rencontre un plus gros problème ^^

              encore merci
              0
          2. Re bonjour,

            Dans le cas suivant :

            1 / romain
            1 / Chachi
            2 / Arnaud
            3 / julien

            Avec la fonction RechercheV, il est possible de créer une cellule de recherche dans laquelle on entre un numéro (ici entre 1 et 3) et une cellule de résultats qui affiche le nom associé...

            Cependant, dans le cas présent, il y'a deux noms associés au numéro 1 ..
            Comment est-il possible d'afficher les deux noms (romain et chachi) en effectuant une seule recherche (nombre 1) ??
            0
            1. Contributeur
              Re

              Là, c'est plus compliqué. Vous trouverez ici un exemple qui fait ce que vous souhaitez avec une colonne complémentaire pour détecter et incrémenter les codes identiques.
              Les formules ont plus complexes et la position de la colonne de codage dans le tableau interdit d'utiliser le code RECHERCHE remplacé par la combinaison INDEX /EQUIV
              Il faut bien sur que vos codes cherchés soient bien numérique avec cette configuration.
              N'hésitez pas à revenir si besoin d'explications.

              https://www.cjoint.com/?AGurUUF65ZN

              crdlmnt

              ps: il suffit de changer le chiffre des tableaux en dessous de la cellule "Ref éditée pour avoir la liste ds noms correspondants

              Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
              0
              1. Merci encore pour vos réponses très instructives ...

                J'ai rencontré un nouveau problème ..
                Voilà :

                J'ai deux listes de deux colonnes :
                - L'une est composée du nom du produit et de son code bar
                - L'autre est composée du nom du produit et de son code image

                Objectif : Créer une seule et même liste avec le nom, le code bar et le code image de chaque produit ! (on utilise donc la fonction rechercheV)

                Les codes bar et codes image n'ont rien à voir ...

                Le problème est le suivant : Les noms des deux listes diffèrent un petit peu donc la fonction "RechercheV" n'est pas capable de reconnaître les noms qui diffèrent un peu trop.

                Est-il possible de gérer le seuil de tolérance de la fonction ?
                Est-il possible d'effectuer une recherche approximative ?

                Ps : La recherche s'effectue sur les noms des produits (des mots)
                0
                1. Contributeur
                  Bonjour
                  *Je n'ai pas trop compris ce que vous voulez faire, il serait plus facile de travailler avec un fichier modèle de vos données.
                  A tout hasard, pour "assouplir" la fonction RECHERCHEV, si vous avez dans toutes vos références une racine commune spécifique qui permet de les détecter
                  par exemple, pour trouver:
                  Xylophilogéne
                  vous pouvez entre la racine Xyloph si elle est spécifique au produit, ou philog ou lophilo etc...

                  pour l'exemple à adapter: en A1 entrez le texte de la "racine" cherchée, et seulement la racine.
                  dans la formule RECHERCHEV, écrivez=:
                  =RECHERCHEV("*"&A1"*";champ;n°de colonne;0)
                  le libellé:
                  "*"&A1&"*" pourra trouver la ligne dont le texte contient celui de A1 dans la 1° colonne du champ;

                  mais cela ne fonctionne pas sur des approximations.il faut que la racine soit exactement cobtenue dans le texte à trouver;

                  vous pouvez aussi remplacer l' adresse de la cellule A1 par un code sélectionnant une partie du texte à chercher si vous savez quelle est partie commune des textes de votre tableau (début, milieu, fin, avant un caractère particulier etc...
                  C'est pour cela que sans la liste de vos produits,il est difficile de vous donner la bonne solution
                  pour l'exemple Xilophilogène
                  vous pouvez dans la valeur cherchée du code RECHERCHE cet item:
                  =RECHERCHEV("*"&STXT(cell;1;5)&"*";..........) qui ne prendra en compte que les 5 premiers caractères du mot pour la recherche

                  Note: ce type de codification est applicable à toutes les formules qui fonctionne avec un point-virgule, mais pas avec le signe égal
                  par exemple
                  NB.SI(Champ;"*"&A1&"*") fonctionne
                  SI(Cellule="*"&A1&"*"... ne fonctionne pas.

                  bonne chance

                  crdlmnt
                  0
                2. Merci une fois de plus pour votre réponse ...
                  J'ai traité le problème autrement

                  Je ne suis pas encore à ce niveau ^^
                  0