Comparez deux listes et affichez les éléments manquants dans une feuille de calcul Google


9

J'essaie de trouver une solution pour comparer deux listes distinctes (invité - assisté) et créer une 3e liste (absente).

La fonction doit examiner la clé dans "Liste des participants (D, E, F)" et la comparer avec la clé dans "Liste invitée (A, B, C)", puis afficher les valeurs manquantes dans "Liste absente (G, H ,JE)".

À propos des données

  • La clé est une «valeur unique» attribuée à chaque personne invitée.
  • Les données de la "Liste des invités (A, B, C)" sont composées de données QUERY.
  • Les données de la "Liste sous surveillance (D, E, F)" copient / collent les valeurs dans les cellules.

Exemple de résultat souhaité

Invitded List (A,B,C)      Attended List (D,E,F)       Absent List (G,H,I)
 A      B       C            D      E       F            G      H        I
Key | Fname | Lname       | Key | Fname | Lname       | Key  | Fname | Lname
------------------------------------------------------------------- 
001   Tim     Smith         002  Mike     Jones         001    Tim     Smith
002   Mike    Jones         004  Jenny    Johnson       003    Amy     Wilson
003   Amy     Wilson
004   Jenny   Johnson

Toute aide est grandement appréciée.


Pourquoi vlookup ne fait pas le travail pour vous?
rahi

@rahi Merci d'avoir regardé cela. vlookup pourrait fonctionner, pouvez-vous me donner des instructions?
M. B

Réponses:


3

Vous pouvez essayer quelque chose comme ceci:

=if(countif(D:D,A2)=0,A2,"")  

puis copiez à travers et vers le bas pour convenir.

COUNTIF


Cela fonctionne comme un résultat partiel car il retournera des chaînes vides qui devraient être supprimées pour obtenir le résultat final souhaité.
Rubén

6

Formule

=ArrayFormula(FILTER(A4:C7,ISERROR(match(A4:A7,D4:D5,0))))

Explication

MATCH renvoie une erreur si l'invité n'apparaît pas dans la liste des participants. ISERROR convertit les erreurs en VRAI et les valeurs en FAUX Ce résultat est utilisé comme critère de filtrage. Le résultat est, la liste des absents:

|   001 |Tim       |Smith
|   003 |Amy       |Wilson

Ajoutez simplement les en-têtes appropriés au-dessus de la formule


0

RECHERCHEV est une autre façon d'obtenir la réponse que vous voulez, mais je ne sais pas si elle la présente comme vous le souhaitez.

Dans l'article d'aide de Google Sheets, RECHERCHEV,

Recherche une clé dans la première colonne d'une plage et renvoie la valeur d'une cellule spécifiée dans la ligne trouvée.

Donc, si vous ajoutez une Statuscolonne sur votre liste de participants, vous pouvez exécuter la VLOOKUPsur la liste invitée, lui demandant de renvoyer le Attendedstatut.

Vos données pourraient ressembler à ceci:

Avant RECHERCHEV

Dans la cellule D2, votre VLOOKUPformule ressemblerait à ceci:

=VLOOKUP(A2, E:H, 4, FALSE)

  • A2 C'est la clé
  • E:H est la plage (la liste des participants)
  • 4fait référence au numéro de colonne dans la plage de la valeur que vous souhaitez renvoyer
  • FALSE indique que vous recherchez une correspondance exacte sur la clé

Lorsque vous remplissez la formule de la cellule D2 à D5, vous vous retrouvez avec des données ressemblant à ceci:

Après RECHERCHEV

En cas de correspondance, la Statusvaleur est récupérée. Là où il n'y a pas de correspondance, vous voyez un #N/A.


Cela fonctionne comme un résultat partiel car il renverra des erreurs qui pourraient être utilisées pour filtrer plus tard la liste invitée afin d'obtenir le résultat final souhaité.
Rubén

0

Solution à une cellule:

La combinaison de la FILTERfonction avec la COUNTIFfonction vous fournit la liste que vous souhaitez:

=FILTER(A:C,COUNTIF(D:D,A:A)=0))

Dans cet exemple, j'ai utilisé la clé comme champ de correspondance en comparant la colonne A avec les correspondances en D, mais cela fonctionne également avec les autres colonnes.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.