微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Excel 的数据透视表的计算字段与日期操作总是返回 0

如何解决Excel 的数据透视表的计算字段与日期操作总是返回 0

我有一个试点表,总结了很多操作。

每个操作都有日期:

Data       | Operation | Result
-----------|-----------|-------
01/09/2020 | A         | 3
05/10/2020 | B         | 4
07/11/2020 | C         | 5
13/11/2020 | B         | 3
20/11/2020 | B         | 8
01/12/2020 | C         | 3
01/12/2020 | A         | 9

所以我有一列有开始日期 [MIN(Date)] 和结束日期 [Max(Date)]:

Operation | Start Date | End Date 
----------|------------|------------
 A        | 01/09/2020 | 01/12/2020
 B        | 05/10/2020 | 20/11/2020
 C        | 07/11/2020 | 01/12/2020

现在我需要一个列来返回从开始日期到结束日期的时间段(天)。

在计算字段公式中使用 =DATEDIF( MIN(DATE),MAX(DATE),"D" ) 不起作用。我猜这是因为 Max 和 Min 日期不在同一行。

我无法使用在“总和值”字段框中计算的开始日期和结束日期。

我可能在这里遗漏了一些重要的概念。 谢谢

解决方法

您可以在 Excel 2010+ 中提供的 Power Query (Get & Transform) 中轻松完成此操作

将光标置于表格中,导航至:

  • Data=> Get & Transform => from Table/Range
  • Power Query UI 将打开,并加载数据表。
  • 将日期列的类型从 datetime 更改为 date
  • 然后选择 Operation 列并
    • 分组依据
      • 高级
      • 为开始和结束日期添加最小值和最大值的聚合

enter image description here

  • 使用公式 =Duration.Days([End Date]-[Start Date])
  • 添加自定义列

enter image description here

  • 关闭并加载

M代码

et
    Source = Excel.CurrentWorkbook(){[Name="Table3"]}[Content],#"Changed Type" = Table.TransformColumnTypes(Source,{{"Date",type date},{" Operation ",type text},{" Result",Int64.Type}}),#"Grouped Rows" = Table.Group(#"Changed Type",{" Operation "},{{"Start Date",each List.Min([Date]),type nullable date},{"End Date",each List.Max([Date]),type nullable date}}),#"Added Custom" = Table.AddColumn(#"Grouped Rows","Duration",each Duration.Days([End Date]-[Start Date]))
in
    #"Added Custom"

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。