连续时间分组问题

Power Query 土豆先森 ⋅ 于 2020-03-24 12:09:05 ⋅ 最后回复由 超人Clark 2020-10-05 09:38:29 ⋅ 2291 阅读

如下图所示。如何将左侧的时间按连续与非连续进行分组。M怎么写,思路是怎么样的。各位大佬不吝赐教。
file

文件已上传到网盘
链接:https://pan.baidu.com/s/1KzlFZKM2ZL_NHMPR5Gncqg
提取码:4l5y

Excel和PowerBI聚焦:小必

成为第一个点赞的人吧 :bowtie:
回复数量: 8
  • deadzlq 无我,亦无期
    2020-03-24 13:12:30

    file

  • 土豆先森 Excelfocus
    2020-03-24 18:00:01
    let
        源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
        类型 = Table.TransformColumnTypes(源,{"停机日期", type date}),
        分组 = Table.Group(类型,
                          {"车队","自编号"},
                          {
                              "m",
                              each
                              Table.Group(
                                          Table.SelectColumns(
                                                              [
                                                                  a=Table.AddIndexColumn(_,"index",0,1),
                                                                  b=Table.AddColumn(a,"n",each _[停机日期]-#duration(_[index],0,0,0))
                                                              ]
                                                                [b],
                                                              {"停机日期","n"}),
                                          "n",
                                          {
                                              "s",
                                              (x)=>
                                                    [
                                                        开始停机时间=List.Min(x[停机日期]),
                                                        结束停机时间=List.Max(x[停机日期])
                                                    ]     
                                          } 
                                          )
                                            [s]             
                          }
                           ),
        展开list = Table.ExpandListColumn(分组, "m"),
        展开Record = Table.ExpandRecordColumn(展开list, "m", {"开始停机时间", "结束停机时间"})
    in
        展开Record
  • 土豆先森 Excelfocus
    2020-03-24 18:01:51

    自己卡在那个索引那里了,感谢1楼的点拨,这个点子实在不错~

  • klzb
    2020-03-24 18:33:34

    Table.ExpandTableColumn(Table.Group(源,{"车队","自编号"},{"a",each Table.Group(_,"停机日期",{"结束停机日期",each List.Last([停机日期])},0,(x,y)=>Number.From(x-#duration(List.PositionOf([停机日期],x),0,0,0)<>y-#duration(List.PositionOf([停机日期],y),0,0,0)))}),"a",{"停机日期","结束停机日期"},{"开始停机日期","结束停机日期"})

  • libo5563
    2020-10-04 12:58:46

    file

  • 超人Clark 超人在线
    2020-10-04 13:19:12

    file

  • 超人Clark 超人在线
    2020-10-05 07:51:23

    改成record应该也行,有空试试:
    file

  • 超人Clark 超人在线
    2020-10-05 09:38:29

    改成Record:

    file

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