小伙伴们好啊,今天咱们结合一位同学的实际问题,看看怎么把符合条件的内容都放到一个单元格里。
先来看基础数据,有两个工作表,其中的“订单”工作表里是不同订单对应的产品代码明细记录:
在汇总表中,需要根据A列的产品代码,把包含该产品代码的所有订单号都合并到左侧单元格里,中间使用顿号隔开。
接下来咱们就说说在不同版本中的解决方法:
如果你使用的是Excel 2019、Office 365或者是最新版的WPS表格,可以直接使用TEXTJOIN函数,这个函数就是专门来合并字符的,基本用法为:
TEXTJOIN(间隔符号,是否忽略空白单元格,要合并的内容)
在汇总表的C2单元格输入以下数组公式,按住SHift ctrl不放,按回车,然后复制到C4单元格,OK了。
=TEXTJOIN("、",TRUE,IF(订单!B$2:B$12=A2,订单!A$2:A$12,""))
TEXTJOIN第一参数使用顿号作为字符间隔,第二参数使用TRUE,表示忽略空白单元格或是空文本。
第三参数敲黑板,划重点:
IF(订单!B$2:B$12=A2,订单!A$2:A$12,"")
这里用到了IF函数,并且第一参数使用了一个多项的条件对比。
“订单!B$2:B$12=A2”部分,判断订单工作表B列的产品代码是不是等于A2单元格中指定的产品代码,如果符合,则返回订单工作表A列对应的订单号,否则返回空文本,得到结果是这样的:
{"CX-1903-021";"";"CX-1908-027";"";"";"";"CX-2103-036";"";"";"CX-2107-048";""}
最后再使用TEXTJOIN函数,忽略里面的空文本合并字符,就得到咱们需要的结果了。
低版本的小伙伴们也不用担心,只要增加一个辅助列,就能让复杂问题变简单。
第一步:
在订单工作表的D2单元格输入公式 ,向下复制。
=IFERROR(A2&"、"&INDEX(D3:D12,MATCH(B2,B3:B12,)),A2)