Excel 的数据透视表 Table 的带日期操作的计算字段始终 return 0
Excel's Pivot Table's Calculated Field with Date operations always return 0
我有个PilotTable总结了很多操作
每个操作都有日期:
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
现在我需要一列 returns 从开始日期到结束日期的期间(天)。
在计算字段公式中使用 =DATEDIF( MIN(DATE), MAX(DATE), "D" )
无效。我猜这是因为最大和最小日期不在同一行。
我无法使用开始日期和结束日期,因为它们是在“总值”字段框中计算的。
我可能在这里遗漏了一些重要的概念。
谢谢
您可以在 Excel 2010+
中可用的 Power Query
(Get & Transform
) 中轻松完成此操作
将光标置于 table,导航至:
Data
=> Get & Transform
=> from Table/Range
- Power Query UI 将打开,并加载数据 table。
- 将日期列的类型从
datetime
更改为 date
- 然后 select
Operation
列和
- 分组依据
- 高级
- 为开始日期和结束日期添加最小值和最大值的聚合
- 使用公式
=Duration.Days([End Date]-[Start Date])
添加自定义列
- 关闭并加载
MCode
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"
我有个PilotTable总结了很多操作
每个操作都有日期:
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
现在我需要一列 returns 从开始日期到结束日期的期间(天)。
在计算字段公式中使用 =DATEDIF( MIN(DATE), MAX(DATE), "D" )
无效。我猜这是因为最大和最小日期不在同一行。
我无法使用开始日期和结束日期,因为它们是在“总值”字段框中计算的。
我可能在这里遗漏了一些重要的概念。 谢谢
您可以在 Excel 2010+
中可用的Power Query
(Get & Transform
) 中轻松完成此操作
将光标置于 table,导航至:
Data
=>Get & Transform
=>from Table/Range
- Power Query UI 将打开,并加载数据 table。
- 将日期列的类型从
datetime
更改为date
- 然后 select
Operation
列和- 分组依据
- 高级
- 为开始日期和结束日期添加最小值和最大值的聚合
- 分组依据
- 使用公式
=Duration.Days([End Date]-[Start Date])
添加自定义列
- 关闭并加载
MCode
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"