excel 计算ID在Power Query中出现的连续月数

aemubtdh  于 2023-08-08  发布在  其他
关注(0)|答案(2)|浏览(147)

寻找一个解决方案,使用Power Query来查找一个ID在一行中的连续月份数。
这是预期输出,其中列“Times”是所需列:
| 日期、日期|合计|时代| Times |
| --|--|--| ------------ |
| 202301| 0个|一个| 1 |
| 202302|二十个|0个| 0 |
| 202303|二十个|0个| 0 |
| 202304| 0个|一个| 1 |
| 202305| 0个|二个| 2 |
当分组以提取其在数据中出现的总连续次数时:
| 最新会议| Latest Consec |
| --| ------------ |
| 二个| 2 |
以便它只显示最近的连续出现总数。

rsl1atfo

rsl1atfo1#

在powerquery中,您可以尝试在组中按日期排序,并将时间作为最新日期

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Grouped Rows" = Table.Group(Source, {"ID"}, {{"Latest Consec", each Table.Sort(_,{{"Date", Order.Descending}})[Times]{0} , type number }})
in #"Grouped Rows"

字符串


的数据

gab6jxml

gab6jxml2#

Table.AddColumn(
#"Renamed Columns",
"Times",
(r) => if r[Total] = 0
       then 1+List.Count(
                List.LastN(
                    Table.SelectRows(
                        #"Renamed Columns",
                        each [ID] = r[ID] and [Date] < r[Date]
                    )[Total],
                    each _ = 0 
                )
            )
       else 0
),
Table.Group(AddColumn, {"ID"}, {{"Latest Consec", each Table.Sort(_,{{"Date", Order.Descending}})[Times]{0} , type number }})

字符串
解决了这个问题,然后分组给出了最终的预期结果。当total = 0时,Addcolumn给出总次数,当total = 0时查找,并从给定日期开始计数。我遇到的唯一问题是addcolumn在一个小数据集上加载需要一段时间。

相关问题