You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Query中保留CCA3关联,将年份列转为时间序列的方法

解决方法:Power Query逆透视年份列(保留CCA3关联)

步骤1:在Power Query中处理人口表

  • 打开Power Query编辑器,加载包含年份列的人口表
  • 选中CCA3列,右键选择「逆透视其他列」
    • 这一步会自动把所有年份列转为两行:「属性」(年份)和「值」(对应年份的人口),同时完整保留CCA3列
    • 操作后表结构变为:CCA3 | 属性 | 值
  • 重命名列:把「属性」改成「年份」,「值」改成「人口」

步骤2:调整数据类型

  • 将「年份」列的数据类型改为整数或日期,确保时间轴排序正常
  • 将「人口」列改为数值类型,避免后续可视化时出现计算错误

步骤3:维持表关联

处理后的人口表依然保留CCA3列,直接和另外两个表的CCA3列维持原有关联关系即可,不会出现关联断裂的问题

可视化制作

回到Power BI报表视图:

  • 拖入「年份」到X轴,「人口」到Y轴,从关联表中拖入「国家名称」到图例
  • 选择折线图或面积图,就能直接展示不同国家人口随时间的演变趋势

针对M代码的调整示例

如果你的原始M代码类似如下:

let
    Source = Excel.Workbook(File.Contents("你的数据源路径"), null, true),
    Population_Sheet = Source{[Item="Population",Kind="Sheet"]}[Data],
    #"Promoted Headers" = Table.PromoteHeaders(Population_Sheet, [PromoteAllScalars=true])
in
    #"Promoted Headers"

可以在末尾添加逆透视和类型转换步骤:

let
    Source = Excel.Workbook(File.Contents("你的数据源路径"), null, true),
    Population_Sheet = Source{[Item="Population",Kind="Sheet"]}[Data],
    #"Promoted Headers" = Table.PromoteHeaders(Population_Sheet, [PromoteAllScalars=true]),
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Promoted Headers", {"CCA3"}, "年份", "人口"),
    #"Changed Type" = Table.TransformColumnTypes(#"Unpivoted Other Columns",{{"年份", Int64.Type}, {"人口", Int64.Type}})
in
    #"Changed Type"

内容的提问来源于stack exchange,提问作者Benjamin BERNARD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 11:46:08