Self Reference d'une requête PQ - Relevés comptes bancaires

32019.csv (2.13 Ko)

Hello a tous !

Je cherche et cherche et j'ai trouve un article qui traite mon problème mais je ne trouve pas entière satisfaction

J'exporte mes relevés bancaires au format CSV, je voudrais les importer dans PQ et appliquer les transformations suivantes

- Ajouter des colonnes vides (bon ca c'est facile ) pour pouvoir ajouter des commentaires pour catégoriser les flux

- Pouvoir actualiser ma requête sans que mes commentaires s'effacent ou se décalent

- La je tente, est il possible de creer une table de reference pour dire a ma requete, si dans la description se trouve tel ou tel mot, tu me mets ca dans la colonne categorie (RECHERCHEV qui contient une chaine de caractere, avec possibilite de coupler avec ET, ou OU)

Merci de votre aide et votre temps

42020.csv (2.48 Ko)
52021.csv (4.34 Ko)

Bonjour,
Il manque le xlsx et les informations sur les mot-clés !?
Cdlt.

Bonsoir Jean-Eric,

Tu voudrais un fichier Excel ou j'importe les 3 csv ? Je veux bien le faire mais vu qu'on a pas les même chemins d'accès, je ne me souviens pas par cœur comment le rendre dynamique

Par rapport aux mots clés, si tu fais référence a ma dernière demande, j'imaginais extraire une liste unique de la colonne description, lui ajouter une colonne catégorie et moi je remplis manuellement ce a quoi cela correspond, par exemple on a dans description LOCA, en catégorie je mettrai Location

Je souhaiterais ton avis quant a cette démarche, si tu pense a une meilleure idée

J'espère avoir été plus clair, n'hésites pas si tu as plus de questions, je suis ravi d'avoir lu ta réponse

Re,
Joins ton xlsx.
Le chemin n'est pas un souci mais assure toi qu'il traite les 3 csv joints.
Cdlt.

Et voici

Re,
Dans ton fichier pas de requêtes et pas d'éléments pour les mots-clés.
Cdlt.

Re,

J'ai combiné les 3 csv pour créer la requête que j'ai nommé CSV. Je voudrais ajouter deux colonnes vierges pour pouvoir remplir manuellement (quand ca ne pourra pas se faire de manière automatique) des catégories et sous-catégorie

J'ai aussi créé un tableau avec les mots clés pour pouvoir faire une sorte de RECHERCHEV et chargé dans PQ

Je précise a nouveau, si tu le veux bien que je ne souhaites pas perdre mes commentaires (manuels) lors de l'actualisation

Merci encore pour ton temps, j'espère que ce classeur contiendra tout ce que tu attends, j'y met de la bonne volonté

Bonjour,
Un début de réponse.
A tester à l'utilisation !?
Cdlt.

9dany0388.zip (32.08 Ko)

Bonjour Jean-Eric

Un grand merci pour ton temps et le résultat

- Je peux apporter des modifications sans que la réactualisation ne les efface

Un petit souci, en revanche, j'ai dupliqué le fichier .csv 2021 et je l'ai renommé 2022, je n'y ai laissé que deux lignes avec des montants plus grands pour tester. Lors de l'actualisation, j'ai bien deux lignes qui s'ajoutent dans le tableau mais vide, dans PQ les deux lignes sont null, je ne comprends pas pourquoi

- Lorsque j'ajoute une ligne dans t_description, je ne vois pas le résultat dans la requête consolidation, j'ai ajoute une ligne OR PI 21 | Rent | Produit

- Enfin, je suis extrêmement curieux sur les petites flèches en gras qui apparaissent dans les étapes appliquées, comment et pourquoi ?

Je joins un zip a nouveau avec le nouveau .csv 2022 et la ligne que j'ai rajouté dans t_description

Je suis trop trop content de ton aide

2dany0388-v2.zip (34.80 Ko)

Bonjour à tous,

- Enfin, je suis extrêmement curieux sur les petites flèches en gras qui apparaissent dans les étapes appliquées, comment et pourquoi ?

@ Jean-Eric : Pratique Wyn Hopkins ?

Bonjour,
Il serait apprécié que JFL et 78chris interviennent pour leurs commentaires avisés.
Bon, on a soucis avec le sel referencing avec l'ajout de données supplémentaires dans t_description, ainsi que l'ajout de nouveaux csv.

1 - Supprimer table t_consolidation
2 - Dans la requête t_consolidation inhiber les étapes suivantes :

#"Sorted Rows" = Table.Sort(#"Renamed Columns",{{"Index", Order.Ascending}})
    //#"▶Merged Queries" = Table.NestedJoin(#"Sorted Rows", {"Index"}, t_self_referencing, {"Index"}, "t_self_referencing", JoinKind.LeftOuter),
    //#"Removed Other Columns" = Table.SelectColumns(#"▶Merged Queries",{"t_self_referencing"}),
    //#"Expanded t_self_referencing" = Table.ExpandTableColumn(#"Removed Other Columns", "t_self_referencing", {"Index", "Transaction Date", "Transaction Type", "Transaction Description", "Debit Amount", "Credit Amount", "Category", "Subcategory"}, {"Index", "Transaction Date", "Transaction Type", "Transaction Description", "Debit Amount", "Credit Amount", "Category", "Subcategory"}),
    //#"Changed Type1" = Table.TransformColumnTypes(#"Expanded t_self_referencing",{{"Transaction Date", type date}, {"Debit Amount", Currency.Type}, {"Credit Amount", Currency.Type}})
in
    //#"Changed Type1"
    #"Sorted Rows"

3 - Recharger t_consolidation dans la feuille de calcul
Les modifications apportées (ajout nouveaux csv et descriptions) sont prises en compte.
4 - Désinhiber les étapes (point 2)
5 - Actualiser

(*) J'ai intégré le chemin du répertoire en auto !
(**) ▶, pour les étapes importantes dans la requête (touche Win et ; = table des emoji et on fait son choix) 🤑

Cdlt.

7dany0388-v2.zip (67.19 Ko)

Bonjour à tous

En fait on ne peut avoir les mêmes colonnes Category et Subcatégory qui sont alimentées par requête et modifiées manuellement

Les colonnes manuelles sont juste à récupérer par le self referencing

Soit elles sont manuelles, soit ce sont d'autres colonnes supplémentaires

Exemple en considérant les colonnes comme manuelles

Je n'ai pas détaillé le nouveau fichier de Jean-Eric...

Bonsoir a tous

Merci encore a Jean-Eric et 78Chris pour vos éclairages et votre temps, j'essaye de comprendre vos étapes et vos démarches, je regarde et essaye de répliquer vos actions, car c'est aussi le but du forum...apprendre a pêcher

@Jean-Eric :

2 - Dans la requête t_consolidation inhiber les étapes suivantes :

Que veux dire inhiber les étapes et comment le fait-on ? dois-je le faire a chaque fois que je voudrais actualiser ?

Merci pour avoir rendu le chemin d'accès et dynamique pour le ▶

@78Chris

En fait on ne peut avoir les mêmes colonnes Category et Subcatégory qui sont alimentées par requête et modifiées manuellement

Ce que je voulais dire, je ne sais pas si c'est la même chose, mais je voudrais compléter manuellement ces deux colonnes car il est difficile de les faire remplir automatiquement via une autre requête pour certaines lignes. Donc, certaines lignes alimentées par une requêtes et d'autres manuellement, c'est possible ca ?

Aussi, j'ai ajouté quelques lignes dans un csv et ton fichier s'est actualisé, mais je ne sais pas comment il s'est connecté a la source en fait, c'est assez intriguant ?

Si la réponse est oui a ma première remarque, tu penses que tu pourrais rajouter la table de description comme Jean-Eric pour avoir certaines lignes alimentées par requête et d'autres manuellement ?

Merci a vous pour vos réponses, j'en apprend énormément avec vos propositions

Bonjour,
@dani0388,

Pour inhiber une ligne, ou ajouter un commentaire, il faut aller dans l'éditeur avancé de PQ et insérer une double barre oblique (//) au début de cette ligne (voir message précédent).
Pour inhiber plusieurs lignes, il faut insérer une barre oblique suivi d'un astérisque (/*) en début et insérer un astérisque quivi d'une barre oblique (*/) en fin.
Attention aux virgules !

Dans ma deuxième tentative, il faudrait effectivement, répéter cette action pour tout nouveau fichier csv.

Comme expliqué par 78chris, on ne peut pas avoir des champs alimentés par requête et modifiés manuellement.
Tu peux faire un simple essai avec 2 petites tables pour t'en rendre compte.

Je te joins un petit fichier avec un lien qui explique le self referencing :

A te relire.
Cdlt.

Merci @Jean-Eric

J'ai bien compris merci pour ces réponses et éclaircissements

J'ai aussi compris que je ne pouvais pas avoir une colonne alimentée en partie par requête et en parti manuellement, c'est un peu dommage

Du coup je me suis dit que je peux faire une (ou plusieurs selon le besoin) colonne alimentée par requête, une autre manuellement, puis fusionner les deux, qu'en penses-tu ?

Pour le lien sur le self-referencing je l'avais déjà vu mais j'avais pas tout compris, il revient souvent cet article, j'ai suivi des cours sur PQ et lors du self-referencing ce lien est revenu

J'apprécie énormément tout le temps que tu passes a m'aider, surtout que je tiens vraiment a aller au bout et avoir une solution qui fonctionne et bien évidemment que je peux reproduire

La proposition de 78chris semble fonctionner pour l'ajout des .csv il ne reste qu'a trouver comment remplir ces deux colonnes de quelque manière que ce soit

Autre point, j'essaye de reproduire vos étapes dans un nouveau classeurs (les tiennes et celles de 78chris) l'un de vous aurait la patience et l'envie de partager et me guider sur la création de la fonction, j'ai cherché dans les paramètres, clique sur toutes les propriétés, je ne trouve pas comment vous l'avez créé

Si j'ai bien compris l'utilité de la fonction c'est de reproduire des étapes/transformations a plusieurs tables en un coup ?

J'espère que ce fil gagnera en vues comme ca tout le monde apprendra

Merci, sincèrement

RE

Quand on requête sur un dossier en précisant combiner et transformer, automatiquement PowerQuery crée une arborescence avec une requête nommée exemple de fichier pointant sur le 1er fichier du dossier.

On fait toutes les étapes sur cette requête et en même temps PowerQuery transforme cette requête en une fonction qu'il applique à tous les fichiers, éventuellement filtrés, dans une requête qui porte le nom du dossier. Si on a bien fait l'exemple, seule la dernière étape (typage) de la requête portant le nom du dossier est à supprimer et refaire.

Quand on est plus à l'aise on peut simplifier cette arborescence et ne garder que la fonction en la remaniant légèrement. C'est ce qu'à fait Jean-Eric.

Merci Chris,

Explication très clair, je te remercie

J'ai pu reproduire ce que tu as fait, je te remercie, j'ai passé beaucoup de temps mais j'en suis ravi, je peux maintenant ajouter des csv

Des lors deux questions :

1. Admettons que le 15 janvier j'exporte mon csv du 1er au 14 janvier. Nous sommes fin janvier et je ne me souviens plus ce que j'ai téléchargé, je téléchargé donc a nouveau mon csv depuis le 1er janvier au 30 janvier. J'aurai certainement des doublons, est-ce que la solution actuelle sait les gérer ? Est-ce que si après la dernière étape on supprime la colonne Index et on fait un CTRL + A > Supprimer les doublons, ca peut le faire ?

2. Est-ce que toi ou Jean-Eric ou n'importe quel autre membre de ce super forum aurait une idée pour remplir mes colonnes Category et Subcategorie de manière automatique et dynamique, admettons que j'abandonne l'idée de remplissage manuel/auto

Merci les gars

3dani0388.zip (34.30 Ko)

Bonjour

Je n'avais pas fait attention à l'index : l'index unique doit être dans la source car un index ajouté se recalcule et donc le décalage se fera en dépit du self referencing

Je doute que la banque ajoute une ligne sur une date ancienne mais si ce n'est pas exclu, il faut construire son propre index unique : date + description devrait le faire.

Cet index résoudrait aussi le problème de doublons.

Cependant j'opterais pour ma part pour une règle simple : mon export est toujours enregistré avec le nom de forme aaaa_mm donc quel que soit la date, si c'est le même mois j'écrase l'ancien...

Pour le remplissage auto il faut que tu définisses des règles un peu comme la table qu'avait faite Jean-Eric dans sa 1ère approche.

Donc à mettre à plat avant de chercher comment le faire

Après réflexion, je pense sincèrement que de remplir les colonnes Category et Subcategory via une requête simplement risque d'être difficile (j'ai pensé aux cas des remboursements, de certains sites d'achats qui vendent tellement tout qu'on ne peut pas les enfermer dans une seule catégorie etc..)

J'opterai donc pour une solution où une partie serait alimentée par requête et une autre manuellement, mais comme vous me l'avez dit précédemment, on ne peut pas alimenter une colonne de cette manière (requête + manuel)

Du coup, que penses-tu de cela

Category1 et Subcategory1 > alimentées par requête (pour les opérations simples et récurrentes)

Category2 et Subcategory2 > alimentées manuellement

Category et Subcategory > fusion des colonnes 1 et 2; et je ne garde que ces colonnes quand je charge dans Excel

Si tu penses qu'il y a une certaine cohérence, je fournirai un fichier avec une table pour alimenter par requête

Merci beaucoup

RE

Tu peux masquer mais pas supprimer les colonnes sinon tu ne peux saisir ni récupérer la saisie

Rechercher des sujets similaires à "self reference requete releves comptes bancaires"