Somme prod et filtre multiple

bonjour

jai un souci de somme prod lorsque je prends en référence polusieurs colonne

sur le tableau ci joint je calcul en C4

je calcule enfonction de la valeur en D4 et de l'intitulé "filtré" en colonne A1 le nombre d'occurence

en C5

j'aimerais tenir compte deu filtre activé sur la colonne A et B

=SOMMEPROD(ET(SOUS.TOTAL(3;DECALER($A$7;LIGNE($A$8:$A$42);(SOUS.TOTAL(3;DECALER($B$7;LIGNE($B$8:$B$42);))*(C$8:C$42=$D5))))))

mais ma formule est surement mal écrite

puis je avoir un peu d'aide

par avance merci

bonjour,

Je ne pense pas que ce soit le bon fichier, ou alors ton explication n'a aucun rapport avec le fichier.

A plus

Bonjour

Ta base, celle du fichier joint, ne donne pas les résultats que tu indiques.

Sur ce que je crois avoir dompris:

J'ai nommé tes 3 colonnes et créé un tableau récap endessous

j'ai utilisé la fonction nb.si.ens()

A regarder

Cordialement

FINDRH

Pourquoi relancer ce sujet déjà résolu ?

https://forum.excel-pratique.com/post502430.html#p502430

A plus !

Bonjour Braters

Tu crois que le sujet est résolu ?

Ta remarque sur le fichier joint montre que si la question a bien été résolue sur le forum ( je ne l'avais pas vue avant... ), elle ne l'est pas sur le document du membre....

Cordialement

FINDRH

bonsoir

désolé de creer une incompréhension

je me suis effectivement trompé de fichier voici la bonne version

si il y a encore une personne qui à la patience de m'aider

merci

Bonsoir ohua1, toutes et tous,

Bonsoir Braters, FINDRH ,

Suite au dernier fichier fourni et pas sûr d'avoir tout compris à la demande.

Toutefois j'écrirais en C5:

=SOMMEPROD(ET(SOUS.TOTAL(3;DECALER($A$7;LIGNE($A$8:$A$42);));SOMMEPROD(SOUS.TOTAL(3;DECALER($B$7;LIGNE($B$8:$B$42);))))*(C$8:C$42=$D5))

Et j'obtiens la valeur 3.

Cordialement.

bonsoir Mdo 100,Bonsoir Braters, FINDRH

je vais essayé d'être plus clair dans ma demande

je cherche à calculer le nombre de de J1 en tenant compte des filtres activés

en C5 j'ai copier votre formule

=SOMMEPROD(ET(SOUS.TOTAL(3;DECALER($A$7;LIGNE($A$8:$A$42);));SOMMEPROD(SOUS.TOTAL(3;DECALER($B$7;LIGNE($B$8:$B$42);))))*(C$8:C$42=$D5))

effectivement le résultat est correct quand il n'y a aucun filtre

par contre si vous mettez "uf 02" en sélection du filtre colonne A nous obtenons la valeur 0 en D5 alors que le résultat devrait être 2.

si vous mettez un deuxieme filtre "personne 02" en filtre colonne B le résultat devrait être que de 1

merci de votre aide

Bonjour,

voici une idée à tester, je ne sais pas si tu voulais du vba dans ton fichier mais c'est la meilleure solution que j'ai trouvé.

Regarde les cases jaunes principalement.

Bonjour,

Je viens de finir un travail sur ton fichier et je rejoins un peu Braters sauf que je passe par des formules et des listes voir feuille 2.

En feuille1 tu fais ton choix dans les listes déroulantes en "D6, E6, F6", j'ai aussi dû ajouter une ligne (1) vide dans la feuille 1.

D'autant que tu as encore fait une erreur dans ton dernier message

nous obtenons la valeur 0 en D5 alors que le résultat devrait être 2.

Moi aussi c'est tout ce que j'ai trouvé !

Cordialement.

Merci mdo 100 et Braters

je suis admiratif de ce que vous me proposez mais le choix peut être multiple ( un seul libellé UF ou plusieurs libellés Uf avec un seul nom ou plusieurs

pour essyez de meiux expliquer mes attendus ;dans le fichier joint je vous ai mis des images pour vous donnez un visuel du résultat escompté .

le tableau original est sur 365 jours (une date , une colonne) et 500 lignes

pardonnez moi je ne pensais que cela allait être si complexe en fonction de filtre activés de calculer une occurence sur des cellules non filtrées dans une colonne

merci sincèrement de votre aide

bonjour,

je pense que la meilleure solution serait de créer une Function, qui compterait le nombre de référence dans la plage de cellule visible sur la colonne de la function.

Cette partie de VBA ne fait pas parti de mes compétences mais on pourrait avoir un truc du style :

Function NB_UF(Chaine)

Col = Columns(NB_UF)

Derlig = Range(Col & Rows.count).SpecialsCells(xlTypeCellsVisibles).End(xlUp).Row

NB_UF = Count.if( Range(Col & "6:" & Col & Derlig), Chaine)

End Function

bien sur cette syntaxe est fausse, mais je pense que l'idée est plausible.

A plus

Merci Braters

je vais chercher de mon côté.

j'ai beau chercher sur ce site la question n'a pas été évoquée.

je laisse ce post ouvert en espérant que quelqu'un puisse m'aider et surtout que je puisse donner la réponse si quelqu'un comme moi cherche à résoudre cette problématique qui me semble très utile

merci encore

Tu peux essayer d'envoyer un message privé à MFerrand pour l'inviter à lire ton sujet, je pense que ses compétences ne seront pas mal venues pour résoudre ton problème.

Bon courage !

Bonjour

Ci joint une proposition basée sur Nb.si.ens(), avec deux zones de choix ( personne-UF) reliés à une liste.

A priori cela donne les résultats escomptés, mais je suis sûr que la recherche portera sur l'ensemble des codes horaires et sur plusieurs mois.......

Si toutes les attentes étaient exprimées on y verrait plus clair, avant de bâtir des macros sur des problématiques partielles

Il serait indispensable de connaitre la structure de la maquette finale de décompte des codes..... les formules proposées seraient alors plus adaptées...

Cordialement

FINDRH

Merci FINDRH

merci à tous

j'ai trouvé une solution , que je me permets de l'envoyer , si cela intéresse quelqu'un

il y a surement mieux mais elles permet d'avoir une sésultat quelques soient le nombre de filtres activés

je suis partie d'une macro

Function visible(cellule As Range) As Integer

visible = (Not cellule.EntireRow.Hidden) * -1

End Function

ensuite je crèe une colonne j'appelle cette macro dans une colonne dans mon exemple Colonne C

pour au final réaliser une somme prod entenant compte du libellé contenu en B5

=SOMMEPROD(((D$9:D$43)=$B5)*($C$9:$C$43))

il y a bien comptage du libellé que pour les cellules visibles.

si quelqu'un trouve mieux

par avance merci

Bonjour,

Je souhaite ajouter une ligne dans ma macro pour que mes recherches v puisse être réalisées sur mes cellules filtrées et uniquement sur ces dernières.

Cette macro ne fonctionne pas ohua1.

Function visible(cellule As Range) As Integer

visible = (Not cellule.EntireRow.Hidden) * -1

End Function

Quelqu'un peut m'aider, cordialement.

Rechercher des sujets similaires à "somme prod filtre multiple"