Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Power Query Excel : alternative efficace et dynamique aux filtres avancés
Un billet de Pierre Fauconnier

Le , par Pierre Fauconnier

0PARTAGES

8  0 
Salut.

Voyant régulièrement des demandes concernant l'extraction de données d'une table de données, je vous propose un nouveau billet traitant d'une alternative efficace et dynamique à l'utilisation du filtre avancé. La dynamique liée à Power Query permet une actualisation de l'extraction sans aucune ligne de VBA et sans devoir "relancer" le filtre avancé...

Et vous...
Connaissiez-vous cette technique?
Maîtrisez-vous Power Query?
Avez-vous pu "refaire l'exercice" pour prendre Power Query en mains?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Eric KERGRESSE
Expert éminent sénior https://www.developpez.com
Le 18/09/2019 à 5:53
Citation Envoyé par Pierre Fauconnier Voir le message
Bonjour Pierre,

Ta contribution vient à point nommé, je suis entrain en ce moment de mettre au point un code VBA pour automatiser des filtres avancés. Je vais regarder ça de plus près. Il y a parfois des synchronicités...
2  0 
Avatar de QuestVba
Membre expert https://www.developpez.com
Le 24/09/2019 à 13:04
Merci, Pierre.
Ce que j'aime : en quelques mots, en quelques images... tu titilles nos cerveaux à partir d'exemples simples et efficaces.
Maintenant, j'utilise PQ très régulièrement et c'est un outil très performant. Seule limite (pour le moment, pour mon cas), le nombre maximal de lignes.
1  0 
Avatar de Pierre Fauconnier
Responsable Office & Excel https://www.developpez.com
Le 18/09/2019 à 10:16
Salut Eric,

Je pense que tu vas aimer... Plus de VBA et plus de manipulations. Juste mettre en place le système puis actualiser...

Ton retour d'expérience m'intéressera, dans la suite de ce fil
0  0 
Avatar de floyer
Membre à l'essai https://www.developpez.com
Le 19/09/2019 à 18:40
L’éditeur de requêtes est assez pratique, ainsi, j’ai tendance à ne pas créer de colonne critère.

Power Query est très pratique avec une base de données.

Pour des requêtes paramétrables, je crée un tableau qui ne contient qu’un paramètre, crée une requête qui retourne la valeur de ce paramètre (requêtes d’après un tableau, drill down sur la valeur). Sauve la requête sans créer de table (admettons sous le nom ville) Ensuite, dans l’éditeur de requêtes, je filtre mon tableau en sélectionnant une ville (ex Bruxelles), puis remplace dans la formule de filtre, "Bruxelles" (avec guillemets) par ville (sans guillemets). Cela crée une requête paramètrable : on change le paramètre, actualisons le tableau filtré et le tour est joué.
0  0 
Avatar de Pierre Fauconnier
Responsable Office & Excel https://www.developpez.com
Le 19/09/2019 à 20:00
Chaque technique a ses avantages.

L'avantage de la colonne critère, c'est qu'elle permet de réaliser la requête sur n'importe quel critère formulable en Excel. C'est, en fait, le premier objectif du billet: montrer comment on remplace le critère formulé du filtre avancé en Power Query. Mais c'est au prix d'un traitement Excel sur l'entièreté des lignes. Ca a éventuellement un coût en terme de performance.

Si je veux critériser sur un pays en particulier, je préfère alors la technique suivante qui n'impose pas les manips que tu détailles côté Power Query, car je ne comprends pas bien l'utilité du drill down dans ce cas ni de la modification du filtre. 78Chris parlait, dans une réponse sur mon blog, d'une plage nommée, et il proposait alors la même manip que toi sur la requête vide et la modif "à la main" de l'expression du critère.

Je crée une table pour le pays critérisé au lieu de la plage nommée dont 78Chris parlait (Ca coûte la ligne d'entête en plus), car ça me permet de réaliser le filtre par fusion de requête en "inner join" sans devoir transformer à la main l'expression du critère dans Power Query. Pour le même prix et sans les manips dans PQ, on a la possibilité de filtrer sur plusieurs pays. Ca ne nécessite aucune modif à la main côté Power Query.









Quoi qu'il en soit, et quelle que soit la technique privilégiée, je pense que Power Query sonne le glas du filtre avancé (deuxième objectif de ce billet).
0  0 
Avatar de 78chris
Expert éminent sénior https://www.developpez.com
Le 19/09/2019 à 22:20
RE à tous

Je précise que dans ma proposition, on n'associe la variable qu'une fois à la construction de la requête.

Donc ce n'est pas si lourd. C'est surtout quand on ne veut pas trop de cellules en plus...

Mais de façon générale et surtout pour le multicritères, la requête croisant tableau de données et tableau de critères est aussi ce que j'utilise le plus.

De toute façon dans la liste des critères du filtre avancé il fallait bien aussi une ligne d'en-tête donc pour tous ceux qui utilisaient le filtre avancé, cela ne change guère la logique en y apportant un gros plus.
0  0 
Avatar de Bryce de Mouriès
Membre averti https://www.developpez.com
Le 23/09/2019 à 18:29
J'ai eu une formation Power Query il y a deux ans, avec un peu de Power BI aussi

Je trouve ça hyper utile pour croiser / fusionner de la donnée. Cette année j'ai changé de poste avec des excels sur plusieurs équipes sur différents supports, différents formats etc. Avec Power Query je peux facilement me faire des tableaux des bords pour croiser X fichiers excels, travailler rapidement le format, sans formules / sans VBA.
Ca fait des fichiers de reporting rapides car aucune formule, le temps d'attente n'est qu'à l'actualisation du fichier. Ca s'interface facilement avec des fichiers stockés sur Teams, Sharepoint, OneDrive, des WebServices, du fichier texte etc.
C'est comme un mini ETL, directement dans Excel.

Avant cette formation j'en avais jamais entendu parler, je suis assez étonné que ça ne soit pas plus répandu finalement.
0  0 
Avatar de Pierre Fauconnier
Responsable Office & Excel https://www.developpez.com
Le 24/09/2019 à 14:08
Salut QuestVBA,

Merci pour ton appréciation.

Qu'entends-tu par "limité par le nombre de lignes"?

Le nombre de lignes restituées dans Excel est évidemment de 1 048 576 qui est une limite EXCEL, mais pas une limite PowerQuery. Tu peux intégrer des tables avec beaucoup plus de lignes dans PQ, du moment que la requête renvoyée dans Excel ne contienne pas plus de lignes que la limite de ta feuille.
0  0 
Avatar de QuestVba
Membre expert https://www.developpez.com
Le 24/09/2019 à 18:23
C'est bien cela, Pierre ; la limite d'excel en nombre de lignes.
Je travaille sur de très grands fichiers (à ma petite échelle) qui peuvent facilement dépasser 2.000.000 de lignes et donc... Mais, il suffit de trouver quelques subterfuges (comme découper son fichier...).

Mais, je le répète : au début de l'année 2019, on m'a mis dans les mains une dizaine de DB à recouper... et pour le moment, j'ai pu tout faire avec PQ et assez facilement ; bon, les formules c'est pas toujours évident à cause des réflexes Excel. Pour cela, j'utilise souvent : https://docs.microsoft.com/en-us/pow...tion-reference.
0  0 
Avatar de Pierre Fauconnier
Responsable Office & Excel https://www.developpez.com
Le 24/09/2019 à 18:25
Ok. Merci pour la précision...

Le lien que tu renseignes est à mon sens la bible pour découvrir les fonctions Power Query. Merci de l'avoir donné ici
0  0