求 Power Query 转换步骤

Power Query choicechoi ⋅ 于 2018-11-29 18:24:59 ⋅ 最后回复由 飞天篮球 2018-11-30 08:49:18 ⋅ 2700 阅读

有图1 的数据

file

如何转成图2 的格式?

file

成为第一个点赞的人吧 :bowtie:
最佳答案
  • 飞天篮球 Talk is cheap, show me your code.
    2018-11-29 21:17:47

    fyi..没有文件,凭空想的,看看是不是你要的结果。窗口操作就可以完成。

    let
        源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
    
        //选中红黄绿标记的3列,点击“逆透视”--“仅逆透视选中列”
        逆透视 = Table.Unpivot(源, {"红灯标记", "黄灯标记", "绿灯标记"}, "属性", "值"),    
    
       //选中“计数”和“值”这两列,点击“合并列”,然后修改编辑栏的公式变成以下
        合并列 = Table.CombineColumns(逆透视, {"计数", "值"},each List.Product(_),"已合并"),
    
       //选中"分公司_1"这一列,点击“透视列”,对话框中“值列”选“已合并”,高级选项中聚合函数选“求和”
        透视列 = Table.Pivot(合并列, List.Distinct(合并列[分公司_1]), "分公司_1", "已合并", List.Sum)
    in
        透视列
回复数量: 5
  • 飞天篮球 Talk is cheap, show me your code.
    2018-11-29 21:17:47

    fyi..没有文件,凭空想的,看看是不是你要的结果。窗口操作就可以完成。

    let
        源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
    
        //选中红黄绿标记的3列,点击“逆透视”--“仅逆透视选中列”
        逆透视 = Table.Unpivot(源, {"红灯标记", "黄灯标记", "绿灯标记"}, "属性", "值"),    
    
       //选中“计数”和“值”这两列,点击“合并列”,然后修改编辑栏的公式变成以下
        合并列 = Table.CombineColumns(逆透视, {"计数", "值"},each List.Product(_),"已合并"),
    
       //选中"分公司_1"这一列,点击“透视列”,对话框中“值列”选“已合并”,高级选项中聚合函数选“求和”
        透视列 = Table.Pivot(合并列, List.Distinct(合并列[分公司_1]), "分公司_1", "已合并", List.Sum)
    in
        透视列
  • choicechoi 想成为一名数据分析师,可只懂皮毛
    2018-11-29 21:58:48

    谢谢大神,是想要的

  • 飞天篮球 Talk is cheap, show me your code.
    2018-11-29 22:47:55

    补充两点,供参考:

    1、上述”合并列“这一步中的each List.Product(_)可以简化写成List.Product

    2、上述”逆透视“和”合并列“这两步可以用以下步骤代替,不过削微长了一点,没有Unpivot来的直接。

    变 = Table.FromRecords(
                           List.TransformMany( {"红灯标记","黄灯标记","绿灯标记"},
                                               (a)=>Table.TransformRows( 源, 
                                                                        each [ 业务类型=[业务类型],
                                                                               分公司_1=[分公司_1],
                                                                               标记=a,
                                                                               值=Record.Field(_,a)*[计数] ] ),
                                               (x,y)=>y )
                         )
    
  • choicechoi 想成为一名数据分析师,可只懂皮毛
    2018-11-29 22:58:33

    请问这些思路是从哪里出来的呢? 我在界面上面折腾根本想不出这些方法

  • 飞天篮球 Talk is cheap, show me your code.
    2018-11-30 08:49:18

    @choicechoi 多练练。学点M,施阳的微博,曾、朱老师的课,畅神的M群,都是极好的。

暂无评论~~
  • 请务必阅读并严格遵守《社区管理规范与使用说明》
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 发送表情,可用的 Emoji 见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板粘贴上传, 格式限制 - jpg, png, gif
  • 不支持上传附件,请尽可能用文字和图片将问题描述清楚,如实在需要上传附件,可上传到 共享网盘 后分享链接
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
Ctrl+Enter