Microsoft 365 Récupérer des valeurs d'un autre tableau en fonction de plusieurs critères

Thibault123

XLDnaute Junior
Bonjour,

J'ai besoin de récupérer dans un autre tableau des valeurs en fonction de plusieurs critères. "L'autre tableau" nommé Pré enregistrement des NC.xlsm est celui que j'ai joint.
Le tableau dans lequel je souhaite que ces valeurs soient affichées s'appelle Performance fournisseurs.xlsm. La feuille dans laquelle il faut afficher ces valeurs s'appelle Scorecard. Les valeurs doivent être affichées en colonne à partir de la ligne 67. J'ai mis un tableau exemple en pièce jointe.
Je souhaite afficher à partir de cette ligne les valeurs N° NC, Date, Code article, Désignation, N° série, Quantité et Défaut constat du tableau Pré enregistrement des NC.xlsm pour le mois de Juillet (colonne Date) pour le Fournisseur A (colonne Responsabilité Fournisseur / VIT).
J'espère avoir été suffisamment clair!?
Merci d'avance pour votre aide.
 

Pièces jointes

  • Pré enregistrement des NC.xlsm
    88.1 KB · Affichages: 31
  • Performance fournisseurs.xlsm
    9 KB · Affichages: 5

Thibault123

XLDnaute Junior
Dans le fichier Performance fournisseurs, toutes les données comprises entre les lignes 3 et 65 sont décorrélées de ma demande de listing des NC. Donc j'ai supprimé les autres feuilles où il y avait des TCD qui permettent de remplir les tableaux au sommet.

Je n'ai pas de souci avec le fichier Pré enregistrement des NC. J'ai corrigé les noms de fournisseurs.

Le code donné au post #13 est à mettre où?
J'arrive à ajouter la source de données Listing NC, à ne garder que les colonnes utiles. Mais c'est tout.
Je n'arrive pas à créer le lien (ou je ne sais comment décrire cette opération) avec les cellules où sont écrites le nom du fournisseur et la date.
 

Pièces jointes

  • Pré enregistrement des NC.xlsm
    88.4 KB · Affichages: 5
  • Performance fournisseurs.xlsm
    49.6 KB · Affichages: 8

Thibault123

XLDnaute Junior
Bonjour,

J'ai avancé un peu. J'ai réussi à créer le tableau en le mettant là où je voulais (ligne 67).
Le code semble fonctionner. Je n'ai testé qu'avec un fournisseur et un mois.
Par contre, tout le reste de la feuille est chamboulé.
Tout ce qui se trouvait au-dessus de la ligne 67 entre les colonnes A et W a été décalé entre les colonnes AD et AZ. Et tout ce qui se trouvait en-dessous de la ligne 67 entre les colonnes A et J a été décalé entre les colonnes K et T.
Comment faire pour ne modifier le reste de la feuille?

Merci d'avance.
 

chris

XLDnaute Barbatruc
Re

Effectivement j'ai remarqué que les tableaux issus de PowerQuery n'aiment pas être coincés entre d'autres...

Dans ce cas récupérer le tableau à droite ou dans un autre onglet puis le couper/coller en place.
Est-il possible simplement avec l'indication d'un mois de récupérer les valeurs de ce mois et des 2 mois précédents (pour avoir les valeurs des 3 derniers mois glissants)?

La notion de mois glissant peut être basée sur une date du 15/01 au 15/04 par exemple.

Si tu saisis 01/07/2019 il faut considérer du 1/05/2019 au 31/07/2019 ?

