Excel : comparaison de listes

Résolu

Bonjour,

Je me retrouve avec une "équation" en 2 étapes.
J'ai 3 listes  :

  • QP (col A) la plus longue et complète
  • PRI, (col B) un premier tri : ils sont déjà dans QP mais avec un critère de plus (ex. âge)
  • Poten (col G) qui est une autre liste.

https://www.transfernow.net/dl/20250527LszkiK99

Questions :
- quelle formule utilisée dans Col C : Tous ceux qui sont QP mais pas PRI ?
- lorsque c'est effectif, le résultat est copié dans la colonne F puis on compare le résultat avec la liste Poten. Donc quelle formule utilisée dans col H : Tous ceux qui ne sont ni PRI ni Poten mais QPV ? soit en plus simple : H= F-G .

Dans ces 2 colonnes, je ne verrais que les noms des personnes absentes de B puis de G. Au besoin, il peut apparaitre dans les colonnes C et H : 0 pour dire que le nom est présent dans les 2 colonnes concernés.

La formule que j'ai : =SI(NB.SI(B:B;A3)=0;A3;"") est défaillante. D'où cette question.
J'espère avoir été claire.
Si besoin, n'hésitez pas à me demander une reformulation.

Je vous remercie pour vos conseils.

Bonne journée

Anne, utilisatrice de base Clin d’oeil
Windows / Chrome 136.0.0.0

3 réponses

Résumé de la discussion

Le besoin est d’extraire, à partir de QP (col A), les noms qui ne figurent pas dans PRI (col B) pour obtenir C, puis de retenir parmi ces noms ceux qui ne sont pas dans Poten (col G) afin d’obtenir H, avec H calculé à partir des éléments de F (la liste des QP sans PRI). Pour Excel 365, les solutions recommandées consistent à utiliser les formules FILTRE et NB.SI: en C5, =FILTRE(A5:A22;NB.SI(B5:B15;A5:A22)=0;""); et en H5, =FILTRE(F5:F22;((NB.SI(G5:G22;F5:F22)=0)*(F5:F22<>""));""), avec la possibilité d’utiliser C5# comme source pour éviter de recopier. Une alternative sans FILTRE existe, basée sur INDEX et AGREGAT pour agréger les valeurs manquantes. L’usage de plages non structurées facilite l’application des formules et évite les recopiages, ce qui permet d’obtenir les résultats directement.

Bobot (l’IA à votre service)
  1. Pour conserver les tableaux structurés :

    En C5, à recopier vers le bas :

    =SIERREUR(INDEX(A:A;AGREGAT(15;6;LIGNE([QP])/ESTNA(EQUIV([QP];[PRI
    (ils sont déjà de base QP)];0));LIGNE(A1)));"")

    En H5, à recopier vers le bas :

    =SIERREUR(INDEX(F:F;AGREGAT(15;6;LIGNE([Tous ceux qui sont
    QP mais pas PRI
    = COLONNE C])/ESTNA(EQUIV([Tous ceux qui sont
    QP mais pas PRI
    = COLONNE C];[Poten];0));LIGNE(F1)));"")

    Note, il faut conserver les sauts de ligne de la dernière formule.

    Daniel


    1
    1. je vais essayer.

      merci beaucoup

      0
    2. C'es parafait

      Merci beaucoup Daniel.

      En repassant en plage plutôt qu'en tableau, cela fonctionne parfaitement.

      Au TOP ! 

      Bonne journée

      Anne

      0
    3. @sourire_anne

      Bonjour à tous,

      Merci du retour. Bonne journée également.

      Daniel

      0
  2. Bonjour,

    Je ne comprends absolument pas ta demande ; tu ne donnes aucun exemple de réponse souhaitée dans ton tableau

    Pourquoi A3 dans la formule alors que les données sur le premier tableau commencent en ligne 5 ?

    Cordialement

    0
    1. bonjour,

      Daniel a proposé 2 réponses.

      Je vois avec celles-ci et reviens vers vous au besoin.

      Merci d'avoir pris le temps de regarder ma demande.

      0
  3. Bonjour,

    Solution avec Excel 365. Les colonnes contenant les formules ne doivent pas se trouver dans des tableaux structurés. J'ai convertis ces tableaux en plage. En C5 :

    =FILTRE(A5:A22;NB.SI(B5:B15;A5:A22)=0;"")

    En H5 :

    =FILTRE(F5:F22;((NB.SI(G5:G22;F5:F22)=0)*(F5:F22<>""));"")

    (formules uniques, ne pas recopier vers le bas).

    Daniel


    0
    1. Maintenant, en H5, tu n'as pas besoin de recopier la colonne C en F, tu peux faire référence aux données de C avec C5# :

      =FILTRE(C5#;((NB.SI(G5:G22;C5#)=0)*(C5#<>""));"")

      Daniel

      0
    2. Très bien Daniel.

      Puis je utiliser A$5 pour l'étendre jusqu'en bas ?

      0