因为Excel处理文本远没有数字那么强大,除非VBA,用公式的话只能在一个单元格中取得B列的一个单元格。假设数据到第100行,可以这样来做:
在D1中输入公式:
=INDEX($B:$B,SMALL(IF($A$1:$A$100=$C1,ROW($1:100),4^8),COLUMN(A:A)))&""
按同时按Ctrl+Shift+Enter三键输入数组公式,向右拖到若干列——列数足以保证包括下行的数据行中能取得所有文字,比如可能会出12个字,就到O列。再下拖。
然后选择公式得到数据区域,比如D1:O20,复制后选择性粘贴为数值,再在P1中输入公式:
=PHONETIC(D1:O1)
得到D1:O1单元格文字合并的结果。下拉。
PS:因为PHONETIC不能合并公式结果,只能合并纯文本,所以要先复制后粘贴为文本。
可以考虑使用vba进行整合
自定义函数:
Function ZH(ByVal rng As Range, ByVal AR As Range)
Application.Volatile
arr = AR
str1 = rng
ZH = ""
For j = 1 To UBound(arr)
If arr(j, 1) = str1 Then ZH = ZH & arr(j, 2)
Next j
End Function
使用:
=zh(C1,A:B)