0
因此,我有一個表格,第一列中有幾個模塊,第二列中列出了該模塊中存在的不同進程。它看起來是這樣的:具有多個值的Vlookup
現在我已經創建了獨特的獨特模塊的數據驗證列表,所以用模塊A,模塊B和模塊C 列表當我選擇從一個模塊該列表中,我希望屬於該模塊的所有進程都顯示在單獨單元格的下拉列表旁邊。如果這些流程出現在彼此之下,這將是一個'很好的'。
我已經嘗試過各種索引和vlookup等的東西,但我找不到解決的辦法。
因此,我有一個表格,第一列中有幾個模塊,第二列中列出了該模塊中存在的不同進程。它看起來是這樣的:具有多個值的Vlookup
現在我已經創建了獨特的獨特模塊的數據驗證列表,所以用模塊A,模塊B和模塊C 列表當我選擇從一個模塊該列表中,我希望屬於該模塊的所有進程都顯示在單獨單元格的下拉列表旁邊。如果這些流程出現在彼此之下,這將是一個'很好的'。
我已經嘗試過各種索引和vlookup等的東西,但我找不到解決的辦法。
如果您有Office Excel中365然後用這個數組公式:
=TEXTJOIN(",",TRUE,IF($A$2:$A$7 = D2,$B$2:$B$7,""))
這是一個數組公式並需要被證實退出編輯模式時,按Ctrl-Shift鍵,Enter鍵。如果正確完成,那麼Excel將在公式周圍放置{}
。
如果您沒有Office 365中的Excel,然後把這個代碼附加到工作簿模塊中,並如上所述使用。
Function TEXTJOIN(delim As String, skipblank As Boolean, arr)
Dim d As Long
Dim c As Long
Dim arr2()
Dim t As Long, y As Long
t = -1
y = -1
If TypeName(arr) = "Range" Then
arr2 = arr.Value
Else
arr2 = arr
End If
On Error Resume Next
t = UBound(arr2, 2)
y = UBound(arr2, 1)
On Error GoTo 0
If t >= 0 And y >= 0 Then
For c = LBound(arr2, 1) To UBound(arr2, 1)
For d = LBound(arr2, 1) To UBound(arr2, 2)
If arr2(c, d) <> "" Or Not skipblank Then
TEXTJOIN = TEXTJOIN & arr2(c, d) & delim
End If
Next d
Next c
Else
For c = LBound(arr2) To UBound(arr2)
If arr2(c) <> "" Or Not skipblank Then
TEXTJOIN = TEXTJOIN & arr2(c) & delim
End If
Next c
End If
TEXTJOIN = Left(TEXTJOIN, Len(TEXTJOIN) - Len(delim))
End Function
爲了讓他們在不同的細胞中一個低於其他使用此公式中的第一個單元格出現抄下足以覆蓋最長的名單:
=IFERROR(INDEX(B:B,AGGREGATE(15,6,ROW($A$2:$A$7)/($A$2:$A$7=$D$2),ROW(1:1))),"")
感謝您的快速反應,但我希望這些過程出現在單獨的單元格中,對我來說,最好的方式是,如果它們出現在彼此之下。 –
然後這就是你應該說的在你原來的帖子裏。 –
@NickKuipers查看修改 –