簡體   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