Calcul occurence apres filtre

Bonjour

Je dispose d'un tableau excel avec plusieurs colonnes (en PJ).

Dans chaque cellule, soit "1" soit "2".

Lorsque je fais le total, sans aucun filtre, j'ai par exemple en colonne 2, 12 fois le nombre "1" et 6 fois le nombre "2".

Si j'applique un filtre et que je sélectionne que les "1" dans la colonne 1, mon sous total dans la total 2 devrait être, 4 fois le nombre "1" et 4 fois le nombre "2".

Or mon sous total n'est pas modifié.

La fonction NB.SI ne tient pas compte du filtre.

Savez vous comment faire pour que mon total tienne compte du filtre ?

Merci pour votre aide

20excel-test.xlsx (10.28 Ko)

Bonsoir,

le filtre dans ce cas ne sert en effet à rien, il ne fait que masquer certaines lignes.

Vous pouvez plutôt utiliser NB.SI.ENS qui est comme NB.SI mais avec plusieurs critères.

Au lieu de filtrer, vous pouvez juste mettre 1 ou 2 dans une cellule, par exemple B25, et la formule suivante comptera tous les 1 en colonne C uniquement s'ils sont à côté du chiffre spécifié en B25.

Que je mette 1 ou 2 en B25, ça renvoie bien 4 ;

=NB.SI.ENS(C2:C19;1;B2:B19;B25)

Vous mettez une formule comme ça pour les 1, une autre pour les 2, et ce pour chaque colonne.

Il faut bien sûr rajouter à chaque colonne le critère de la colonne précédente, ce qui fait qu'à chaque colonne, la formule augmente d'un critère.

Exemple qui renvoie 3 pour la colonne D ;

=NB.SI.ENS(C2:C19;1;B2:B19;B25;D2:D19;2)

Bonjour,
Merci de préciser la version Excel utilisée.
La version Excel 97-2003 ne prend pas en charge un fichier xlsx.
Cdlt.

Merci pour votre retour.

Ca ne solutionne malheureusement pas mon problème.

Pour faire plus simple, supposons qu'il s'agisse de match de foot (1, victoire à domicile, 2 victoire à l'extérieur).

Après le 1er match, supposons une victoire à domicile, dans la colonne B, il ne restera que des "1".

La colonne C et les autres colonnes seront donc impactées.

En colonne C, il ne devrait plus rester 12 fois "1" et 6 fois "2" mais 4 fois "1" et 4 fois "2".

J'aimerais ainsi qu'en fonction des résultats actualisés dans les colonnes ici par exemple, le "1" sera retenu pour la colonne B, le 2 pour la colonne C, etc..., le nombre de "1" et de "2" soit actualisé dans les autres colonnes.

En pj le fichier actualisé.

Il s'agit de MICROSOFT 365 BUSINESS VERISON 2412.

Merci

12excel-test-v2.xlsx (11.06 Ko)

Bonsoir,

une proposition avec fonction personnalisée, ce qui implique un fichier à l'extension xslM et accepter les Macro :

8somme-visible.xlsm (16.73 Ko)

@ bientôt

LouReeD

Bonsoir à Primo123 et à tous les autres,

On peut user d'une astuce :

  • dans la cellule I2, mettre la formule suivante formule : =SOUS.TOTAL(103;B2) (I2 sera égale à 1 si la ligne 2 est visible et I2 sera égale à 0 si la ligne 2 est masquée)
  • recopier cette formule jusqu'en I19
  • Dans la cellule B22, mettre la formule : =SOMMEPROD((B$2:B$19=$A22)*$I$2:$I$19)
  • recopier cette jusqu'en H23

nota : il s'agirait d'être cohérent. Vous nous indiquez EXCEL 97-2003 FR et vous joignez un fichier .xlsx

bonjpour

une petite contribution

17primo123.xlsx (11.37 Ko)

Bonjour

Merci à tous pour vos explications et vos propositions très fournies et qui m'ont fait grandement avancer.

Un problème auquel je n'avais pas pensé est que les "1" et "2" saisies dans les cases ne sont pas saisies manuellement mais sont le résultat de formules.

Je dois ainsi soit ouvrir un nouvel onglet avec les "1" et "2" saisies manuellement où trouver une formules qui va récupérer les données pour les inclure sans la formule. J'espère être assez clair.

Après ça je pense qu'on sera bon, mis à part si le N qui correspond à match nul n'est pas reconnu mais je verrai.

Merci à tous pour votre aide. En PJ la proposition utile de "tulipe_4".

8primo123-v2.xlsx (12.07 Ko)

bonsoir

de toute façon pour triturer des valeurs dans un filtre ,, c'est impérativement

SOMMEPROD(SOUS.TOTAL( .......; DECALER(............))) *(laplage = un critère))

c'est la seule combinaison de formules ,qui permet d'éplucher ce qu'il se passe dans un filtre

