如何在Excel GETPIVOTDATA中使用R1C1的RC2引用获取Power Pivot表数据
问题原因
你使用的'ScorecardData'!RC2属于R1C1引用格式,Excel默认启用A1引用样式,公式默认按A1规则解析,无法识别RC格式的引用,因此触发「应用程序定义或对象定义错误」。
解决方案
方案1:使用INDIRECT函数实现动态引用(推荐,无需修改全局设置)
通过INDIRECT函数的第二参数指定按R1C1规则解析引用文本,不需要调整Excel全局配置,公式在任意行都会自动读取当前行第二列的数值。
修改后的完整公式:
=GETPIVOTDATA("[Measures].[PercentWSubstant]",IU_DDPivots!$A$5,"[Append3_Comp].[CountyOrIU]","[Append3_Comp].[CountyOrIU].&[County]","[Append3_Comp].[MonthApprovd]","[Append3_Comp].[MonthApprovd].&["&MONTH(INDIRECT("'ScorecardData'!RC2",FALSE))&"]")
其中INDIRECT函数的第二参数设为FALSE,即告知Excel将第一参数的文本按R1C1引用规则解析。
方案2:全局启用R1C1引用样式(不推荐)
如果要直接使用RC2写法,可以修改Excel全局设置:
- 点击「文件」→「选项」→「公式」
- 勾选「R1C1引用样式」后确认
此时你原有写法中的MONTH('ScorecardData'!RC2)即可正常识别,但该设置会全局生效,所有工作表的列标会从A/B/C改为1/2/3,所有公式的引用都会默认显示为R1C1格式,不符合多数用户的使用习惯。
验证提示
你可以先在空白单元格单独输入=INDIRECT("RC2",FALSE),确认返回值为当前行第二列的正确内容后,再代入GETPIVOTDATA公式,即可排除引用取值错误的问题。
内容的提问来源于stack exchange,提问作者A.Birdman
相关产品推荐
相关产品推荐

