MATCH 和 INDEX 到 return 索引号 2 Excel
MATCH and INDEX to return index number 2 Excel
我尝试结合使用 CONCATENATE
、INDEX
和 MATCH
函数,以大致了解 table 哪些员工每天从事哪些工作。
设置如下:
这应该是结果 table:
这是我做的公式:
=CONCATENATE(INDEX($B:$B,MATCH($B2,C:C,0)))
并且只获取第一个索引:
一个return如何分别索引2:name3和name5?
我有2016版之前的Excel版本,无法使用TEXTJOIN
或CONCAT
功能
编辑
即使 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)
记得在单元格中启用换行符。我花了一段时间才明白为什么它不起作用:-)
我尝试结合使用 CONCATENATE
、INDEX
和 MATCH
函数,以大致了解 table 哪些员工每天从事哪些工作。
设置如下:
这应该是结果 table:
这是我做的公式:
=CONCATENATE(INDEX($B:$B,MATCH($B2,C:C,0)))
并且只获取第一个索引:
一个return如何分别索引2:name3和name5?
我有2016版之前的Excel版本,无法使用TEXTJOIN
或CONCAT
功能
编辑
即使 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)
记得在单元格中启用换行符。我花了一段时间才明白为什么它不起作用:-)