Excel 动态GETPIVOTDATA公式,每列使用不同的日期范围求和

Excel 动态GETPIVOTDATA公式,每列使用不同的日期范围求和,excel,excel-formula,Excel,Excel Formula,下面是一个透视表示例,其中国家列为我的列,日期行为我的行。此轴的数据基于A1:C13。此模型的用户可以调整单元格F1:G3。他们可以更改国家/地区和/或日期范围 我需要的是一个单一公式来输出他们选择的总数。由于我的实际数据集包含许多国家,仅编写嵌套的IF语句是不够的。数据集还需要位于数据透视表中-因此需要GETPIVOTDATA 我用这个公式得到了一半的结果: =SUM(GETPIVOTDATA("Sum of Value",$A$15,"Date",RO

下面是一个透视表示例,其中国家列为我的列,日期行为我的行。此轴的数据基于A1:C13。此模型的用户可以调整单元格F1:G3。他们可以更改国家/地区和/或日期范围

我需要的是一个单一公式来输出他们选择的总数。由于我的实际数据集包含许多国家,仅编写嵌套的IF语句是不够的。数据集还需要位于数据透视表中-因此需要GETPIVOTDATA

我用这个公式得到了一半的结果:

=SUM(GETPIVOTDATA("Sum of Value",$A$15,"Date",ROW(INDIRECT(F2&":"&F3)),"Country",F1:G1))
这里的问题是,对于每个国家不同的日期选择,这个公式不是动态的

有人能帮忙吗


您需要为每个国家/地区分别设置一个
GETPIVOTDATA

=SUM(GETPIVOTDATA("Sum of Value",$A$15,"Date",ROW(INDIRECT(F2&":"&F3)),"Country",F1),GETPIVOTDATA("Sum of Value",$A$15,"Date",ROW(INDIRECT(G2&":"&G3)),"Country",G1))

您需要为每个国家/地区分别设置一个
GETPIVOTDATA

=SUM(GETPIVOTDATA("Sum of Value",$A$15,"Date",ROW(INDIRECT(F2&":"&F3)),"Country",F1),GETPIVOTDATA("Sum of Value",$A$15,"Date",ROW(INDIRECT(G2&":"&G3)),"Country",G1))

@basic提供的答案与原始问题的答案最接近,即使用GETPIVOTDATA计算出每个给定参数的总数

如果可以在原始数据表(范围A1:C13)上进行计算,那么这里有另一个计算总数的解决方案

=SUMPRODUCT((A2:A13=F1:G1)*(B2:B13>=F2:G2)*(B2:B13<=F3:G3)*(C2:C13))

=SUMPRODUCT((A2:A13=F1:G1)*(B2:B13>=F2:G2)*(B2:B13=F2:G2)*)(列出日期@basic提供的答案与原始问题最接近,即使用GETPIVOTDATA计算出每个给定参数的总数

如果可以在原始数据表(范围A1:C13)上进行计算,那么这里有另一个计算总数的解决方案

=SUMPRODUCT((A2:A13=F1:G1)*(B2:B13>=F2:G2)*(B2:B13<=F3:G3)*(C2:C13))

=SUMPRODUCT((A2:A13=F1:G1)*(B2:B13>=F2:G2)*(B2:B13=F2:G2)*)(列出日期谢谢你的回复。但是有没有办法不把它分开就这样做呢?我的实际数据中有20多个国家。试着不写“怪物”公式:)这让我更接近了一点,但理想情况下,我会将所有的日期组件组合在一起,而不是针对每个输入单独的行/间接项。
=SUMPRODUCT(IFERROR(GETPIVOTDATA(“值之和”),$a$15,“日期”,选择({1,2},行(间接(F2&“:”&F3)),行(间接(G28&“:”&G3)),“国家”,F1:G1),0))
谢谢你的回复。但是有没有办法不把它分开呢?我的实际数据中有20多个国家。尽量不要写“怪物”公式:)这让我更接近了,但理想的情况是,我会将所有的日期组件组合在一起,而不是为每个输入单独的行/间接项。
=SUMPRODUCT(iError(GETPIVOTDATA(“值之和,$A$15,“日期”),CHOOSE({1,2}),ROW(INDIRECT(F2&“:”&F3)),ROW(INDIRECT(G28&“:”&G3)),“Country”,F1:G1),0))
Hi Chris,请问您为什么不能从原始数据表(A1:C13)进行计算但是选择在数据透视表上进行计算?例如,两个简单的SUMIFS公式可以通过在原始数据表上进行计算轻松计算出所需的总数。此外,您是否考虑过使用功率查询来生成所需的输出?功率查询的不足之处在于用户需要手动刷新数据透视表每次参数更改时的数据(除非您使用VBA进行自动刷新,但marco工作簿无法在实体内轻松共享)。嗨,Chris,请问您为什么不能从原始数据表(A1:C13)进行计算但是选择在数据透视表上进行计算?例如,两个简单的SUMIFS公式可以通过在原始数据表上进行计算轻松计算出所需的总数。此外,您是否考虑过使用功率查询来生成所需的输出?功率查询的不足之处在于用户需要手动刷新数据透视表每次参数更改时的数据(除非您使用VBA进行自动刷新,但marco工作簿无法在实体内轻松共享)。谢谢@Terry W。您提出了一个非常好的观点。有时很难通过树看到森林…我想我被困在GETPIVOT()上了函数,并想知道它有什么可能。将重新调整我的方法,并按照您的建议,使用SUMPRODUCT()返回我的原始数据源。@Chris乐于帮助:)我眼中的Excel是一个开放的世界或沙箱。充满乐趣:)谢谢@Terry W。你提出了一个非常好的观点。有时很难通过树看到森林……我想我被GETPIVOT()函数卡住了,想知道它有什么可能。我将重新调整我的方法,并按照你的建议,使用SUMPRODUCT()返回我的原始数据源。@Chris乐于帮助:)在我看来,卓越是一个开放的世界或一个沙箱。充满乐趣:)