Vlookup具有多个值

时间:2017-10-19 13:27:27

标签: excel excel-formula

所以,我有一个表,在第一列和第二列中有几个模块,该模块中存在不同的进程。它看起来像这样:

IMAGE

现在我已经创建了唯一唯一模块的数据验证列表,因此列出了模块A,模块B和模块C. 当我从该列表中选择一个模块时,我希望属于该模块的所有进程显示在单独的单元格中的下拉列表旁边。如果流程出现在彼此之下,那将是一个“不错的”。

我已尝试使用index和vlookup等进行各种操作,但我找不到解决方法。

1 个答案:

答案 0 :(得分:0)

如果您有Office 365 Excel,请使用此数组公式:

{}

这是一个数组公式,需要在退出编辑模式时使用Ctrl-Shift-Enter确认。如果正确完成,那么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 放在公式周围。

add

如果您没有Office 365 Excel,请将此代码放在工作簿附带的模块中,并按上述方法使用。

=IFERROR(INDEX(B:B,AGGREGATE(15,6,ROW($A$2:$A$7)/($A$2:$A$7=$D$2),ROW(1:1))),"")

要让它们出现在另一个单独的单元格中,请在第一个单元格中使用此公式并将其复制到足以覆盖最长列表:

{{1}}

enter image description here