1. 首页 > excel教程 > excel怎样将符合条件的结果放到一个单元格中(excel怎样将符合条件的结果放到一个单元格内)

excel怎样将符合条件的结果放到一个单元格中(excel怎样将符合条件的结果放到一个单元格内)

excel怎样将符合条件的结果放到一个单元格中(excel怎样将符合条件的结果放到一个单元格内)

相关学习推荐:excel教程

工作中总会有一些奇葩的特殊需求,最让人头疼的莫过于将符合条件的多个结果全部放到一个单元格内。

举个例子,请看下图。

A列是某公司部门名称,B列是人员姓名。

要求将相同部门的人员姓名填入F列对应单元格,不同人名之间以逗号间隔。

看到这里,想必有人在心里嘀咕了:

小子啊,你这数据处理不规范啊,怎么能把这么多人名放一个单元格呢?这是违反数据规律,作死吧……

停停!!——

作为表哥表妹大军中的一员,俺更深知表格数据生杀予夺从不在我,而在于那位老是板着脸的……老板。

言归正传,说说这道题的解法:

首先在C2输入公式:

=IF(A2=A1,C1&”,”&B2,B)

向下复制填充。

F2输入公式:

=LOOKUP(1,0/(E2=$A$2:$A),C$2:C$)

向下复制填充,得到最终结果。

这个解法使用了辅助列的方式。

C列为辅助列,是一个简单的IF函数。

以C2的公式为例:

=IF(A2=A1,C1&”,”&B2,B)

先判断A2和A1的值是否相等,如果相等,则返回C1&”,”&B2,如果不等,则返回B2。

此处A2和A1的值不相等,因而公式返回B2的值”祝洪忠”。

在公式向下复制填充的过程中,该公式得出的结果,将被公式所在单元格下方的下一个公式所使用,于是形成人名累加的效果。

比如C3单元格公式:

=IF(A3=A2,C2&”,”&B3,B)

A3和A2的值相等,返回真值C2&”,”&B3。

C2为上个公式所返回的结果B2(祝),B3的值是”星光”,所以C3最后结果为”祝洪忠,星光”。

辅助列公式输入完成后,在F列使用了一个常用的LOOKUP函数套路,得到最终结果:

=LOOKUP(1,0/(E2=$A$2:$A),C$2:C$)

LOOKUP的这个套路,忽略错误值,总是取得最后一个符合条件的结果,我们可以总结为:

=LOOKUP(1,0/(条件区域=指定),要返回的目标区)

该公式以0/(E2=$A$2:$A$)构建了一个由0和错误值#DIV/0!组成的内存数组,再用永远大于0的1作为查找值,于是查找出最后一个满足部门等于E2的C列结果,即A列最后一个广告部所对应的C列值:C2。

如果你使用的是Excel2019或是Office365,那就可以使用TEXTJOIN函数了,这个函数在WPS2019中也有哦。

在F2单元格输入以下公式,按住SHift+Ctrl不放,按回车,OK了。

=TEXTJOIN(“,”,1,IF(A$2:A$9=E2,B$2:B$9,”))

TEXTJOIN函数的用法为:

=TEXTJOIN(间隔符号,要不要忽略空文本,要合并的内)

公式中要合并的内容为:

IF(A$2:A$9=E2,B$2:B$9,”)

也就是如果A$2:A$9等于E2,就返回B$2:B$9对应的内容,否则返回空文本””,结果是一个传说中的内存数组:

{“祝洪忠”;”星光”;””;””;””;””;””;””}

TEXTJOIN函数对IF函数得到的内存数组进行合并,开始参数指定使用间隔符号为逗号,第二参数使用1,表示忽略内存数组中的空文本。

相关学习推荐:excel教程

以上就是Excel怎样将符合条件的结果放到一个单元格的详细内容,更多请关注东辰网其它相关文章!

本文由东辰网发布,不代表东辰网立场,转载联系作者并注明出处:https://www.ktwxcd.com/excel/2271.html

留言与评论(共有 0 条评论)
   
验证码:

联系我们

在线咨询:点击这里给我发消息

微信号:vx614326601

工作日:9:30-18:30,节假日休息