Excel如何用函数(无VBA)匹配C、D列值合并对应E列文本
Excel无VBA实现多条件匹配合并文本方案
分版本给出可直接落地的实现方法:
Microsoft 365/Excel 2021及以上版本(支持动态数组函数,操作最简)
步骤1:生成K列C列唯一值
K4单元格填写自定义表头(如C列唯一值),K5单元格输入公式:=UNIQUE(C:C)
直接回车后,C列所有唯一值会自动向下溢出填充K列。
步骤2:生成第4行D列唯一值
L4单元格输入公式:=TRANSPOSE(UNIQUE(D:D))
直接回车后,D列所有唯一值会自动横向溢出填充第4行的对应列。
步骤3:交叉区域匹配合并E列内容
L5单元格输入公式:
=TEXTJOIN("、",TRUE,FILTER(E:E,(C:C=$K5)*(D:D=L$4),""))
直接回车后,选中L5单元格向右拖动填充到D列唯一值对应的最后一列,再向下拖动填充到C列唯一值对应的最后一行即可。
旧版Excel(2019及更早,无动态数组函数)兼容方案
所有数组公式输入完成后需要按Ctrl+Shift+Enter组合键确认生效。
步骤1:生成K列C列唯一值
K4填写自定义表头,K5输入数组公式:=INDEX(C:C,MIN(IF(COUNTIF(K$4:K4,C:C)=0,ROW(C:C),4^8)))&""
按三键确认后,向下拖动K5单元格,直到出现空白单元格,即为全部C列唯一值。
步骤2:生成第4行D列唯一值
L4输入数组公式:=INDEX(D:D,MIN(IF(COUNTIF($K4:K4,D:D)=0,ROW(D:D),4^8)))&""
按三键确认后,向右拖动L4单元格,直到出现空白单元格,即为全部D列唯一值。
步骤3:交叉区域匹配合并E列内容
L5输入数组公式:
=TEXTJOIN("、",TRUE,IF((C:C=$K5)*(D:D=L$4),E:E,""))
按三键确认后,先向右拖动填充对应列,再向下拖动填充对应行即可。
补充说明
TEXTJOIN第一个参数为合并文本的分隔符,可根据需求替换为逗号,、换行符CHAR(10)(需要开启单元格自动换行)等。- 公式中的整列引用(如
C:C)可替换为实际数据区域(如C$2:C$1000),能大幅提升计算效率。
内容的提问来源于stack exchange,提问作者Neverland
相关产品推荐
相关产品推荐

