COMPTER DES CELLULES NON VIDES CONTENANT DES FORMULES

zekot

XLDnaute Nouveau
Bonjour,

Je souhaite comptabiliser des cellules non vides contenant des formules. J'utilise un filtre également.

J'ai essayé avec sous.total afin que le résultat soit en adéquation lorsque je filtre.

Cependant, il y a des cellules vides et comme elles contiennent des formules, elles sont comptabilisées.

J'ai donc combiné cette formule avec avec NB.SI. Cette dernière me permet de comtabiliser les cellules vides puis de les soustraire au soutotal(3,...). Ça fonctionne mais du coup plus avec le filtre...

Ce tableau n'est qu'une extraction et je dois pouvoir rapidement voir sur plus de 10000 lignes le nombre de cellules vides et non vides selon sa catégorie.

Le problème doit être revu différemment sous doute, mais je trouve pas...

Merci d'avance des solutions que vous pourrez m'apporter.
 

Pièces jointes

  • compter cellule non vide avec presence de formule.xlsx.xls
    534.5 KB · Affichages: 90
Dernière édition:

CISCO

XLDnaute Barbatruc
Bonjour

Tu peux faire dans A1 avec quelque chose du genre
Code:
=SOMMEPROD((SOUS.TOTAL(3;DECALER(A$2;LIGNE(INDIRECT("1:"&LIGNES($A$3:$A$35)));)))*($A$3:$A$35<>""))

@ plus

P.S : Proposition faite d'après une idée de Jocelyn sur ce fil
 
Dernière édition:

Jocelyn

XLDnaute Barbatruc
Bonjour le Forum,
Bonjour zekot,

A tester en A1 et a étirer vers la droite

Code:
=SOMMEPROD((SOUS.TOTAL(3;DECALER(A$3;LIGNE(INDIRECT("1:"&LIGNES(A$3:A$20000)));)))*(A$3:A$20000<>""))

Cordialement
 

zekot

XLDnaute Nouveau
J'ai mis du temps à comprendre mais c'est génial, ça fonctionne.
D'autant plus que ça va encore élargir (y'a en même temps une grosse marge de progression;)) mon champs de vision sur l'architecture des formules sur Excel.
 

CISCO

XLDnaute Barbatruc
Bonjour à tous, bonjour Jocelyn

Sauf erreur de ma part, la formule proposée par Jocelyn ne prend pas correctement en compte le contenu de la cellule A3 puisqu'on a DECALER(A$3;LIGNE(INDIRECT("1:"&LIGNES(A$3:A$20000))); ) qui donne DECALER(A$3;1; ) = A4, puis DECALER(A$3;2; ) = A5 et ainsi de suite. A3 est tombé dans les oubliettes. Ne faut-il pas faire avec DECALER(A$2;LIGNE(INDIRECT("1:"&LIGNES(A$3:A$20000))); ).

@ plus
 
Dernière édition:

Jocelyn

XLDnaute Barbatruc
re,
Bonjour CISCO,

Effectivement quand j'ai poster la cellule de référence du décaler devrait être A2 et non A3, suivant ton dernier message après teste je ne vois de soucis avec LIGNE(INDIRECT("1:"&LIGNES(A$3:A$20000))) cette partie permettant seulement de déterminer le nombre de ligne a vérifier
j'avais mis A20000 car zekot a dit qu'il pouvait avoir 10 000 lignes alors j'ai pris de la marge aprés on pourrait le faire avec une plage nommée dynamique
Cordialement
 

CISCO

XLDnaute Barbatruc
Rebonjour

Jocelyn, ce n'est pas la partie LIGNE(INDIRECT("1:"&LIGNES(A$3:A$20000))) qui pose problème, mais le DECALER(A$3.

Dans le fichier exemple actuel, dans la colonne M, il ni a pour le moment qu'une valeur dans M19, donc on a M1 = 1. Si on en met une dans M2000, et qu'on fait des tests avec DECALER(M$2 ou DECALER(M$3, on n'obtient pas le même résultat : 2 dans le premier cas, 1 dans le second. Pas normal, non ?

@ plus
 

Jocelyn

XLDnaute Barbatruc
oui c'est bien le A$3 de la formule qui est a modifier par le A$2 dans le fichier joint j'ai modifier le A3 par A2 et mis 5 valeurs de plus en colonne M dont la derniere en M2037 et le résultat de M1 est bien de 6 les 5 ajoutée plus lcelle existant de base

Cordialement
 

Pièces jointes

  • soustotal condition et cellule vide.xlsx.xls
    536 KB · Affichages: 114

Discussions similaires

Haut Bas