如何根据AB列内容,用公式自动显示C列内容?

如题所述

如果EXCEL版本低,可通过辅助列来完成:1、选中A1:B12区域,排序,自定义排序,关键字选A列进行升序排序;2、在C1单元格输入公式="、"&B1并下拉公式,选中C1:C12区域,复制,选择性粘贴为数值,清除公式;3、在D1单元格输入公式=IF(COUNTIF(A$1:A1,A1)=1,TRIM(MID(PHONETIC(OFFSET(A1,,2,COUNTIF(A:A,A1))),2,100)),"")并下拉公式即可。

示例

追问

输出后的空行怎么能自动去掉啊

追答

将D列复制,选择性粘贴为数值,去除公式,再将D列排序就可以了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-06-04

=TEXTJOIN("、",1,IF(A:A=ROW(A1),B:B,""))


office2019版本,输完公式后按ctrl+shift+enter产生花括号。

追问

2007版的电子表格能解决这个问题吗?

追答

把数值都改成文本,并排序使一样的文本在一起:

然后使用公式:

=IFERROR(MID(SUBSTITUTE(PHONETIC(OFFSET(INDIRECT("A"&MATCH(D1,A:A,)),,,COUNTIF(A:A,D1),2)),D1,"、"),2,99),"")

第2个回答  2021-06-04
要用代替+偏移函数
或vba,适合任何版本的EXCEL
Sub 组合()
Dim I, R
For I = 1 To 4
For R = 1 To Range("A65536").End(xlUp).Row
If Cells(R, "a") = I Then
Cells(I, "c") = Cells(I, "c") & "," & Cells(R, "b")
End If
Next
Next
End Sub
第3个回答  2021-06-04
C1公式:
=INDEX(B:B,(ROW()-1)*3+1)&"、"&INDEX(B:B,(ROW()-1)*3+2)&"、"&INDEX(B:B,(ROW()-1)*3+3)
第4个回答  2021-06-04
=textjoin("、",,filter(b$2:b$12,a$2:A$12=a1))追问

试了一下,实现不了,2007版的电子表格能实现吗?

追答

能,添加辅助列。

相似回答