MATCH 和 INDEX 到 return 索引号 2 Excel

MATCH and INDEX to return index number 2 Excel

我尝试结合使用 CONCATENATEINDEXMATCH 函数,以大致了解 table 哪些员工每天从事哪些工作。

设置如下:

这应该是结果 table:

这是我做的公式:

=CONCATENATE(INDEX($B:$B,MATCH($B2,C:C,0)))

并且只获取第一个索引:

一个return如何分别索引2:name3和name5?

我有2016版之前的Excel版本,无法使用TEXTJOINCONCAT功能

编辑

即使 VBA 解决方案也有效,我还是尝试使公式有效:

这就是我的工作:

=IF(COUNTIF(C:C,$B2)=0,"",IF(COUNTIF(C:C,$B2)=1;INDEX($B:$B,MATCH($B2,C:C;0)),INDEX($B:$B,MATCH($B2,C:C,0))&CHAR(10)&INDEX($B:$B,SMALL(MATCH($B2,C:C),ROWS(C)))))

在这种情况下它给出了正确的解决方案(假设最多有 2 个匹配项),但是它很脆弱。

我在更大的设置中对其进行了测试,return两次输入相同的名称,但我无法弄清楚问题所在。

知道吗,为什么会这样?

一点都不漂亮。但它确实有效。

用户自定义函数。
将此代码放在模块中

Function name_find(func As String, namerng As Range, searchrng As Range)
    
    For Each r In searchrng
        If r.Value = func Then
            name_find = name_find & Chr(10) & Cells(r.Row, namerng.Column).Value
        End If
    Next r

End Function

并使用公式:

=name_find(C4,C9:C14,D9:D14)

记得在单元格中启用换行符。我花了一段时间才明白为什么它不起作用:-)