你正在寻找的公式是(在D3):= IF($ C $ 2:$ C $ 999产品= $ A4; $ A $ 2:$ A $ 999; “”)+ Ctrl + Shift + Enter
确保您输入它作为一个阵列
(注意:您可能还需要改变;到,取决于您区域设置)
这将返回A的内容如果C中的数据匹配当前的Ai。你现在只能看到一个结果,因为结果是数组,但是如果你使用Transpose()并在同一行中选择多个单元格,那么使用F2然后按Ctrl + Shift + Enter,你会看到所有结果连续! 例如:选择D3:K3,按F2,编写公式:=移调(IF($ C $ 2:$ C $ 999 = $ A4; $ A $ 2:$ A $ 999;“”)),按ctrl + shift + enter。 ... (再次您可能需要写:=移调(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 +
和代码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
简单有效!好一个。想给你一些观点,但我需要一些声誉(好或坏)在这个网站上。更正夫妇: > D3中的最终建议公式: > = MyConCat(“ - ”; IF($ C $ 2:$ C $ 999 = $ A2; $ A $ 2:$ A $ 999;“”))+ ctrl + shift +输入不知道为什么你有分号(;)应该是逗号:= MyConCat(“ - ”,IF($ C $ 2:$ C $ 999 = $ A2,$ A $ 2:$ A $ 999,“”))ctrl + shift + enter我在你的if语句中随处可见这些分号。哎哟! 否则顶尖! 非常喜欢它Apostolos。 – St4n1ey
@ St4n1ey使用分号与逗号是区域设置。发布的公式没有任何问题。 –