PowerQuery 根据属于预定义日期范围的日期返回一个值
PowerQuery returning a value depending on the date falling into a predefined range of dates
这是我的第一个问题,如果我没有问清楚,我深表歉意!您可能会看到我工作的主要任务不是 Power Querying 事情 :)
我目前只是在创建一个 table 合并(不确定这个词是否正确!)来自两个 table 的数据以产生第三个 table,显示矿物百分比和密度取决于负载来源和 material 类型。
我的查询输出如下所示:
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"
如果我的矿物质含量在一个月内没有变化(每个月都有自己的工作簿),这很好。 las,矿物质含量对某些人有影响,具体取决于装载来源和日期。
在 LoadTrak_2100rows table 中,每一行都有一个日期(每个负载都有一行)。在附表 table 中,我有一行包含矿物值以及开始和结束日期。示例如下:
所以,最后是我的问题。我如何 return 值
"Dil cu_pct", "Dil au", "Dil ag", "Dil fe_pct", "Dil zn_pct", "Density"
取决于 LoadTrak_2100rows 落入 Schedule?
中定义的开始和结束日期的日期
我通常以用锤子敲击岩石为生,所以请多多包涵,非常感谢您的帮助!
垫子
我不知道如何附加示例文件(抱歉!),但这里尝试进行解释。为了问题的目的,我已经将两个 table 精简为基本要素(我可能一开始就应该这样做!)。
我的日程表 table 基本上是这样的:
Schedule
我的货运日志看起来像这样
Loads
我想要的是将计划 Cu% 与负载日志相关联的输出。我目前可以很好地做到这一点,只要 Cu% 在整个月内都没有变化。但是对于某些位置,Cu% 会在一个月内发生变化,我希望我的输出能够反映这一点。
再次感谢您的帮助,抱歉我无法附上文件,我真的不确定是否可以?我不得不从原始问题中删除我的图片以添加两个后续图片,因为我还不允许 post 图片并且仅限于 2 个链接。
垫子
加入表后,您可以添加一个新列,其中包含与加载日期相对应的计划记录:
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"
现在您可以像在原始查询中一样继续扩展此列等等。
这是我的第一个问题,如果我没有问清楚,我深表歉意!您可能会看到我工作的主要任务不是 Power Querying 事情 :)
我目前只是在创建一个 table 合并(不确定这个词是否正确!)来自两个 table 的数据以产生第三个 table,显示矿物百分比和密度取决于负载来源和 material 类型。
我的查询输出如下所示:
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"
如果我的矿物质含量在一个月内没有变化(每个月都有自己的工作簿),这很好。 las,矿物质含量对某些人有影响,具体取决于装载来源和日期。
在 LoadTrak_2100rows table 中,每一行都有一个日期(每个负载都有一行)。在附表 table 中,我有一行包含矿物值以及开始和结束日期。示例如下:
所以,最后是我的问题。我如何 return 值
"Dil cu_pct", "Dil au", "Dil ag", "Dil fe_pct", "Dil zn_pct", "Density"
取决于 LoadTrak_2100rows 落入 Schedule?
我通常以用锤子敲击岩石为生,所以请多多包涵,非常感谢您的帮助!
垫子
我不知道如何附加示例文件(抱歉!),但这里尝试进行解释。为了问题的目的,我已经将两个 table 精简为基本要素(我可能一开始就应该这样做!)。
我的日程表 table 基本上是这样的: Schedule
我的货运日志看起来像这样 Loads
我想要的是将计划 Cu% 与负载日志相关联的输出。我目前可以很好地做到这一点,只要 Cu% 在整个月内都没有变化。但是对于某些位置,Cu% 会在一个月内发生变化,我希望我的输出能够反映这一点。
再次感谢您的帮助,抱歉我无法附上文件,我真的不确定是否可以?我不得不从原始问题中删除我的图片以添加两个后续图片,因为我还不允许 post 图片并且仅限于 2 个链接。
垫子
加入表后,您可以添加一个新列,其中包含与加载日期相对应的计划记录:
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"
现在您可以像在原始查询中一样继续扩展此列等等。