Power Query 根据另一个列值从 B 列的列表中提取值

Powerquery extract values from list in column B based on another columnA value

我有两列 A 和 B

A 是普通列。假设它可能有以下任何一种颜色:黑色、白色、橙色 B 每条B 记录都包含一个列表。假设是“白衬衫”、“白裤子”、“橙色 T 恤”

我试图在 B 列中获取与 A 列中的颜色相关的项目。

如果 A = 白色,那么我要在一个单元格中显示“白衬衫”和“白裤子”。

如果我硬编码“白色”,它可以工作,但我不能将 [A] 传递给 Text.Contains(或者我不知道如何)

= Table.TransformColumns(#"Added Custom", {"B", each Text.Combine(List.Transform(List.Select(_,each Text.Contains(_,"white")), Text.From), "#(lf)"), type text})

谢谢任何帮助。

诀窍是在开始使用第二列中的列表之前将第一列的值设置为一个变量

以你的例子为例

= Table.TransformColumns(#"Added Custom", {"B", each let search = [ColumnA] in Text.Combine(List.Transform(List.Select(_,each Text.Contains(_,search)), Text.From), "#(lf)"), type text})

但在更一般的例子中:

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type text}}),
#"Added Custom" =  Table.AddColumn(#"Changed Type", "Custom", each 
    let search = [Column1] in 
    Text.Combine(
        List.Select(
            Text.Split([Column2],","),
            each Text.Contains(_,search)
        )
    ," ,")
)
in  #"Added Custom"