【问题标题】:Populate conditional column depending on column name criteria根据列名条件填充条件列
【发布时间】:2018-11-01 20:53:58
【问题描述】:

我收到一份每周报告,其中包含一些重复的列。这是因为它是从一组提出类似问题的网络表单中提取的——假设他们都问“你想加入我们的电子邮件列表吗?”——但这个问题存储在源系统作为每个表单的单独字段(每个表单实际上是一个单独的表)。列将始终被一致命名 - 例如“Email_optin_1”、“Email_optin_2” - 所以我可以想出一些规则来识别询问电子邮件问题的列。但是,每周的列数可能会有所不同 - 一周报告可能只包含“Email_optin_2”,下周可能包含四个这样的列。 (这取决于那周使用了哪些网络表单)。所有这些列中的可能值都相同 - 比如说“Yes”和“No”。

每一行通常应该只填充“Email_optin”列之一。

我想做的是在 Power Query 中创建一个名为“Email_Optin_FINAL”的列,如果任何以“Email_optin”开头的列包含“Yes”的值,它将返回“Yes”。

因此,基本上,我希望它首先确定需要查看哪些列,而不是简单地引用特定列中的值的标准,然后然后查看这些列中的值。

这在 PowerQuery 中可行吗?

提前感谢您的任何建议!

【问题讨论】:

  • 是的,这应该是可能的。解决方案的关键概念可能是取消对每周报告的透视。你能举一个这样的每周报告的例子和一个最终结果应该是什么样子的样本吗?

标签: powerquery m


【解决方案1】:

这将找到所有包含 Email_optin 的列并将它们合并到一个新列中并删除原始列

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
EmailList= List.Select(Table.ColumnNames(Source), each Text.Contains(_, "Email_optin")),
#"Merged Columns" = Table.CombineColumns(Source,EmailList,Combiner.CombineTextByDelimiter("", QuoteStyle.None),"Merged")
in #"Merged Columns"

这将找到所有包含 Email_optin 的列并将它们合并到一个新列中并保留原始列

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
Index= Table.AddIndexColumn(Source, "Index", 0, 1),
EmailList= List.Select(Table.ColumnNames(Index), each Text.Contains(_, "Email_optin")),   
Merged = Table.CombineColumns(Index,EmailList,Combiner.CombineTextByDelimiter("", QuoteStyle.None),"Merged"),
#"Merged Queries" = Table.NestedJoin(Index,{"Index"},Merged,{"Index"},"Merged",JoinKind.LeftOuter),
#"Expanded Table2" = Table.ExpandTableColumn(#"Merged Queries", "Merged", {"Merged"}, {"Merged"}),
#"Removed Columns" = Table.RemoveColumns(#"Expanded Table2",{"Index"})
in  #"Removed Columns"

如果需要,您可以在合并的答案中过滤“是”

【讨论】:

  • 非常感谢 - 我需要在下周进行测试,然后告诉你它是如何工作的!
  • 是的!工作就像一个绝对的梦想。抱歉,我花了这么长时间才回复 - 几周前我确实测试过了,显然做错了,因为我不断收到错误消息,但我今天又试了一次,它是完美的。这将节省我很多时间!非常感谢。
  • 我以为我做到了?我已将其勾选为正确并单击了“向上”按钮。还有什么需要做的吗?
猜你喜欢
  • 1970-01-01
  • 2019-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-28
  • 1970-01-01
  • 2021-07-25
  • 2022-11-17
相关资源
最近更新 更多