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. 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)
    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
    2. Merci une fois de plus pour votre réponse ...
      J'ai traité le problème autrement

      Je ne suis pas encore à ce niveau ^^
  2. 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?
    1. 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) ??
      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
        1. je ne comprends pas ... La formule ne marche toujours pas :s
        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 ?
        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
        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
      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
        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

          ??
          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
        2. 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
          1. 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
            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. Contributeur
                excuses moi , Vaucluse, je n'avais pas rafraichi...
              2. Contributeur
                pas de problème, michel; deux fois valent mieux que pas du tout, et nous étions en synchro!
                crdlmnt
            2. 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?