飞天篮球

边齐
第 3 位会员
注册于 2018-08-08 14:57:03
活跃于 2020-04-01 16:24:24


  • 城市
  • PQ 凑数问题 at 2020-11-16 16:56:32

    问题1:784个结果
    问题2:444793个结果

  • List.Generate 使用中的一个问题 at 2020-08-26 21:47:05

    越界容错,所有用{a}深化的地方改成{a}?

  • 合并查询中 “其他” 情况应该怎样处理? at 2020-01-20 22:42:08

    fyi... 以下List.ReplaceRange中常量3的意思是在奖金这个列表中,“其它”之前插入一个值:

    = Table.FromRecords( 
                        List.Transform( Table.ToRecords(姓名),
                                        (x)=> List.Mode(
                                                        List.ReplaceRange(Table.ToRecords(奖金),3,0,{x}),
                                                         each [姓名] ) &x ) 
                        )

    file

  • 如何把列表中的元素对应加入另一个列表中? at 2020-01-19 19:47:17

    fyi...结果1,结果2都可以。结果1容易点,zip一下,一一对应。

    = let a = {{"a","b","c"},{"d","e","f"},{"h","i","j"}}, 
          b = {"w","x","y"},
    
          结果1 = List.Transform(List.Zip({a,b}),each _{0}&{_{1}}),
    
          结果2 = List.Accumulate( {0..2},
                                    a,
                                   (s,c)=>List.ReplaceRange(s,c,1,{s{c}&{b{c}}}))  
      in 
          结果1
  • power bi 如何实现两张表之间的计算建模? at 2020-01-11 08:44:20

    @王德福 源文件删掉了。。。你把自己的表一个个导入pq编辑器,再试试吧。

  • power bi 如何实现两张表之间的计算建模? at 2020-01-10 19:07:22

    不知道有没有理解错题意...仅供参考

    题目中的左表是表1,右表是表2

    = 表2 &
      Table.FromList( Table.ToRows(表1),
                      (x)=>{x{0},"剩余",x{1}-List.Sum(Table.SelectRows(表2,each [日期]=x{0})[消费金额])},
                      Table.ColumnNames(表2) )

    file

  • 工作需要,想用 power query 作一个 现金日记账,但始终实现不了,请大神帮忙 at 2020-01-06 22:10:35

    左表变成右表

    file

  • 工作需要,想用 power query 作一个 现金日记账,但始终实现不了,请大神帮忙 at 2020-01-06 22:04:13

    试试List.Generate,加载20万行还是很快的

    let
        源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
    
        gen = let lst = List.Buffer(Table.ToRows(源)), 
                    n = List.Count(lst)
    
               in List.Generate( ()=>{{},"",0,0,0,0}, //{结果list,月份比较值,累计值,借方合计,贷方合计,索引}
                                 each _{5}<=n,
                                 each let l = lst{_{5}}?,
                                          c = if l=null then {} else l,
                                          m = Date.Month(c{0}?), 
                                          s = _{2}+List.Sum({c{2}?,c{3}?*-1}) 
    
                                       in if m=_{1} then { {c&{s}},m,s,List.Sum({_{3},c{2}?}),List.Sum({_{4},c{3}?}),_{5}+1}
                                          else {{{"","本月合计",_{3},_{4},_{2}},c&{s}},m,s,c{2}?,c{3}?,_{5}+1},
                                 each _{0} ),
    
        rlt = #table(Table.ColumnNames(源)&{"余额"}, List.Skip(List.Combine(gen)))
    in
        rlt
  • 筛选表的几种方法效率比较 at 2020-01-01 20:51:27

    @阿森纳里

    其实用这一步,Table.Combine(List.Repeat({Table.Buffer(源)},100000))扩充数据量不好 。Table.Combine是很耗资源的。我觉得比较妥当的还是数据源有100万行,测试会准确一些,不要在步骤里去构建。Table.SelectRows+List.Contains不慢的,150万行还是能胜任的。常量枚举,在筛选条件少的时候枚举一下也行。fyi!

  • PQ 问题,求解答 at 2019-11-21 11:27:45

    @焦棚子
    这样的话,前面都不变,group里边多写一步排序,比如:
    .........Table.Group(源,"销售经理",{"达标日期",each [a=Table.Sort(_,"销售日期"),b=fx(a,a[销售金额],1)[销售日期]?][b]},1)
    看看行不行?

  • PQ 问题,求解答 at 2019-11-21 10:29:12

    fyi

    = let fx=(x,y,z)=>if List.Sum(y)<10 then [] else 
                      if List.Sum(List.FirstN(y,z))>=10 then x{z-1}
                      else @fx(x,y,z+1) 
       in Table.Group(源,"销售经理",{"达标日期",each fx(_,[销售金额],1)[销售日期]?},1)

    file

  • 计数问题,请高手解答一下 at 2019-10-30 21:53:15
    let
        源 = Excel.CurrentWorkbook(){[Name="demo"]}[Content],
    
        acc = List.Accumulate( Table.ToRecords(源),
                               {{},"",0},
                               (s,c)=>if c[条件]="T13" then 
                                                           if s{1}="T13" then 
                                                           {s{0}&{c&[结果=s{2}]},c[条件],1} 
                                                           else {s{0}&{c&[结果=null]},c[条件],1} 
                                      else {s{0}&{c&[结果=null]},s{1},s{2}+1} ),
    
        rlt = Table.FromRecords(acc{0})
    in
        rlt
  • 计数问题,请高手解答一下 at 2019-10-30 21:50:55

    fyi...

    = let a = Table.PositionOf(源,[条件="T13"],2,each [条件]),
          b = List.Zip({a,{null}&a}),
          c = List.TransformMany( b,
                                  each if _{0}=null then {} else 
                                       if _{1}=null then List.Repeat({null},_{0})&{0} else 
                                       List.Repeat({null},_{0}-_{1}-1)&{_{0}-_{1}},
                                  (x,y)=>y )
      in Table.FromColumns( Table.ToColumns(源)&{c}, Table.ColumnNames(源)&{"结果"} )
  • 两个查询表之间 条件列 判断 是否包含第二个表 列文本 ? at 2019-03-05 11:28:17

    @秋风一达
    把最终结果手动模拟一个出来,就拿第一行为例。有什么特殊情况也一并模拟。

  • 两个查询表之间 条件列 判断 是否包含第二个表 列文本 ? at 2019-03-05 10:05:38

    是这样吗?

    = Table.AddColumn(更改的类型, "自定义", each List.Select(List.RemoveNulls(List.Distinct(词分类[修饰词])),(x)=>Text.Contains([宝贝标题],x)))

    file