2017-06-19 1 views
0

Ceci est ma première question donc excuses si je ne l'ai pas demandé aussi clairement que je devrais avoir! Comme vous verrez probablement ma tâche principale au travail n'est pas Power Querying des choses :)PowerQuery renvoyant une valeur dépendant de la date tombant dans une plage prédéfinie de dates

Je crée actuellement simplement une table qui fusionne (pas sûr si c'est le mot correct!) Des données de deux tables pour produire une troisième table , montrant les pourcentages et la densité des minéraux en fonction de l'origine de la charge et du type de matériau.

Ma sortie quury ressemble à ceci:

let 
    Source = Table.NestedJoin(LoadTrak_2100rows,{"Load Origin", "Material"},Schedule,{"Name", "Material"},"NewColumn",JoinKind.LeftOuter), 
    #"Expanded NewColumn" = Table.ExpandTableColumn(Source, "NewColumn", {"Waste tonnes", "Total Ore Tonnes", "Dil cu_pct", "Dil au", "Dil ag", "Dil fe_pct", "Dil zn_pct", "Density", "Activity"}, {"NewColumn.Waste tonnes", "NewColumn.Total Ore Tonnes", "NewColumn.Dil cu_pct", "NewColumn.Dil au", "NewColumn.Dil ag", "NewColumn.Dil fe_pct", "NewColumn.Dil zn_pct", "NewColumn.Density", "NewColumn.Activity"}), 
    #"Reordered Columns" = Table.ReorderColumns(#"Expanded NewColumn",{"Record", "Dir.", "Operator", "Truck ID", "Load (m3)", "Truck Operator", "Crew", "Shift", "Material", "Load Origin", "Dumped At", "NewColumn.Dil cu_pct", "NewColumn.Dil au", "NewColumn.Dil ag", "NewColumn.Dil fe_pct", "NewColumn.Dil zn_pct", "NewColumn.Density", "Day", "Shift Time", "Calc Shift"}), 
    #"Removed Blank Rows" = Table.SelectRows(#"Reordered Columns", each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {"", null}))), 
    #"Renamed Columns" = Table.RenameColumns(#"Removed Blank Rows",{{"NewColumn.Dil au", "Diluted Au g/t"}, {"NewColumn.Dil ag", "Diluted Ag g/t"}, {"NewColumn.Dil cu_pct", "Diluted Cu %"}, {"NewColumn.Dil fe_pct", "Diluted Fe %"}, {"NewColumn.Dil zn_pct", "Diluted Zn %"}, {"NewColumn.Density", "In Situ Density"}, {"NewColumn.Waste tonnes", "Scheduled Waste Tonnes"}, {"NewColumn.Total Ore Tonnes", "Scheduled Ore tonnes"}, {"NewColumn.Activity", "Activity"}}) 
in 
    #"Renamed Columns" 

Ceci est bien si mon teneur en minéraux ne change pas au cours du mois (chaque mois aura son propre classeur). Hélas le contenu minéral en dépend, selon l'origine et la date du chargement.

Dans la table LoadTrak_2100rows, j'ai une date pour chaque ligne (chaque chargement a une ligne). Dans le tableau des horaires, j'ai une ligne avec des valeurs minérales et une date de début et de fin. Un exemple est ci-dessous:

Donc, enfin ma question. Comment puis-je renvoyer des valeurs pour

"Dil cu_pct", "Dil au", "Dil ag", "Dil fe_pct", "Dil zn_pct", "Density" Selon la date à partir de LoadTrak_2100rows entrant dans les dates de début et de fin définies dans Schedule?

Je frappe normalement les roches avec un marteau pour gagner ma vie, alors s'il vous plait portez-moi sur ce point, toute aide est grandement appréciée!

Mat


Je ne peux pas travailler sur la façon d'attacher un exemple de fichier (désolé!) Mais voici une tentative d'expliquer. J'ai réduit les deux tables à l'essentiel pour les questions (j'aurais probablement dû le faire pour commencer!).

Essentiellement ma table Schedule ressemble à ceci: Schedule

Et mes camions chargés log ressembler à ceci Loads

Qu'est-ce que je manque est une sortie qui corréler le programme Cu% avec les charges connectent. Je peux actuellement faire ça bien, tant que le Cu% ne change pas tout au long du mois. Mais avec certains endroits, le Cu% changera tout au long du mois et je veux que mon résultat reflète cela.

Merci encore pour votre aide, excuses je ne peux pas joindre le fichier, je ne sais pas vraiment si c'est possible? J'ai dû supprimer mon image de la question originale pour ajouter les deux suivantes car je ne suis pas autorisé à poster des images pour le moment et je suis limité à 2 liens.

Mat

+0

pouvez-vous ajouter l'exemple de fichier Excel avec des données qui ne sont pas sensibles pour vous? –

+0

Je suis plus qu'heureux de mais je ne suis pas sûr si c'est possible?Je ne trouve nulle part qui raconte comment attacher un fichier à un post! Quoi qu'il en soit, j'espère que cela aide: –

+0

Ok, donc ça n'a pas l'air de faire quoi que ce soit. Laisse moi continuer d'essayer. –

Répondre

0

Après avoir rejoint vos tables, vous pouvez ajouter une nouvelle colonne avec le dossier de l'annexe qui correspond à la date de la charge:

let 
    Source = Table.NestedJoin(Loads,{"From", "Material"},Schedule,{"Location", "Material"},"NewColumn",JoinKind.LeftOuter), 
    #"Added Custom" = Table.AddColumn(Source, "Schedule", (Load) => Table.SelectRows(Load[NewColumn], each [From] <= Load[Timestamp] and [To] >= Load[Timestamp])), 
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"NewColumn"}) 
in 
    #"Removed Columns" 

Maintenant, vous pouvez procéder comme dans l'original requête avec l'expansion de cette colonne etcetera.

+0

Salut Marcel, excuses pour ma réponse tardive (j'ai été absent pour le travail pour les 6 derniers jours). Je vais essayer et vous faire savoir comment je vais. Merci encore. Mat –

+0

Salut Marcel, merci pour votre aide. Malheureusement, je reçois maintenant une erreur disant "Token Comma Expected", quand je clique sur "show error", il met en évidence # "Custom Custom" mais je ne trouve rien de plus. Il ne semble pas y avoir une fonction de correction d'erreur étape par étape comme dans Excel, donc je suis un peu perplexe. J'ai trouvé une définition de chaque fonction sur le site Web de Microsoft, mais elle n'explique pas vraiment comment ils fonctionnent, elle indique simplement ce que chaque partie de la fonction doit être. Merci beaucoup pour votre aide, je l'apprécie vraiment! –