如何利用 POWER QUERY 制作简易标签

Power Query Singham ⋅ 于 2018-08-15 23:31:39 ⋅ 最后回复由 了无痕 2018-09-21 16:55:43 ⋅ 2855 阅读

file

本帖已被设为精华帖!
本帖由 Alex 于 5年前 加精
最佳答案
  • 飞天篮球 Talk is cheap, show me your code.
    2018-08-15 23:32:53
    = Table.Combine(List.Transform({0..Number.RoundDown(Table.RowCount(源)/2)},each 
                                   [a=List.Range(Table.ToRows(源),_*2,2),
                                    b=Table.FromRows(List.Transform({0..3},each {a{0}{_}?,null,null,null,a{1}?{_}?}))]
                                   [b] ) )
回复数量: 10
  • 飞天篮球 Talk is cheap, show me your code.
    2018-08-15 23:32:53
    = Table.Combine(List.Transform({0..Number.RoundDown(Table.RowCount(源)/2)},each 
                                   [a=List.Range(Table.ToRows(源),_*2,2),
                                    b=Table.FromRows(List.Transform({0..3},each {a{0}{_}?,null,null,null,a{1}?{_}?}))]
                                   [b] ) )
  • Singham
    2018-09-12 22:53:46

    多谢@飞天篮球 !

  • xiaoni
    2018-09-14 17:33:46

    @飞天篮球 "?"用的好,可是我不知道代表什么意思?能解释一下好吗?

  • 飞天篮球 Talk is cheap, show me your code.
    2018-09-14 20:04:54

    @xiaoni
    "?"的作用是下标越界容错,结果变成null 。
    比如一个list {1,2}只有两个值 ,然后我们进行这样的深化取该list中第三个值时"= {1,2}{2} "会报错,
    因为list中只有两个值,但是容错之后"={1,2}{2}?"结果就是null;
    这个也同样适用于record,比如“= [a=1,b=2][c]?”结果是null。record中没有field "c","?"越界容错;
    你也可以试试table深化,比如,一个空表“= #table({},{})”,深化其第一行“= #table({},{}){0}”,就会出错,
    因为是空表,没有值。但容错之后就是null,"= #table({},{}){0}?"。
    大概就是这个意思。

  • xiaoni
    2018-09-15 09:20:52

    @飞天篮球 谢谢你的解释,我明白了一些,这个和try ……otherwise 有点象

  • d972024
    2018-09-16 17:05:21
    let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 
    更改的类型 = Table.TransformColumnTypes(源,{{"品号", type text}, {"品名", type text}, {"规格", type text}}), 
    自定义1 = List.Split(List.Transform(Table.ToRows(更改的类型),each _&{null,null}),Number.RoundUp(List.Count(Table.ToRows(更改的类型))/2,0)), 
    自定义4 = List.Transform(自定义1,each List.Combine(_)), 
    自定义2 = List.InsertRange(自定义4,1,{{},{},{}}), 
    自定义3 = Table.FromColumns(自定义2) 
    in 
    自定义3
  • d972024
    2018-09-16 17:06:58

    file

  • 轩辕再世
    2018-09-17 11:53:46

    = Table.Combine(List.Transform({0..Number.RoundDown(Table.RowCount(源)/2)},each
    [a=List.Range(Table.ToRows(源),*2,2),
    b=Table.FromRows(List.Transform({0..3},each {a{0}{
    }?,null,null,null,a{1}?{_}?}))]
    [b] ) )

  • 花生就雪碧
    2018-09-17 16:10:53

    file

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