Comment calculer le nombre de cellules différentes d'une plage ?

Nicolas06

XLDnaute Junior
Bonjour,

Je voudrai savoir comment calculer le nombre de cellules différentes d'une même plage, sans passer par des colonnes intermédiaires (cela pourrait être une sorte de NBval, mais qui ne calculerai pas le nombre de cellules non vides d'une plage mais différentes) --> cf fichier joint

Quelqu'un peut il m'aider ???

Merci d'avance
 

Pièces jointes

  • excel.xlsx
    9.3 KB · Affichages: 190
  • excel.xlsx
    9.3 KB · Affichages: 208
  • excel.xlsx
    9.3 KB · Affichages: 215

Nicolas06

XLDnaute Junior
Re : Comment calculer le nombre de cellules différentes d'une plage ?

Bonjour david84,

Merci pour ta formule!!
La 2eme marche mieux dans mon cas, mais il manque juste un petit détail pour qu'elle devienne encore plus efficace :
J'aimerai pouvoir ajouter un nom de société dans ma colonne A différent de ceux déjà présents, et que la formule recalcule automatiquement le nouveau résultat sans avoir à la retoucher "manuellement", est-ce possible ?

=SOMME(N(FREQUENCE(EQUIV(A4:A23;A4:A23;0);LIGNE(A1:A23))>0))

Par ex, il faudrait pouvoir demander dans la formule ci-dessus de tirer les lignes vers l'infini (au lieu de s'arrêter à A23)


Merci d'avance!
 

CISCO

XLDnaute Barbatruc
Re : Comment calculer le nombre de cellules différentes d'une plage ?

Bonjour à tous, bonjour David84, bonjour Nicolas06.

Cf. en pièce jointe, la formule avec la plage dynamique listeA =DECALER(Feuil1!$A$4;;;EQUIV("zz";Feuil1!$A:$A;1)-3).

@ plus
 

Pièces jointes

  • excel.xlsx
    10.6 KB · Affichages: 206
  • excel.xlsx
    10.6 KB · Affichages: 224
  • excel.xlsx
    10.6 KB · Affichages: 217

david84

XLDnaute Barbatruc
Re : Comment calculer le nombre de cellules différentes d'une plage ?

Re
Bonjour Cisco,
Code:
=SOMME(N(FREQUENCE(EQUIV(listeA;listeA;0);[B]LIGNE(A1:A23)[/B])>0))
Attention car au-delà d'un certains nombre de données dans la colonne A, la matrice d'intervalle de ton fichier faussera le résultat.
Tu peux bien sûr créer classiquement une autre plage dynamique pour cette partie-là (ou ajouter à ListeA un nombre), mais tu peux également utiliser le tableau de données ramené par
Code:
EQUIV(listeA;listeA;0)
comme matrice d'intervalle, ce qui donne au final :
Code:
=SOMME(N(FREQUENCE(EQUIV(listeA;listeA;0);EQUIV(listeA;listeA;0))>0))
Comme cela, pas besoin d'une autre plage dynamique ou de bidouiller la plage en rajoutant le nombre adéquat (toujours fragile comme possibilité car la moindre insertion de ligne peut fausser le résultat).
A+
 

Nicolas06

XLDnaute Junior
Re : Comment calculer le nombre de cellules différentes d'une plage ?

Bien vu david84, la formule proposée par Cisco ne marche plus à partir de quelques lignes ajoutées, à moins de bidouiller le code, et la tienne marche parfaitement sans avoir à faire de retouches

Merci encore à vous 2!!!
A+
 

CISCO

XLDnaute Barbatruc
Re : Comment calculer le nombre de cellules différentes d'une plage ?

Bonsoir

@ David84 : Oui, effectivement, dans la précipitation, je n'avais pas vu le A1:A23 à la fin de la formule. Je cherchais surtout à montrer à Nicolas06 comment faire une plage dynamique. On peut aussi faire avec
Code:
SOMME(N(FREQUENCE(EQUIV(listeA4;listeA4;0);LIGNE(listeA1))>0))
listeA1 =DECALER(Feuil1!$A$1;;;EQUIV("zz";Feuil1!$A:$A;1))
listeA4 =DECALER(Feuil1!$A$4;;;EQUIV("zz";Feuil1!$A:$A;1)-3)


@ Nicolas06 : Par contre, je ne vois pas pourquoi tu préfères la formule avec FREQUENCE, un peu longue. Autant faire avec la formule :
Code:
SOMMEPROD(1/NB.SI(listeA;listeA))
qui est plus courte

@ plus
 
Dernière édition:

david84

XLDnaute Barbatruc
Re : Comment calculer le nombre de cellules différentes d'une plage ?

Re
Par contre, je ne vois pas pourquoi tu préfères la formule avec FREQUENCE, un peu longue. Autant faire avec la formule :
Code :
SOMMEPROD(1/NB.SI(listeA;listeA))

Dans le cas présent, d'accord avec Cisco.
Par contre,
SOMMEPROD(1/NB.SI(plage;critere))
[/QUOTE] ramène des résultats erronés si on l'adapte pour l'utiliser sur des plages filtrées alors que je n'ai pas relevé ce type de problème avec FREQUENCE.
A+
 

Discussions similaires