繁体   English   中英

使用单个单元格的逗号分隔值作为数组公式的输入

[英]Use comma separated value of a single cell as input for array formula

我想构建一个接受单个单元格的分隔值作为输入的数组公式:

单元格 A1:1;3;4

单元格 A2:={Sum(If(A3:F3)=A1,A4:F4))}

如何告诉 excel 将 A1 中的字符串解释为数组? 我尝试设置自定义 vba 函数,但无法将 vba 数组正确返回到 excel 公式。

任何人都可以帮忙吗?

截屏

我用 VBA 尝试了什么:

Function Matrix(vector)
Dim arr As Variant

arr = Array(Split(vector, ";"))
Matrix = arr


End Function

在上面的公式中,我用 Matrix(A1) 替换了 A1。 但是向量的值作为字符串而不是整数返回(抱歉,实际上使用的是德国 Excel):

截屏

谢谢彼得

一些聪明的某某将为您提供我期望的公式,但这里有一个 VBA 解决方案。 我认为您需要传递两个参数(至少) - 数组和查找范围。

Function Matrix(vector, r As Range) As Variant

Dim arr As Variant, i As Long, v As Variant

arr = Split(vector, ";")

For i = LBound(arr) To UBound(arr)
    v = Application.Match(Val(arr(i)), r.Rows(1), 0)
    If IsNumeric(v) Then Matrix = Matrix + r(2, v)
Next i

End Function

C1中的公式是

=matrix(A1,A3:D4)

请注意, Split返回一个数组。

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM