Microsoft 365 Appliquer formules sur filtre

mgharmao

XLDnaute Nouveau
Bonjour,

Je souhaiterais appliquer une formule après avoir réalisé un filtre.
Je m'aperçois que la formule s'applique également aux lignes masquées par le filtre.

Existe t-il un moyen pour que les formules ne s'appliquent qu'aux cellules visibles ?

merci d'avance pour votre aide
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Essayez la fonction Sous.Total ou suivant le cas la fonction Agregat.
Si vous n'y arrivez pas, revenez avec un exemple de fichier anonymisé.

Regardez le petit exemple ci-joint.

Cordialement
 

Pièces jointes

  • sous.total.xlsx
    18.8 KB · Affichages: 16

mgharmao

XLDnaute Nouveau
Merci déjà pour cette première solution.
Ci-joint le fichier en question.

J'essaye d'incrémenter la colonne N en années (de 2012 à 2060).
Je dois faire cela pour différents filtres (suivant la colonne A, donc pour chaque constat).

L'incrémentation habituelle (en tirant vers le bas), n'est pas possible car il y a un filtre appliqué > la fonction d'incrémentation est donc désactivée.

Donc, astuce, j'essaye de réaliser cette incrémentation via une formule.
Mais voilà, la formule que j'ai appliquée (voir cellule N5 > =SI(AB5="pompe THT";N4+1;1)), s'applique également aux lignes masquées par le filtre.

Donc je me dis qu'il doit être possible pour ce cas ci ou pour d'autre de réaliser des formules qui ne s'appliquent que pour les lignes visibles.

J'espère que j'ai été assez clair, ce n'est pas évident.


Un grand merci et bon week end à vous,
 

Pièces jointes

  • Matrice.xlsm
    930.8 KB · Affichages: 8

Hasco

XLDnaute Barbatruc
Repose en paix
bonjour,

Pas certain de tout comprendre mais :

- soit en mettant 2011 en N3 et la formule à tirer vers le bas :
=SI(ET(AGREGAT(3;5;AB4)=1;AB4="pompe THT");MAX($N$3:$N3)+1;1)

- soit en laissant N3 telle quelle et la formule en N4 à tirer vers le bas : =SI(ET(AGREGAT(3;5;AB4)=1;AB4="pompe THT");MAX(2012;MAX($N$3:$N3)+1;1))

Cela semble correspondre à votre demande pour "pompe THT".

La fonction AGREGAT(3;5;AB4)=1 (voyez l'aide excel sur agregat) renverra 1 si la ligne est visible et 0 si elle ne l'est pas.

Cordialement
 

Pièces jointes

  • Matrice.xlsm
    939.8 KB · Affichages: 5

mgharmao

XLDnaute Nouveau
Merci beaucoup

J'essaye de comprendre car cela ne fonctionne pas.

Si je comprends bien, la fonction agregat aura pour role d'ignorer les lignes masquées > très bien.
Cependant, dans le reste de la formule qui sélectionne la valeur max à incrémenter, celle-ci prend en compte les lignes masquées...
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Cependant, dans le reste de la formule qui sélectionne la valeur max à incrémenter, celle-ci prend en compte les lignes masquées...

Eh non,

Voyez le fichier ci-joint dans lequel j'ai mis la fonction Agregat dans la colonne M. Cette colonne contient que des 1 si aucune lignes n'est cachée. Des 0 pour les lignes cachées.

En M2 le nombre de lignes visible (M? = 1)
En M3 le nombre de lignes non visibles (M? = 0)

2012 de la colonne 'mypAnnee' commence en ligne 5.

Cachez les lignes 5 à 10 -> 2012 commence en ligne 7 la fonction a bien à bien ignoré les lignes masquées.

Si vous voulez une formule qui ne prenne pas en compte les lignes masquées, incluez la dans une formule SI.
=SI(M5=1; VotreSuperFormule;"")
Si M5 = 1 se traduit par si la ligne 5 est visible.
Si M5 = 0 se traduit par si la ligne 5 est cachée (ou masquer par filtre).

Dans votre exemple les données pour "Pompes PHT" ne sont pas filtrables car toutes identiques (soit ont les affiches toutes, soit ont les masque toutes )
 

Pièces jointes

  • Matrice.xlsm
    939.4 KB · Affichages: 5

Discussions similaires

Statistiques des forums

Discussions
312 197
Messages
2 086 104
Membres
103 117
dernier inscrit
augustin.morille