Mise à jour d'un listing lié à d'autres classeurs par des requêtes PQ
Bonjour,
Dans le cadre de mon métier, je suis amené à relever des commerces de plusieurs communes pour ensuite compiler toutes les données créées dans un même fichier Excel sous forme de listing.
Je vous invite à directement jeter un coup d'œil aux captures d'écran jointes pour faciliter la compréhension de mon problème.
Je dispose donc de plusieurs fichiers Excel de relevés commerciaux (Excel-1) contenant des tableaux reprenant l'adresse, le numéro et l'enseigne de chaque commerce, un fichier par commune.
A côté de cela, j'ai fait un fichier Excel "Listing" (Excel-2) qui regroupe l'ensemble de ces commerces (tous les commerces de toutes les communes sont repris dans ce fichier). Ce fichier "Listing" est lié aux fichiers de relevés par une requête faite via Power Query. Ainsi, la moindre modification dans un des fichiers de relevés est automatiquement mise à jour dans le fichier récapitulatif "Listing".
A ce fichier "Listing", j'ai ajouté des colonnes supplémentaires telles que les horaires d'ouverture, le téléphone, l'adresse mail du magasin, etc. Ces colonnes ont été ajoutées uniquement dans le fichier "Listing" et ne sont pas présentes dans les fichiers de relevés. Elles n'ont donc pas de liaison directe avec ces fichiers.
Mon problème est le suivant :
Lorsque, dans un tableau de mes fichiers de relevés, j'ajoute ou je supprime une ligne, la ligne correspondante est ajoutée (ou supprimée) dans mon fichier récapitulatif "Listing" mais les éléments que j'avais ajoutés dans les colonnes supplémentaires de ce même fichier "Listing" se retrouvent décalés (une ligne au-dessus ou en-dessous) et elles ne correspondent alors plus au bon commerce.
En exemple (cf. les captures d'écran jointes) :
Excel-1 = Un fichier de relevés
Excel-2 = Le fichier "Listing" qui regroupe l'ensemble des fichiers de relevés liés par une requête via Power Query (liaison avec un seul fichier de relevés pour l'exemple)
Excel-3 = Dans le fichier Listing, j'ajoute des colonnes supplémentaires
Excel-4 = J'insère une nouvelle ligne dans mon fichier de relevés
Excel-5 = Dans mon Listing, j'actualise et le décalage s'est créé -> Les informations que j'avais entrées pour Celio sont décalées et sont maintenant situées dans la ligne 4 pour l'enseigne Abricot (et sont donc erronées).
Auriez-vous un moyen de contrer ce décalage ?
J'ai conscience que c'est assez spécifique comme demande mais je ne trouve aucun moyen correct d'empêcher ce décalage...
Merci d'avance !
Bonjour
Il faut faire un self referencing
https://exceleratorbi.com.au/self-referencing-tables-power-query
Bien suivre les étapes
Merci Chris,
J'avais essayé à plusieurs reprises de faire un self referencing (grâce au très bon guide que tu m'as indiqué) mais ma colonne index n'était jamais fixe. Si j'ajoutais une ligne dans mon fichier source, la ligne s'insérait bien dans mon fichier "Listing" mais l'index se mettait à jour non pas en ajoutant un nouveau numéro pour la nouvelle ligne insérée mais en modifiant les numéros de l'index existant - ce qui avait pour effet d'encore une fois décaler toutes mes informations.
Avec un identifiant unique pour chaque ligne, directement encodé sur le fichier source, le problème semble réglé.
Bonjour
L'identifiant unique ne doit pas être un index généré par PowerQuery mais un champ de la source, ou éventuellement combinaison de champs, permettant d'identifier sans erreur une ligne
La colonne Numéro est-elle un ID unique ?
Non elle ne l'est pas car on parle ici de plusieurs dizaines de rues et donc le même numéro revient plusieurs fois.
Dans mon cas, j'ai des identifiants uniques qui sont générés via un logiciel de cartographie que j'utilise.
Je n'ai pas essayé mais, sauf erreur de ma part, concaténer rue + numéro devrait créer des ID uniques également sauf si certains numéros apparaissent plusieurs fois dans une même rue.
RE
Je n'avais pas compris que c'était le numéro de rue donc effectivement non approprié
Enseigne + rue + numéro devrait être unique mais les ID textuels sont plus lourd à gérer en BD
C'est sûr qu'un ID Géo serait plus sûr sauf plusieurs enseignes partageant des locaux