cordialement

Merci pour votre réponse

Ca me semble en effet la seule et donc la meilleure solution. Elle tiendra la route.

Il me reste maintenant à trouver comment sur un autre onglet faire la copie du tableau en ayant dans une cause au lieu d'une type "=STXT(A2;1;1)" en case B2, simplement "2".

Merci pour votre retour.

Ca ne solutionne malheureusement pas mon problème.

Pour faire plus simple, supposons qu'il s'agisse de match de foot (1, victoire à domicile, 2 victoire à l'extérieur).

Après le 1er match, supposons une victoire à domicile, dans la colonne B, il ne restera que des "1".

La colonne C et les autres colonnes seront donc impactées.

En colonne C, il ne devrait plus rester 12 fois "1" et 6 fois "2" mais 4 fois "1" et 4 fois "2".

J'aimerais ainsi qu'en fonction des résultats actualisés dans les colonnes ici par exemple, le "1" sera retenu pour la colonne B, le 2 pour la colonne C, etc..., le nombre de "1" et de "2" soit actualisé dans les autres colonnes.

En pj le fichier actualisé.

Il s'agit de MICROSOFT 365 BUSINESS VERISON 2412.

Merci

12excel-test-v2.xlsx (11.06 Ko)

Salut,

la formule que j'avais proposée (ligne 26) comptait bien les 1 ou 2 en fonction du résultat des colonnes précédentes.

Voici une proposition avec un ajout concernant la MFC, c'est une alternative au filtrage ;

excel occurence apres filtre par primo123 b

La MFC se fait en fonction des 1 ou 2 sur la ligne 25 (c'est une liste déroulante à chaque fois mais on peut la remplacer par une formule) et la ligne 26 affiche le nombre de cellules incluant le chiffre mis en ligne 25.

Bonjour,

si je filtre sur les "1", je sélectionne 1 dans la liste de choix j'ai bien 8, mais si je sélectionne 2 j'ai 10, hors au vu du filtre ce devrait être 0...

@ bientôt

LouReeD

Salut,

si tu parles de mon fichier, il y a bien dix 2 en colonne B, ou alors j'ai mal compris de quoi tu parles.

Bonsoir,

Je dis seulement qu'en filtrant le tableau sur les "1" alors la formule doit (je pense) afficher la valeur "0" si on prend "2" dans la liste de choix.
En somme si j'ai bien compris, il faut une formule qui fasse le compte de ce qui est visible, et non pas la totalité de la colonne.

@ bientôt

LouReeD

Bonjour à tous,

Une proposition, si j'ai bien compris, (pas sûr) et qui prends en compte le "N"

en B22 et à recopier :

=SOMMEPROD((B$2:B$19=TEXTE($A22;"0"))*SOUS.TOTAL(103;INDIRECT("B"&LIGNE($B$2:$B$19))))

(avec utilisation de Fractionner.Texte pour la décomposition des scores)

Bonsoir,

Je dis seulement qu'en filtrant le tableau sur les "1" alors la formule doit (je pense) afficher la valeur "0" si on prend "2" dans la liste de choix.
En somme si j'ai bien compris, il faut une formule qui fasse le compte de ce qui est visible, et non pas la totalité de la colonne.

@ bientôt

LouReeD

Et oui ! C'est ma fête aujourd'hui !

@ bientôt

LouReeD

Et oui ! C'est ma fête aujourd'hui !

@ bientôt

LouReeD

le résultat ne peut qu' être obtenu qu'en passant par Decaler , car il faut éplucher le visible

Bonsoir,

Je dis seulement qu'en filtrant le tableau sur les "1" alors la formule doit (je pense) afficher la valeur "0" si on prend "2" dans la liste de choix.
En somme si j'ai bien compris, il faut une formule qui fasse le compte de ce qui est visible, et non pas la totalité de la colonne.

@ bientôt

LouReeD

Tu fais sans doute allusion aux lignes 22 et 23, mais je n'y ai pas touché.

J'ai rajouté la MFC et les lignes 25 et 26. Si on compte le chiffre mis en ligne 25 (donc le 1 ou le 2), on n'a plus besoin de compter l'autre puisque le but initial était de masquer ce qui ne correspond pas au critère choisi.

Et si nécessaire, on peut toujours faire le total des lignes 22 et 23 et en soustraire le résultat de la ligne 26.

Bonjour à tous,

Une variante....

8excel-test.xlsx (11.03 Ko)

=LET(t;FILTRE($B$2:$H$19;$B$2:$B$19=$A$22);c;CHOISIRCOLS(t;COLONNE(A:A));SOMME((c=$A22)*1))

et

=LET(t;FILTRE($B$2:$H$19;$B$2:$B$19=$A$22);c;CHOISIRCOLS(t;COLONNE(A:A));SOMME((c=$A23)*1))

Rechercher des sujets similaires à "calcul occurence filtre"