我有两个如下公式:
=GETPIVOTDATA("Sum of Values",'Input Data'!$A$4,"State",Q42,"Route",$S$1,"STAT_COMB",$G$37,"SHA",$G$35)
=GETPIVOTDATA("Sum of Values",'Input Data'!$A$4,"State",Q42,"Route",$S$1,"STAT_COMB",$G$37)
第二个公式的主要区别在于,我不考虑" SHA"参数。要考虑与否取决于另一个单元格值。我可以写一个if条件来相应地选择公式。但问题是我还有另外一种情况:
=GETPIVOTDATA("Sum of Values",'Input Data'!$A$4,"Route",Q42,"STAT_COMB",$G$37)
在这里,我不考虑"州"和" SHA"取决于各个不同单元是否考虑的参数。
类似地,公式中的每个[Field],[Item]对依赖于重新分配不同的单元格以包含它们。
如果条件会使公式变得繁琐,写得太多了。所以,我想知道是否有任何方法动态省略公式中的[Field],[Item]对。
我可以在getpivotdata()中使用INDIRECT,但是INDIRECT只获取一个值,但我需要为每个参数提供一对值。
答案 0 :(得分:1)
这是我能想到的最好的......但它不一定很漂亮......
这里的挑战是你不能(据我所知,没有VBA)动态地改变你在单元格中使用哪个重载的GETPIVOTDATA函数。所以我们需要选择1个功能。在这个例子中,这是我的功能:
=GETPIVOTDATA("Sum of hello",INDIRECT(K2),M1,O1,M2,O2,M3,O3,M4,O4)
我选择了一个指定4个[field,item]对的重载。
现在我像这样设置我的工作表......
你看 - 对于这个例子,我只想使用2 [field,item]对 - 所以我只是复制参数来填充重载函数中的剩余2对。 Excel仍然正确计算GETPIVOTDATA函数,因为我实际上只指定了2个唯一的[field,item]对。
这会让你达到目标吗?