Power Query et liens multi-tables

Bonjour,

Certains d'entre vous m'ont dépanné sur un autre problème via Power Query, je souhaite utiliser cet outils qui semble très puissant car j'ai beaucoup de données interconnectées à traiter en vue de créer des indicateurs.

Pour commencer voici le schéma de base mettant en évidence les liens entre table :

image

J'ai donc intégré 4 tables dans PQ issues d'extractions venant d'Excel.

J'ai crée des liens entre les tables avec des left outer join pour garder les données entre "table de droite et de gauche" mais beaucoup d'entres elles manques.

Les tables contiennent des colonnes donc des données différentes, PQ est-il l'outils adapté?

Au besoin, je peux faire suivre le fichier, mais il va me falloir nettoyer les tables pour raison de confidentialité :-D

Bonjour

PowerQuery est un requêteur (pas seulement) : il est donc capable de traiter tables et relations mais, comme pour n'importe quel requêteur, de la qualité de la source dépendent les résultats.

Ta question est très floue.

A part Produit qui semble une table de produits (dont je doute qu'elle ne contienne qu'un champ), OF qui désigne souvent Ordres de fabrication, on ne sait ni à quoi correspondent les autres, ni surtout quel est l'objectif opérationnel.

Une jointure gauche n'est pas toujours à privilégier : là encore tout dépend des données et du besoin.

Je vide le fichier pour expliquer plus en détails, ce sera plus parlant

Le fichier épuré avec quelques lignes pèse déjà + de 1Mo après quelques essais de jointures.

J'ai tout supprimé et même zippé, je ne peux pas l'ajouter car trop volumineux je n'y comprends rien ....

Voici le fichier avec les données d'entrée.

L'idée est de partir du Produit pour aller chercher les OF associés ; eux même liés aux pointages des employés.

Les pointages sont liés à une Non Conformité ou pas selon le cas.

- Dans un premier temps, je souhaite comprendre comment bien lier les 4 tables entre elles sans perdre de données

- Les données brutes en décimal contiennent des "." au lieu de ","; si je fais un pré-traitement excel en amont (rechercher / remplacer), cela génère des erreurs dans les tables générées via PQ que je ne comprends pas.

- Dans un second temps je cherche à trouver les temps pointage sur opération de réparation sans NC et ceux avec NC par OF / Produit / Client (via "pointage . temps réparation")

- Dans un troisième temps, une NC peut générer un rebut ("NC.qte rebutée"); dans ce cas, je souhaite aller chercher par le biais de l'OF et du produit associé le cout "produit.PRG" et "produit.PRC"

Merci pour votre aide

26tdb-q5-data.xlsx (30.86 Ko)

Bonjour

- Les données brutes en décimal contiennent des "." au lieu de ","; si je fais un pré-traitement excel en amont (rechercher / remplacer), cela génère des erreurs dans les tables générées via PQ que je ne comprends pas.

C'est dans PowerQuery qu'il faut préciser le format des données, pas bidouiller avec Excel un fichier qui ne se charge pas correctement.

Sans doute le pourquoi de virgules dans des titres..., un mélange de séparateurs différents dans Pointage

On 2 formats différents de dates dans pointage...

- Dans un second temps je cherche à trouver les temps pointage sur opération de réparation sans NC et ceux avec NC par OF / Produit / Client (via "pointage . temps réparation")

- Dans un troisième temps, une NC peut générer un rebut ("NC.qte rebutée"); dans ce cas, je souhaite aller chercher par le biais de l'OF et du produit associé le cout "produit.PRG" et "produit.PRC"

Ce qu'il faut faire :

  • revoir ton PB d'import (ce sont des csv ou des xls ?)
  • garder pour chaque table les champs utiles et les typer
  • croiser en jointure gauche OF avec NF puis avec pointage
  • puis Produits en jointure interne

Pour les calculs, difficile de modéliser car :

  • tous tes OF ont des NC
  • il n'y a aucune qté rebutée...

Merci pour tes conseils.

Priorité 1 : je comprends que mes données doivent être typées, j'en ai profité pour supprimer via PQ toutes les colonnes non nécessaires.

Question : j'utilise la fonction rechercher /remplacer dans PQ :

exemple :

#"Valeur remplacée" = Table.ReplaceValue(#"Colonnes supprimées",".",",",Replacer.ReplaceValue,{"Durée", "temps reparation"})

Par contre le résultat attendu est partiel : il reste des "."

image

Merci pour l'aide :-)

Bonjour,

Si tu essayes de typer en texte les colonnes (avant d'appliquer le remplacer par), ça devrait fonctionner ?

image

Bonjour

NOoooon !

Pas de cherche et remplace, c'est un non sens...

On type en utilisant les paramètres régionaux (sélectionner la colonne ou les colonnes, clic droit, Modifier le type...)

image

Merci,

J'ai essayé en modifiant le type en décimal sans succès, c'est pour cela que j'ai tenter le "remplacer".

Je ne connaissais pas le paramètre régional; d'ailleurs pourquoi cela fonctionne avec le format état unis et non français ?

image

RE

d'ailleurs pourquoi cela fonctionne avec le format état unis et non français ?

Parce le séparateur décimal de ta source correspond à celui utilisé par les américains... et non au séparateur français qui est la virgule...

Merci pour l'info.

Je commence à réellement comprendre la philosophie PQ du coup.

Mes jointures fonctionnent et maintenant je dois rentrer dans le traitement des données.

Voici un exemple du résultat :

image

A un OF sont associés des pointages par personne : facile --> colonne pointage

Par contre à un OF est associé 0 ou plusieurs NC

Dans ce cas précis 3 NC (950; 1006; 1016) sont associées à l'OF ce qui multiplie les lignes par 3 --> du coup les lignes sont toutes multipliées par 3 à cause de la jointure "

Faut il compter le nombre de NC et diviser chaque temps par ce nombre afin de réajuster les temps dans une nouvelle colonne ?

Merci d'avance

Bonjour

Tout dépend du tableau attendu

Soit effectivement regrouper par OF, récupérer le nombre de lignes et le max de Durée et diviser l'un par l'autre

Soit ne garder qu'un ligne par OF et mettre les divers NC dans un seul champ avec un séparateur.

Je partirais bien sur le regroupement , mais la fonction "grouper" de PQ ne me retourne pas le résultat attendu.

Comment ferais tu ce traitement ?

Merci d'avance

RE

Les 2 nécessite un regroupement

J'en déduis que tu peux garder toutes les lignes ?

voici l'extraction de la table NC pour un OF :

image

et l'extraction de la table pointage pour le même OF :

image

Ensuite, issu de la table multi jointures qui fonctionne bien, j'ai ajouter un regroupement comme ceci :

image

Voici le résultat :

image

Les 3 NC associées à l'OF perturbent le résultat relatif à la somme des réparations; pour les qté rebut ou litige des NC idem

RE

Je n'ai pas d'Employé dans ton exemple du 23 juillet et j'ai toujours un temps réparation = à Durée donc difficile de modéliser dans ce cas.

Si tu regroupes par date, tu n'as plus de détail donc difficile de comprendre ce que tu veux précisément

dans le fichier initial, j'ai supprimer les noms RGPD oblige et cela n'est pas bloquant de mon point de vue.

Pour la colonne " durée", ne la prends pas en compte, je me concentre uniquement sur "temps réparation".

A la fin, je veux connaitre par semaine par exemple le temps de réparation par produit / par OF / par NC avec si NC <> 0 la qté rebutée ou litige ainsi que le prix associé au produit (produit.PRGC)

Comprends tu mieux la finalité?

Rechercher des sujets similaires à "power query liens multi tables"