Propagation de formule

Bonjour,

J'ai un tableau en A1:C10 avec trois en-têtes: date | nom | statut.

Je veux en extraire le nombre de fois que chaque personne a eu le statut "Absent".

Première étape: F2 = unique(B2:B10) me donne une liste des noms sans doublons (mettons que je n'ai que 2 noms -> J'ai donc un nom en F2 et l'autre en F3

Seconde étape: G2 = somme((B$2:B$10=F2)*(C$2:C$10="Absent")

Troisième étape: je propage la formule en G2 jusqu'à la fin de ma liste de noms sans doublons ( donc pour l'exemple, je propage à G3)

Si je rajoute un nom dans mon tableau, la formule unique se modifie automatiquement en =unique(B2:B11), et rajoute donc le nouveau nom à la liste, en F4

Les formules G2 et G3 étendent automatiquement la plage à B$2:B$11.

Jusque là tout s'actualise tout seul. Mais comment faire pour que la formule se propage "toute seule" à G4?

Si j'avais pu faire un tableau, la formule se propagerait automatiquement lorsque je rajoute une ligne, mais je ne peux pas faire de tableau avec une formule "=unique(...)".

Une astuce?


Windows / Firefox 107.0

3 réponses

  1. Contributeur

    Bonjour.

    Je ne connais pas certaines de tes fonctions.

    Je suppose que tu utilises une version en ligne d'Excel, genre 365 ou 2016 ?


    0
    1. J'utilise Excel 2016, mais pas en ligne.

      0
      1. Bonjour,

        En principe, la fonction UNIQUE n'est disponible que pour la version Excel 365 ?

        Essaie avec un tableau structuré pour tes données et essaie :

        en F2 
        =UNIQUE(Tableau1[Nom])
        en G2
        =NB.SI.ENS(Tableau1[Statut];"absent";Tableau1[Nom];F2#)

        Cordialement

        0
    2. Bonjour,

      Effectivement j'ai dit une bêtise, on est passé à Excel 365 il n'y a pas longtemps.

      Je te remercie pour tes conseils qui fonctionnent bien.

      Je ne connaissais pas la notation F2#, à quoi correspond le dièse?

      0
      1. Bonjour,

        F2# permet de prendre en compte toute la plage dynamique référencée par la formule de la cellule F2 et pas simplement une plage fixe comme F2:F10 par exemple.

        Tu pourrais aussi mettre en G2 directement :

        =NB.SI.ENS(Tableau1[Statut];"absent";Tableau1[Nom];UNIQUE(Tableau1[Nom]))

        Et comme tu as Excel 365, tu peux également faire une seule formule dynamique pour tes deux colonnes en les assemblant par :

        =ASSEMB.H(UNIQUE(Tableau1[Nom]);NB.SI.ENS(Tableau1[Statut];"absent";Tableau1[Nom];UNIQUE(Tableau1[Nom])))
        
        ou même mieux en utilisant la fonction LET :
        
        =LET(n;Tableau1[Nom];s;Tableau1[Statut];nu;UNIQUE(n);ASSEMB.H(nu;NB.SI.ENS(s;"absent";n;nu)))

        Cordialement

        0