You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Power Query跨两列统计出现次数并构建年度维度汇总报表的技术咨询

Power Query实现跨列统计并生成名称-年份汇总表

Hey James,我明白你的需求了——要把原始数据里Primary和Secondary两列的内容合并统计出现次数,最后生成一张以名称为X轴、年份为列的汇总表对吧?别发愁,咱们用Power Query就能搞定,我给你把思路和完整代码都整理好了:

核心思路

其实核心就是把分散在两列的待统计内容先合并到同一列,这样就能统一计数,再通过分组和透视得到你要的结构:

  • 先把Primary、Secondary列转成行,合并成单一的"统计项"列
  • 过滤掉空值,避免无效统计
  • 按年份和统计项分组,计算每个组合的出现次数
  • 最后透视年份列,生成目标汇总表

完整实现代码

直接把这段代码替换你现有Power Query的内容就行:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WcitKzEtOVdJRMjIwMtA3MgSy3FPzi9JBQm6Z+XmJSrE60UrBBYmZeSiKIHI6SmDpUG8UOY/EoqJKkJqi1BSwPLIlhvpGRjA5mFI0K6BKYMagWIGqHepUdDuMUN2Bbr4Rmj9RLMCUjAUA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Country = _t, Year = _t, Primary = _t, Secondary = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Country", type text}, {"Year", type text}, {"Primary", type text}, {"Secondary", type text}}),
    // 步骤1:将Primary和Secondary列转成行,合并为"统计项"列
    #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"Country", "Year"}, "Category", "统计项"),
    // 步骤2:过滤掉空的统计项
    #"Filtered Rows" = Table.SelectRows(#"Unpivoted Columns", each ([统计项] <> null and [统计项] <> "")),
    // 步骤3:按Year和统计项分组,计算出现次数
    #"Grouped Rows" = Table.Group(#"Filtered Rows", {"Year", "统计项"}, {{"出现次数", each Table.RowCount(_), Int64.Type}}),
    // 步骤4:透视年份列,生成汇总表
    #"Pivoted Column" = Table.Pivot(#"Grouped Rows", List.Distinct(#"Grouped Rows"[Year]), "Year", "出现次数", List.Sum)
in
    #"Pivoted Column"

关键步骤解释

  • UnpivotOtherColumns:这一步是把除了Country、Year之外的列(也就是Primary和Secondary)转成两行,每一行对应一个统计项,这样所有要统计的内容都在"统计项"列里了,方便后续统一计数。
  • Filtered Rows:如果你的原始数据里有空值,这一步能过滤掉,避免统计到无效的空内容。
  • Grouped Rows:按年份和统计项分组,用Table.RowCount计算每个组合的出现次数,也就是Primary+Secondary里该内容的总次数。
  • Pivoted Column:把年份列转成表头,统计项作为行,出现次数作为单元格值,完美生成你要的汇总表结构。

如果还有细节需要调整,比如要不要保留Country列,或者空值处理的逻辑,随时改对应的步骤就行!

内容的提问来源于stack exchange,提问作者James Lamb

火山引擎 最新活动