Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Power Query Filtre date - power query

Sofiane Boukecha

XLDnaute Nouveau
Bonjour tout le monde,

s'il vous plait, est ce qu'il y'a une possibilité de faire un filtre de date automatique sur power query?
j'ai un fichier excel connecté à la base de donnée sur le serveur, et je cherche à afficher uniquement les données du mois passé.
c'est à dire; durant le mois octobre, je cherche les données du mois de septembre, et durant le mois de novembre je cherche celles d'octobre ..... ainsi de suite.

je vous remercie à l'avance.
 
Solution
Re
  • soit une cellule nommée dans Excel, ChoixD par exemple, où est saisi le mois voulu, idéalement une date avec le 1er du mois
    Dans ce cas une requête nommée ChoixD récupère la valeur ChoixD
    = Date.From(Excel.CurrentWorkbook(){[Name="ChoixD"]}[Content][Column1]{0})
  • soit un paramètre dans PowerQuery (moins souple)
La requête SQL, pour la ligne Source est de type

Odbc.Query("dsn=NomBase", "select * from NomTable)

Si tu as un paramètre cela donne

let
Req1="dsn=NomBase",
Req2="select * from NomTable where date >=#" & Date.ToText(ChoixD,"yyyy-MM-dd") &"# and Date<=#"& Date.ToText(Date.EndOfMonth(ChoixD),"yyyy-MM-dd")&"#",
Source = Odbc.Query(Req1, Req2)
in
Source

Adapter la syntaxe date selon la base de données...

chris

XLDnaute Barbatruc
Bonjour

Oui il est facile de déterminer le mois précédent celui en cours.

Cependant tu ne précises pas si tu récupères les données par SQL où tu veux intégrer un paramètre ou bien filtrer en aval ni si tes données contiennent des dates ou seulement des mois...
 

Sofiane Boukecha

XLDnaute Nouveau
merci pour votre intervention,

précision:
- oui je récupère mes données par SQL
- pour le paramètre ou bien le filtre, je ne sais pas ce qui est approprier dans mon cas
moi l'essentiel, quand je charge les données sur excel, j'aimerai qu'il me charge celles du mois passé.
- mes données contiennent des dates (ex 23/10/2022)

merci infiniment
 

chris

XLDnaute Barbatruc
Re
  • soit une cellule nommée dans Excel, ChoixD par exemple, où est saisi le mois voulu, idéalement une date avec le 1er du mois
    Dans ce cas une requête nommée ChoixD récupère la valeur ChoixD
    = Date.From(Excel.CurrentWorkbook(){[Name="ChoixD"]}[Content][Column1]{0})
  • soit un paramètre dans PowerQuery (moins souple)
La requête SQL, pour la ligne Source est de type

Odbc.Query("dsn=NomBase", "select * from NomTable)

Si tu as un paramètre cela donne

let
Req1="dsn=NomBase",
Req2="select * from NomTable where date >=#" & Date.ToText(ChoixD,"yyyy-MM-dd") &"# and Date<=#"& Date.ToText(Date.EndOfMonth(ChoixD),"yyyy-MM-dd")&"#",
Source = Odbc.Query(Req1, Req2)
in
Source

Adapter la syntaxe date selon la base de données (ici Access avec encadrement par # et format yyyy-MM-dd)
 

chris

XLDnaute Barbatruc
Bonjour
Le filtre chronologique filtre après import des données donc traite tout le volume avant de filtrer alors que le filtre SQL confie l'opération de filtrage au moteur SGBD qui renvoie donc un volume limité aux données du mois
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…