[Power Query] Filtre personnalisé

Je pense qu'on peut remplacer if List.Contains({49..57},Character.ToNumber(_)) then "0" else _ par  if List.Contains({"1".."9"},_) then "0" else _

Stéphane

Bonjour à tous de nouveau !

Je pense qu'on peut remplacer if List.Contains({49..57},Character.ToNumber(_)) then "0" else _ par  if List.Contains({"1".."9"},_) then "0" else _

J'allais l'écrire....!

Bonjour à tous,

J'ai fait quelques mesures avec les dernières propositions (toujours sur la même base de 21504 lignes, et une restitution de 6144 numéros)

Déjà, toutes donnent le même nombre.

Ensuite, la dernière de JFL, ainsi que les 3 et 4èmes de Stéphane(avec List.Accumulate)(ça se joue en 5 ou 6/100 de plus, pas grand chose), semblent mettre un peu plus de temps. Les 1ère et 2ème de Stéphane donnent des temps équivalents aux autres.

Bravo à tous, et bon W-E à venir

Bonjour à tous !

@cousinhub :

Et.....merci de ce retour !

Ma perplexité va grandissante....

Hi,

Ma perplexité va grandissante....

Attention, ma méthode de chronométrage n'a rien d'une science exacte....

Ici, on est entre 0.16 et 0.24 seconde, pour >21 000 lignes....

Il me semblait déjà que le List.Accumulate était assez chronophage (d'après ma petite expérience, du moins, ce n'était pas la solution à privilégier s'il en existait d'autres)

Tout comme on a déjà pu voir qu'une simple fusion exclusive était bien plus rapide qu'un filtre avec List.Contains...

Maintenant, si d'aucun avait un autre défi, "A vos claviers"...

Bonne soirée

En tout cas, merci à tous pour vos participations

Bonjour

Merci @cousinhub pour les analyses

Une remarque concernant ta réflexion : "Tout comme on a déjà pu voir qu'une simple fusion exclusive était bien plus rapide qu'un filtre avec List.Contains..."

...
Liste_en_mémoire = List.Buffer(Une_Liste),
Table_filtrée = Table.SelectRows(Une_Table, each List.Contains(Liste_en_mémoire , [Un_Champ]))
...

J'utilise régulièrement type ce code pour filtrer des tables en ayant testé la performance vs Table.NestedJoin + JoinKind.Inner

Suivant mon besoin j'utilise également des solutions avec Table.Join en forçant l'algorithme de jointure le plus efficace. Voir l'aide en ligne MS sur le sujet (j'ai posté trop peu de message pour pouvoir mettre un lien)

Stéphane

Doublon à supprimer

Hello Stéphane, (et le forum, évidemment)

Bonjour

Merci @cousinhub pour les analyses

Une remarque concernant ta réflexion : "Tout comme on a déjà pu voir qu'une simple fusion exclusive était bien plus rapide qu'un filtre avec List.Contains..."

...
Liste_en_mémoire = List.Buffer(Une_Liste),
Table_filtrée = Table.SelectRows(Une_Table, each List.Contains(Liste_en_mémoire , [Un_Champ]))
...

J'utilise régulièrement type ce code pour filtrer des tables en ayant testé la performance vs Table.NestedJoin + JoinKind.Inner

Suivant mon besoin j'utilise également des solutions avec Table.Join en forçant l'algorithme de jointure le plus efficace. Voir l'aide en ligne MS sur le sujet (j'ai posté trop peu de message pour pouvoir mettre un lien)

Stéphane

Cette petite remarque faisait suite à ces différents essais, effectués dans ce fil (bien sûr, sujet à modifications, contrôles, améliorations...)

Bonne journée

Rechercher des sujets similaires à "power query filtre personnalise"