Sommeprod et filtre

Résolu
qhse60 -  
JvDo Messages postés 1978 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Là je sèche complètement. J'ai crée une liste de validation avec une macro pour filtrer une feuille "DATA" contenant des données genre date, nom, nbre de panneaux, etc...

Sur l'autre feuille "TABLEAU DE BORD" j'ai un tableau pour effectuer mes calculs.

Donc suivant le mois sélectionné, je cherche les occurrences avec la formule: =SOMMEPROD(1/NB.SI(DATA!G25:G100;DATA!G25:G100))

Mon problème est que la formule prends en compte les lignes masquées. Comment puis combiner cette formule avec une formule comme SOUSTOTAL pour n'avoir que les lignes visibles dans mon calcul.

Merci d'avance.

A voir également:

2 réponses

Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Bonjour
le plus simple semble être de créer une colonne hors champ incluse dans le filtrer, mais qui peut être masquée avec cette formule qui commence en ligne 25:

=SI(NB.SI($G$25:G25;G25)>1;0;1)

attention au $ pour tirer la formule jusqu'à 100

et ensuite il ne reste qu'à affecter un code =SOUSTOTAL(9;champ) à cette colonne quelque soit l'affichage du filtre.

crdlmnt


2
JvDo Messages postés 1978 Date d'inscription   Statut Membre Dernière intervention   859
 
Bonjour à tous,

si tu as la possibilité d'installer Morefunc de Laurent Longre, tu peux utiliser
=NB(VALEURS.UNIQUES(TAB.FILTRE(G25:G100)))
ou
=NB.DIFF(TAB.FILTRE(G25:G100))

Sinon, tu vas sur le site de J. Boisgontier http://boisgontierjacques.free.fr/pages_site/sommeprod.htm#OccurUniquesFiltre
et tu trouves la formule matricielle
=SOMME(--(FREQUENCE(SI(SOUS.TOTAL(3;DECALER(G25:G100;LIGNE(INDIRECT("1:"&LIGNES(G25:G100)))-1;;1));EQUIV(G25:G100;G25:G100;0));LIGNE(INDIRECT("1:"&LIGNES(G25:G100))))>0))


cordialement
2