Excel 将CUBEVALUE函数重命名为更短的函数?

Excel 将CUBEVALUE函数重命名为更短的函数?,excel,rename,powerpivot,udf,Excel,Rename,Powerpivot,Udf,我一直在使用一个相当长的嵌入式CUBEVALUE()函数,这是一个很难处理的问题。它看起来像: =IFERROR(VALUE(CUBEVALUE(arg1;arg2;arg3));CUBEVALUE(arg1;arg2;arg3)) 由于CUBEVALUE函数及其参数,它正在成为一个非常长的函数,因此不容易使用。因为只有3个参数,它们写在不同的单元格中,所以我想创建如下内容 =MyFunction(A1,A2,A3) 并在前面提到的函数中使用A1、A2和A3作为“arg1、arg2、arg3

我一直在使用一个相当长的嵌入式CUBEVALUE()函数,这是一个很难处理的问题。它看起来像:

=IFERROR(VALUE(CUBEVALUE(arg1;arg2;arg3));CUBEVALUE(arg1;arg2;arg3))
由于CUBEVALUE函数及其参数,它正在成为一个非常长的函数,因此不容易使用。因为只有3个参数,它们写在不同的单元格中,所以我想创建如下内容

=MyFunction(A1,A2,A3)
并在前面提到的函数中使用A1、A2和A3作为“arg1、arg2、arg3”。这样就可以“拉”函数,这样它也可以使用B1:B3和C1:C3等中的输入进行计算

该函数运行良好,可以被拉过,但我的问题是如何将这个looong函数重命名为更用户友好的函数,因为它只需要3个单元格作为输入,函数中的其余文本只会使最终用户难以使用

使用UDF不是一个选项,因为无法通过VBA调用CUBEVALUE。。。任何将字符串粘在一起并将最终结果与间接结果结合使用的尝试似乎也都失败了。。
在这个网站上的一个类似问题中,有人提到使用“异步UDF”,但没有给出进一步的信息(我能找到的似乎不相关)。

你不应该真的有几个长多维数据集函数。在隐藏行/列或标题行/列中分配一些空间,以添加cubemember函数。然后,在报告的大部分内容中,您应该只使用cubevalue函数来引用其他单元格,并在其周围进行错误处理。正确使用绝对和相对引用是你的朋友


彼得·梅耶斯对此有一些很好的建议,幻灯片20-24。我的博客上有一个示例Excel文件,其中包含多维数据集函数。

使用命名范围(可能与动态
引用:
源代码一起),以缩短公式<代码>应用程序。评估或一组简单的方括号就足以绕过VBA不愿意处理应用程序。你用
CUBEVALUE
试过吗?
Evaluate
不起作用。VBA根本无法与PowerPivot环境通信。无法在VBA中调用、使用或计算
CUBE
函数,很遗憾,Microsoft网站上对其进行了指定:c命名范围将是一个问题,因为这样就无法再指定三个输入单元格,因此没有像
=MyFunction(A1、A2、A3)
这样的功能。我不明白,如果只有3个参数,并且它们都写在单元格中,那么CUBEVALUE函数是如何变得非常长的。我在这里遗漏了什么?请参阅描述中的第一个代码块。它看起来是这样的:
=IFERROR(值(CUBEVALUE)(“ThisWorkbookDataModel”;[Table1].[Person].[A1&“];[Table1].[Variable].[B1&“];[Table1].[Time].[C1&“];[Table1].[VALUE];[Measures].[MyMeasure]);CUBEVALUE(“ThisWorkbookDataModel”;[Table1].[Person].[A1&“],[Table1].[Table1].[Table1].[Variable].[Table1].[Table1]。[Table1]。[Table1]。[Table1]。[Table1];[Table1]。[Table1]。[Table1]。[Table1];[Table1]。[Table1]。[Table1]。]。[Value]“;”[Measures]。[MyMeasures]”)
。对于最终用户来说,不希望选择三个输入单元格六次,而且他们不知道在哪里输入什么……因此,由于它只需要3个参数,因此简单的
MyFunction=(arg1;arg2;arg3)
对于用户来说更容易。