匹配多个值(逗号分隔)Power BI

Match Multiple Values (Comma Delimited) Power BI

我正在处理这组数据,( articles ID (EID) & authors) 我想将作者或他们的 ID 与每篇 ID 文章进行匹配。

示例:作者 1:文章 1、文章 8 ...

我不知道如何在 M 或 DAX 中执行此操作。 P.S : 我试图拆分作者专栏并取消透视但它没有用。

这些是您想要做的吗?

在powerquery/M中:

右键单击作者 ID 列,按分隔符、分号、每次出现、高级选项拆分列,拆分为行。然后过滤掉空白行并删除多余的列

中间版本:

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(Source, {{"Author(s) ID", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Author(s) ID"),
#"Filtered Rows" = Table.SelectRows(#"Split Column by Delimiter", each ([#"Author(s) ID"] <> "")),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Authors with affiliates"})
in  #"Removed Columns"

或者,正确的版本:

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(Source, {{"Author(s) ID", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Author(s) ID"),
#"Filtered Rows" = Table.SelectRows(#"Split Column by Delimiter", each ([#"Author(s) ID"] <> "")),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Authors with affiliates"}),
#"Grouped Rows" = Table.Group(#"Removed Columns", {"Author(s) ID"}, {{"EIDs", each Text.Combine(List.Transform([EID], Text.From), ","), type text}})
in #"Grouped Rows"

Power query 有很好的工具来完成这个任务。我没有看到在你的数据集中拆分“有附属关系的作者”列的好方法,所以这个答案会给你“作者 ID”和“EID”之间的关系:

  1. 右键单击“作者 ID”列,然后 select 拆分列 > 按分隔符
  2. 将分隔符设置为分号并在“每次出现分隔符”处拆分
  3. 在高级选项中,select拆分成行

这将为每个作者 ID 和 EID 组合创建一行。 “有附属关系的作者”列将具有重复值。