Excel中的数组常量

我有一个数组常量在单元格A1中定义为{1,2,3}。 这显示为“1”(数组中的第一个值)。

我想要公式SUM(A1)返回6.但是,SUM使用A1作为单细胞数组,而不是包含在A1内的数组常量 – 因此SUM(A1)返回1。

同样,我期望AVERAGE(A1)返回1而不是2。

所以简单地说,我如何获得SUM(A1)返回与SUM({1,2,3})相同的值?

我不想让数组常量是一个命名参考,因为我为每一行定义了一个不同的数组常量。

这感觉就像我卡在C ++ W / O方式解引用!

这个简短的VBA UDF应该做的工作。

Public Function ToArray(rngCell As Range) As Variant Dim sFormString As String sFormString = rngCell.Formula Dim adReturn() As Double ReDim adReturn(1) As Double If Not Len(sFormString) - 3 > 0 Then ToArray = adReturn Exit Function Else sFormString = Mid(sFormString, 3, Len(sFormString) - 3) End If Dim vTest As Variant vTest = Split(sFormString, ",") ReDim adReturn(LBound(vTest) To UBound(vTest)) As Double Dim iArrayCounter As Integer For iArrayCounter = LBound(vTest) To UBound(vTest) adReturn(iArrayCounter) = vTest(iArrayCounter) Next iArrayCounter ToArray = adReturn End Function 

(如果带大括号的string位于单元格b2中,则需要在另一个单元格中写入= sum(toarray(b2)))

单元格被限制为单个数字,string,逻辑或错误值。 单个单元格不能包含数组。 当单元格公式中计算公式“= {1,2,3}”时,单元格将只获取数组中的第一个值。

您可以通过定义一个名称(例如:test)来使数组常量成为一个已命名的数组常量,如下所示:

 ={1,2,3} 

然后引用该名称

 =SUM(test)