Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel

Excel Forum d'entraide sur Excel

Réponse
 
Outils de la discussion
Vieux 18/08/2008, 09h39   #1 (permalink)
Invité de passage
 
Date d'inscription: août 2008
Messages: 8
Par défaut Appliquer fonction sur filtre

Bonjour,


Je voudrais savoir s'il y a un moyen de n'appliquer une fonction que sur les données filtrées par un filtre automatique sous Excel 2007 ?

Par exemple, j'ai filtré certaines données et je voudrais calculer les percentiles sur les lignes visibles.

Actuellement, je suis obligé de copier les données visibles sur une autre feuille et de faire mon calcul de fonction la-bas, c'est pas tres elegant...


Merci de votre aide,
Laly.
laly94 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 18/08/2008, 15h38   #2 (permalink)
Membre régulier
 
Date d'inscription: septembre 2007
Messages: 127
Par défaut

Bonjour,

regarde du côté de la fonction SOUS.TOTAL qui permet plusieurs calculs avec les données filtrées.

Ne sachant pas ce qu'est un percentile, je te laisse regarder l'aide d'Excel pour voir si cette fonction peut répondre à ton souhait.

@+
tibo59 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 18/08/2008, 16h55   #3 (permalink)
Invité de passage
 
Date d'inscription: août 2008
Messages: 8
Par défaut

Merci pour ta réponse, je ne connaissais pas cette fonction sous.total. J'ai regardé mais malheureusement, il n'y a pas la fonction percentile dans celles proposées, néamoins je suis sur que j'aurai l'occasion de la réutiliser

La fonction percentile X% permet d'avoir la valeur V telle que X% de tes données ont une valeur <= V
Un cas particulier est la médiane (X=50%)

Je laisse le sujet ouvert au cas ou quelqu'un aurait une solution a mon souci.


Laly.
laly94 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 18/08/2008, 19h14   #4 (permalink)
Responsable Excel
 
Avatar de SilkyRoad
 
Date d'inscription: août 2005
Messages: 3 113
Par défaut

bonsoir

j'espère que cet exemple pourra t'aider.

Les données à filtrer (colonne Dossier) sont dans la Feuil1.
Le calcul est effectué dans la Feuil2.


bonne soirée
michel
Fichiers attachés
Type de fichier : zip Centile.zip (8,0 Ko, 10 affichages)
SilkyRoad est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 19/08/2008, 09h28   #5 (permalink)
Invité de passage
 
Date d'inscription: août 2008
Messages: 8
Par défaut

Bonjour,


Merci SilkyRoad, ca a l'air de marcher nickel !

Par contre, je ne comprends rien a la formule :
=CENTILE(SI(1*(SI(SOUS.TOTAL(2;DECALER(Feuil1!$B$2;LIGNE(Feuil1!$B$2:$B$20)-LIGNE(Feuil1!$B$2));1));Feuil1!$B$2:$B$20);A2)

ou en anglais :
=PERCENTILE(IF(1*(IF(SUBTOTAL(2,OFFSET(Feuil1!$B$2,ROW(Feuil1!$B$2:$B$20)-ROW(Feuil1!$B$2),)),1)),Feuil1!$B$2:$B$20),A2)

OFFSET(...) : ROW(Feuil1!$B$2:$B$20)-ROW(Feuil1!$B$2) me donne 0, tu récupères la plage qui contient les données ?
SUBTOTAL(2, ...) : compte le nb de données visibles dans la plage ?

A quoi sert le 1* ?


Merci
Laly.
laly94 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 20/08/2008, 08h05   #6 (permalink)
Responsable Excel
 
Avatar de SilkyRoad
 
Date d'inscription: août 2005
Messages: 3 113
Par défaut

bonjour


Citation:
ROW(Feuil1!$B$2:$B$20)-ROW(Feuil1!$B$2)
me donne 0, tu récupères la plage qui contient les données ?
Il s'agit d'une formule matricielle (d'ou l'utilisation de Ctrl+Maj+Entrée)
La fonction LIGNE renvoie les numéros de ligne de la plage de cellules sous forme de matrice.

Par exemple, dans une nouvelle feuille de calcul,sélectionne la cellule A1
colle cette formule
=LIGNE(Feuil1!$B$2:$B$20)-LIGNE(Feuil1!$B$2)
Sélectionne la plage A1:A19
Appuie sur la touche clavier F2
puis sur Ctrl+Maj+Entrée


Citation:
A quoi sert le 1* ?
A rien ... ;o)
j'ai fait un copier/coller un peu rapide depuis une autre formule et 1* n'est pas utile ici


bonne journée
michel
SilkyRoad est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 20/08/2008, 14h12   #7 (permalink)
Invité de passage
 
Date d'inscription: août 2008
Messages: 8
Par défaut

Bonjour,


J'ai compris l'idée, c'est très élégant

Offset sert à parcourir la plage ligne par ligne.
Subtotal(2, ...) = 1 sert à savoir si la cellule est visible ou pas...

Merci bcp pour ton aide !

Laly.
laly94 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 20/08/2008, 15h43   #8 (permalink)
Invité de passage
 
Date d'inscription: août 2008
Messages: 8
Par défaut

J'ai repris l'idée du subtotal, en utilisant une nouvelle colonne qui vaut 1 si la ligne est visible ou pas, je trouve ca plus lisible que le decalage, c'est moins subtil... mais ca n'engage que moi


Laly.
Fichiers attachés
Type de fichier : zip Centile.zip (6,1 Ko, 2 affichages)
laly94 est déconnecté   Envoyer un message privé Réponse avec citation
NEWS MS-OFFICEFAQs OFFICETUTORIELS OFFICELIVRES OFFICESOURCES VBAACCESS

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide