簡體   English   中英

數組公式結果連接到單個單元格中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM