根据日期范围创建每日计数

时间:2020-05-07 11:24:50

标签: excel powerbi powerbi-desktop

假设我具有以下数据集

Case ID |  Dates Start Date [1]  |   Dates End Date [1]  |
002   | 2020-03-10T00:00:00.000Z  | 2020-03-13T00:00:00.000Z | 
008   | 2020-03-12T00:00:00.000Z  | 2020-03-20T00:00:00.000Z | 
322   | 2020-04-20T00:00:00.000Z  | 2020-04-25T00:00:00.000Z |

IMP:日期格式如下:2020-04-11T00:00:00.000Z

我需要创建该特定日期范围内该位置的个人的每日计数。我可以选择在PowerBI Desktop或Excel中解决此问题。例如,通过这种计算(使用上面的数据集),我希望每天都有这样的计数:

10/03/20 - 1
11/03/20 - 1
12/03/20 - 2
13/03/20 - 2
14/03/20 - 1

我尝试了以下解决方案,但是在我的情况下它不起作用: Count columns based on date range

将感谢您的见识!预先感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用Power Query轻松地做到这一点。我不熟悉PowerBI,但可能与此类似。

  • 将第1列的类型设置为“文本”,将“日期”列设置为“整数”
  • 添加一个自定义列,以创建一个以开始日期和结束日期为边界的列表
  • 删除原始开始日期和结束日期列
  • 将列表扩展到新行
  • 将数据类型更改为日期
  • 以日期行为汇总对日期进行分组。

M代码

let
    Source = Excel.CurrentWorkbook(){[Name="Table3"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Case ID", type text}, {"Start Date", Int64.Type}, {"End Date", Int64.Type}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Dates", each {[Start Date]..[End Date]}),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Start Date", "End Date"}),
    #"Expanded Dates" = Table.ExpandListColumn(#"Removed Columns", "Dates"),
    #"Changed Type1" = Table.TransformColumnTypes(#"Expanded Dates",{{"Dates", type date}}),
    #"Grouped Rows" = Table.Group(#"Changed Type1", {"Dates"}, {{"Count", each Table.RowCount(_), type number}})
in
    #"Grouped Rows"

enter image description here