2017-06-19 300 views
0

这是我的第一个问题,如果我没有问清楚,我应该有这样的道歉!因为你可能会看到我在工作中的主要任务不是Power查询的东西:)PowerQuery根据日期落入预定义的日期范围返回一个值

我目前只是简单地创建一个表,合并(不知道这是否是正确的词!)数据从两个表中产生第三个表,根据负载来源和材料类型显示矿物百分比和密度。

我quury输出如下:

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" 

这是好的,如果我的矿物质含量并不在一个月内发生变化(每个月都会有自己的工作簿)。唉矿物质含量确实有一些取决于负载原产地和日期。

在LoadTrak_2100rows表中我有每行的日期(每个负载都有一行)。在附表中,我有一行矿物质值和开始和结束日期。一个例子如下:

所以,最后我的问题。我如何返回

"Dil cu_pct", "Dil au", "Dil ag", "Dil fe_pct", "Dil zn_pct", "Density" 取决于LoadTrak_2100rows落入Schedule中定义的开始日期和结束日期的日期?

我通常用锤子打石头为生,所以请忍受我在这,任何帮助,非常感谢!


我不能工作了如何连接一个样本文件(对不起!),但这里是一个试图解释。为了解决这些问题,我已经削减了两张表的基本要素(我可能应该先完成这个工作!)。

本质上我的日程安排表看起来像这样: Schedule

而我的卡车登录这个样子的 Loads

我想什么是输出与负荷记录,将相关的计划铜%。我现在可以做得很好,只要Cu%在整个月内不变。但是在一些地点,Cu%会在一个月内发生变化,我希望我的输出反映这一点。

再次感谢您的帮助,道歉我无法附加文件,我真的不确定是否有可能?我不得不从原始问题中删除我的图像,以添加两个后续的图像,因为我不允许发布图像,并且仅限于2个链接。

+0

您可以添加一些样本excel文件,这些数据对您不敏感吗? –

+0

我很高兴,但我不确定它是否可能?我找不到任何说明如何将文件附加到帖子的地方!无论如何,我希望这会有所帮助: –

+0

好吧,好像没有做任何事情。让我继续尝试。 –

回答

0

后你加入你的表,你可以从附表,随着负荷的日期对应的记录添加新列:

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" 

现在您可以继续像在原始查询扩展此列等。

+0

嗨Marcel,对于我最近的回复(我已经离开去过去6天的工作)表示歉意。我会试试这个,让你知道我该怎么走。再次感谢。垫子 –

+0

嗨马塞尔,感谢您的帮助。不幸的是,我现在得到一个错误,说“令牌逗号期望”,当我点击“显示错误”它突出显示#“添加自定义”,但我找不到更多的东西。似乎没有像在Excel中一步一步的纠错功能,所以我有点难住。我已经在微软的网站上找到了每个函数的定义,但是它并没有真正解释它们是如何工作的,它只是说明函数的每个部分都应该是什么。非常感谢您的帮助,但我真的很感激! –