Si oui modifier le filtre ainsi :
VB:
= Table.SelectRows(#"Type modifié", each [Date]  <= Date.EndOfMonth(Date.From((Table.FirstValue(Excel.CurrentWorkbook(){[Name="Date"]}[Content])))) and [Date]  > Date.AddMonths(Date.EndOfMonth(Date.From((Table.FirstValue(Excel.CurrentWorkbook(){[Name="Date"]}[Content])))) ,-3))
 

Thibault123

XLDnaute Junior
Bonjour,

Je reste sur cette discussion comme cela concerne toujours le même type de demande.
J'ai joint le tableau source (Pré enregistrement des NC.xlsm) à partir duquel je souhaite récupérer des données pour les mettre dans le fichier "Performance fournisseurs.xlsm".

J'ai besoin de lister 2 tops 10 des fournisseurs les plus perturbants des 6 derniers mois glissant (de mois à mois, pas de date à date).
J'aimerais avoir un top 10 des fournisseurs (selon la colonne "Responsabilité Fournisseur / VIT") qui ont cumulé le plus de NC (selon la colonne "N° NC"). Dans le premier tableau de "Performance fournisseurs.xlsm", il faudrait donc lister ces fournisseurs du plus perturbant au moins perturbant (de haut en bas), sommer le nombre de NC par fournisseur, sommer le nombre de NC client par fournisseur (qui contient "Retour Client" dans la colonne "Origine NC"), sommer le nombre de rebuts par fournisseur (selon la colonne "Quantité"), et sommer le coût par fournisseur (selon la colonne "Info coût pièces NC").
J'aimerais un 2ème top 10 (cf. 2ème tableau de "Performance fournisseurs.xlsm") avec les mêmes infos, selon les mêmes critères, mais en classant les fournisseur qui ont coûté le plus cher (donc selon la colonne "Info coût pièces NC").

J'espère avoir été clair et ne rien avoir oublié dans mes explications. Ne pas hésitez à me demander si besoin de plus de détails ou de clarifications.
Merci pour votre aide.
 

Pièces jointes

  • Performance fournisseurs.xlsm
    9.1 KB · Affichages: 4
  • Pré enregistrement des NC.xlsm
    92 KB · Affichages: 2

Thibault123

XLDnaute Junior
Désolé pour le MP. Je ne savais pas si tu allais être informé de mon nouveau post, d'autant que je pensais avoir terminé avec la discussion initiale.
Merci d'être repassé en tout cas.

1- Je ne comprends pas (ne vois pas en fait) le lien dans l'éditeur Power Query entre les 2 TCD et mes 2 tableaux "Top 10". Des fois que cela ait son importance, je précise que cette nouvelle requête Power Query (pour les Top 10) est indépendante de la 1ère requête initiale à l'ouverture de cette discussion (requête qui liste les NC sur 3 mois glissant).

2- Les TCD sont filtrés directement selon l'Origine "Retour client". L'Origine ne devrait pas être un filtre pour les autres colonnes (nb NC, somme Quantité, somme Coût), mais être une colonne en soit comme indiqué dans mes tableaux "Top 10".

3- J'ai oublié de le préciser dans mon précédent message : le fournisseur "VIT" ne doit pas être pris en compte dans les Top 10.

Merci d'avance pour ton aide.
 

chris

XLDnaute Barbatruc
RE

J'ai exploité la requête par TCD qui reproduisent tes tableaux

Les 2 requêtes sont bien indépendantes mais comme elle utilisent les mêmes infos dossier et date, j'ai pris le même fichier pour ne pas créer d'autres variables

Le nombre de "Retour client" est bien une colonne en soi.
J'ai ajouté un filtre dans la requête mais cela pouvait se faire dans le TCD (avec Fournisseur en zone de filtre et VIT décoché)
J'ai ajouté une colonne dans la requête pour les retours clients

Je te laisse renommer les colonnes des TCD à ton goût...
 

Pièces jointes

  • Performance fournisseurs3PQ.xlsx
    28.9 KB · Affichages: 5

Thibault123

XLDnaute Junior
Bonjour chris,

Je commence à comprendre en manipulant un peu plus. Mais j'ai quelques soucis.
En copiant ton tableau et ta requête, puis en l'adaptant légèrement, cela fonctionnait bien la semaine dernière. J'actualisais et cela n'affichait bien que le top 10 (10 lignes uniquement).
Cette semaine, en modifiant encore un peu le code (voir ci-dessous le code), cela me demande si je veux remplacer les données du tableau. je mets oui, mais cela m'affiche 15 lignes maintenant.

let
Source = Excel.Workbook(File.Contents("N:\DEMANDES OPERATIONS\Non conformites composant\Pré enregistrement des NC.xlsm"), null, true),
#"Listing NC_Sheet" = Source{[Item="Listing NC",Kind="Sheet"]}[Data],
#"En-têtes promus" = Table.PromoteHeaders(#"Listing NC_Sheet", [PromoteAllScalars=true]),
#"Lignes filtrées" = Table.SelectRows(#"En-têtes promus", each [Date] <= Date.EndOfMonth(Date.From((Table.FirstValue(Excel.CurrentWorkbook(){[Name="Date"]}[Content])))) and [Date] > Date.AddMonths(Date.EndOfMonth(Date.From((Table.FirstValue(Excel.CurrentWorkbook(){[Name="Date"]}[Content])))) ,-6)),
#"Lignes filtrées1" = Table.SelectRows(#"Lignes filtrées", each ([#"Responsabilité Fournisseur / VIT"] <> null and [#"Responsabilité Fournisseur / VIT"] <> "NC")),
#"Personnalisée ajoutée" = Table.AddColumn(#"Lignes filtrées1", "Retour Client", each if [Origine NC]="Retour Client" then 1 else 0)
in
#"Personnalisée ajoutée"

Je ne pense pas que le code soit en cause.
Cela doit provenir du résultat de la requête avec par ordre décroissant de "Nombre de N° NC" ceci : 46, 18, 9, 7, 5, 4, 4, 4, 3, 2, 2, 2, 2, 2, 2 (cf. impression écran jointe).
Comme 6 fournisseurs sont à 2 NC, cela m'affiche au final 15 lignes.
Comment faire pour ne garder afficher que 10 lignes?
Le 2nd critère si plusieurs fournisseurs ont le même nombre de NC serait de les classer par "Retour Client" (du plus grand au plus petit).
Et le 3ème critère si plusieurs fournisseurs ont le même nombre de NC et de Retour Client serait de les classer par "Coût" (colonne "Info coût pièces NC"; du plus grand au plus petit).
Dans le cas exemple ne devrait s'afficher dans l'ordre que : fournisseur 1 / 2 / 3 / 4 / 5 / 8 / 7 / 6 / 9 / 13.

Merci encore pour ton aide.
 

Pièces jointes

  • ordre.jpg
    ordre.jpg
    110.6 KB · Affichages: 14

Thibault123

XLDnaute Junior
J'ai bien le filtre des 10 premiers éléments en Nombre de N° NC, ainsi que le tri descendant sur Nombre de N° NC.
Si je clique droit sur la colonne "Retour client" pour appliquer un tri descendant, cela prend le pas sur le tri initial descendant de la colonne "Nombre de N° NC".
Il n'y a pas moyen d'avoir plusieurs tris successifs sur un même tableau?
 

Thibault123

XLDnaute Junior
Il y aurait peut-être possibilité de le faire directement dans la requête (cf. 2 liens ci-dessous) plutôt que de passer par le tri et filtre du TCD, mais je ne sais pas comment le mettre en application avec mon cas.

 

Discussions similaires

Statistiques des forums

Discussions
315 098
Messages
2 116 190
Membres
112 679
dernier inscrit
Yupanki