您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Excel怎样将符合条件的结果放到一个单元格

2024/3/1 6:12:22发布34次查看
本篇文章给大家带来了关于excel的相关知识,其中主要整理了怎样将符合条件的结果放到一个单元格的相关问题,下面一起来看一下,希望对大家有帮助。
相关学习推荐:excel教程
工作中总会有一些奇葩的特殊需求,最让人头疼的莫过于将符合条件的多个结果全部放到一个单元格内。
举个例子,请看下图。
a列是某公司部门名称,b列是人员姓名。
要求将相同部门的人员姓名填入f列对应单元格,不同人名之间以逗号间隔。
看到这里,想必有人在心里嘀咕了:
小子啊,你这数据处理不规范啊,怎么能把这么多人名放一个单元格呢?这是违反数据规律,作死吧……
停停!!——
作为表哥表妹大军中的一员,俺更深知表格数据生杀予夺从不在我,而在于那位老是板着脸的……老板。
言归正传,说说这道题的解法:
首先在c2输入公式:
=if(a2=a1,c1&”,”&b2,b2)
向下复制填充。
f2输入公式:
=lookup(1,0/(e2=$a$2:$a$9),c$2:c$9)
向下复制填充,得到最终结果。
这个解法使用了辅助列的方式。
c列为辅助列,是一个简单的if函数。
以c2的公式为例:
=if(a2=a1,c1&”,”&b2,b2)
先判断a2和a1的值是否相等,如果相等,则返回c1&”,”&b2,如果不等,则返回b2。
此处a2和a1的值不相等,因而公式返回b2的值”祝洪忠”。
在公式向下复制填充的过程中,该公式得出的结果,将被公式所在单元格下方的下一个公式所使用,于是形成人名累加的效果。
比如c3单元格公式:
=if(a3=a2,c2&”,”&b3,b3)
a3和a2的值相等,返回真值c2&”,”&b3。
c2为上个公式所返回的结果b2(祝洪忠),b3的值是”星光”,所以c3最后结果为”祝洪忠,星光”。
辅助列公式输入完成后,在f列使用了一个常用的lookup函数套路,得到最终结果:
=lookup(1,0/(e2=$a$2:$a$9),c$2:c$9)
lookup的这个套路,忽略错误值,总是取得最后一个符合条件的结果,我们可以总结为:
=lookup(1,0/(条件区域=指定条件),要返回的目标区域)
该公式以0/(e2=$a$2:$a$9)构建了一个由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怎样将符合条件的结果放到一个单元格的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product