我有两张桌子。表1和表2。
表1=原始数据表2=应用于表1的条件过滤器
目标:表2中的每一行都将有一个或多个列数据。如果表1中的同一列包含筛选项,则"Result“列的措辞将填充到新的表3中。
问题:仅当表2的所有列都完全匹配时,下面的代码才有效
问:寻找关于如何触发"Result“列的编码建议/指南,使其仅对于表2中填充的列的每一行都是必需的。在忽略"null”列的情况下,某种类型的List.Contains()是否有效?
表1-原始数据

表2-表1的过滤器

表3-结果

我目前正在使用的代码:
let
Source = Table1,
#"Merged Queries" = Table.NestedJoin(Source,{"Test", "Test2", "Test3", "Test4"},Table2,{"Test", "Test2", "Test3", "Test4"},"Table2",JoinKind.LeftOuter),
#"Expanded Table2" = Table.ExpandTableColumn(#"Merged Queries", "Table2", {"Result"}, {"Result"})
in
#"Expanded Table2"发布于 2020-03-11 02:00:15
我要试一试。但首先,让我说,我认为您的表3实际上不会显示绿色,因为没有匹配。这是我想出来的..。
我是以Table1的身份开始的:

如表2所示执行...and操作:

然后我想出了这个M代码:
let
Source = Table1,
#"Added Index" = Table.AddIndexColumn(Source, "Index", 0),
#"Added Custom" = Table.AddColumn(#"Added Index", "Table1Listed", each Record.ToList(Table1{[Index]})),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Table2Listed", each Record.ToList(Table2{[Index]})),
#"Added Custom2" = Table.AddColumn(#"Added Custom1", "Result", each if List.ContainsAny([Table1Listed],[Table2Listed]) then [Table2Listed]{List.Count([Table2Listed])-1} else null),
#"Removed Other Columns" = Table.SelectColumns(#"Added Custom2",{"Test", "Test2", "Test3", "Test4", "Result"})
in
#"Removed Other Columns"...to得到以下结果:

https://stackoverflow.com/questions/60243048
复制相似问题