您正在寻找的公式是(在 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