凭什么转置两次带来了查询效率的飞速提升?

Power Query 畅心 ⋅ 于 2020-06-10 09:51:20 ⋅ 2046 阅读

篮球老昨晚发了一个案例给我,说把源表连续转置两次可以将以前我们做过的凭证级别串联的效率大幅提升:
假设数据源一万行左右如下:
file
最终效果:
file
因为我是复制的数据源记录扩展为万行,所以结果看上去层级别很多重复,不影响测试。
比较以下两种方式:

let
    源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
    生成层级 = Table.AddColumn(源,"层",(x)=>Text.Combine(Table.SelectRows(源,(y)=>Text.StartsWith(x[编码],y[编码]))[名称],","))
in
    生成层级
let
    源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
    转置两次= Table.Transpose(Table.Transpose(源)),
    输出= Table.AddColumn(转置两次,"层",(x)=>Text.Combine(Table.SelectRows(转置两次,(y)=>Text.StartsWith(x[Column1],y[Column1]))[Column2],","))
in
    输出

大家还可以对比以前的一个类似优化案例:https://pbihub.cn/blog/46
file

道高一尺 魔高一丈
https://pbihub.cn/users/44
M与DAX的恩怨纠葛

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