首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PowerQuery合并列

PowerQuery合并列
EN

Stack Overflow用户
提问于 2020-02-16 04:56:21
回答 1查看 95关注 0票数 2

我有两张桌子。表1和表2。

表1=原始数据表2=应用于表1的条件过滤器

目标:表2中的每一行都将有一个或多个列数据。如果表1中的同一列包含筛选项,则"Result“列的措辞将填充到新的表3中。

问题:仅当表2的所有列都完全匹配时,下面的代码才有效

问:寻找关于如何触发"Result“列的编码建议/指南,使其仅对于表2中填充的列的每一行都是必需的。在忽略"null”列的情况下,某种类型的List.Contains()是否有效?

表1-原始数据

表2-表1的过滤器

表3-结果

我目前正在使用的代码:

代码语言:javascript
复制
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"
EN

回答 1

Stack Overflow用户

发布于 2020-03-11 02:00:15

我要试一试。但首先,让我说,我认为您的表3实际上不会显示绿色,因为没有匹配。这是我想出来的..。

我是以Table1的身份开始的:

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

然后我想出了这个M代码:

代码语言:javascript
复制
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得到以下结果:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60243048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档