[英]Array formula result concatenated into single cell
是否可以從數組公式中獲取返回值並將它們連接到一個單元格中? 例如,我有一個簡單的電子表格,其中包含項目任務的行,如下所示:
Task # Description Blocked on Blocking
-----------------------------------------------
1 Task 1 2
2 Task 2 $formula
3 Task 3 2
我希望單元格 D3 中的公式返回“1, 3”(將多個值放入 Blocked On 單元格中也很好)。 我目前已經使用以下公式返回“1”:
=(INDEX($A2:$A999,MATCH(A3,$C2:$C999,0)))
您要查找的公式是(在 d3 中):=IF($C$2:$C$999=$A4;$A$2:$A$999;"") +ctrl+shift+enter
確保將其作為數組輸入
(注意:您可能還需要將;更改為,具體取決於您的區域設置)
如果 C 中的數據與當前 Ai 匹配,這將返回 A 的內容。 您現在只能看到一個結果,因為結果是數組,但是如果您使用 Transpose() 並選擇同一行中的多個單元格,然后使用 F2 然后按 ctrl+shift+enter 您將看到一行中的所有結果:例如:選擇D3,K3,按F2:寫公式:=Transpose(IF($C$2;$C$999=$A4:$A$2;$A$999,""))。 按 ctrl+shift+enter..:(你可能需要再次寫:=Transpose(IF($C$2,$C$999=$A4:$A$2,$A$999.""))...)
但是你必須在右邊有很多列,因為空結果仍然占據列,即使空字符串被處理為不占據任何列。 仍然存在未知結果列的問題。 因此,我建議使用 VBA 函數(我很久以前寫的一個函數)在一個單元格中連接有效結果(使用您喜歡的任何分隔符)。
D3 中最終提出的公式: =MyConCat("-";IF($C$2:$C$999=$A2;$A$2:$A$999;"")) +ctrl+shift+enter
和 MyConCat 的代碼(放置在 VBA 代碼區域的模塊中):
' MyConCat
'
' Very simple By Apostolos Goulandris
Function MyConCat(myDelimiter As String, Avar) As String
Dim b As Variant, Dum As String
If IsMissing(myDelimiter) Then myDelimiter = ""
For Each b In Avar
Dum = IIf(Len(b) > 0, Dum & myDelimiter & b, Dum)
Next
MyConCat = IIf(Len(myDelimiter) > 0, Mid(Dum, Len(myDelimiter) + 1, Len(Dum)), Dum)
End Function
在單元格 D3 中試試這個。 輸入數組公式 Ctrl + Shift + Enter。
=IFERROR(LEFT(SUBSTITUTE(CONCAT(IF(A3=C2:C4,A2:A4)&"-"),"FALSE-",""),LEN(SUBSTITUTE(CONCAT(IF(A3=C2:C4,A2:A4)&"-"),"FALSE-",""))-1),"")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.