在 Excel 中,是否有内置公式/函数可以将值附加或添加到数组? 因此,假设我有自己的 UDF MyFunc(...),它返回一个值数组。 我可以使用对单个单元格的引用向该结果附加或预先添加单个值吗?
正如我们在评论中讨论的,这是一个可能的答案:
AFAIK,没有公式可以做到这一点,并且 VBA 中没有附加函数。然而,您可以使用
Chip Pearson中的
ConcatenateArrays
函数
这可以使用标准 Excel 数组函数来实现。
为了便于说明,我们假设 MyFunc 是
Function MyFunc(r As Range) As Variant
MyFunc = r.Value
End Function
如果传递的范围超过一个单元格,则返回一个二维数组。
当输入像
=D1&MyFunc(A2:C7)&E1
这样的数组公式时,会在 D1 前面加上 E1
它也可以用在标准的非数组公式中,其中需要数组参数,如下面的单元格 D12 所示
是的,您可以使用 VSTACK 在 Excel for Microsoft 365 中预先或追加一个值(这并不完全是您想要的,但无论如何......)。它垂直并按顺序附加数组以返回更大的数组(Microsoft):
=VSTACK(array1,[array2],...)
如果您只有一个值要添加到数组前面,您可以这样做:
=VSTACK("my value", yourArray)
在您的具体情况下(其中 A2 是您想要添加的值,MyFunc 是您返回数组的函数):
=VSTACK(A2, MyFunc())
您还可以通过更改参数的顺序来附加值:
=VSTACK(MyFunc(), A2)
最后但并非最不重要的一点是,您还可以添加或附加多个值:
=VSTACK(A2, A3, MyFunc(), A4)
=VSTACK(MAP(SEQUENCE(nbOfValues), LAMBDA(x, "new value")); MyFunc())