打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
你还不会去重多列合并一列吗?快来看看这里吧!


送人玫瑰,手有余香,请将文章分享给更多朋友

动手操作是熟练掌握EXCEL的最快捷途径!



小伙伴问了我这样一个问题:如何利用公式将下表中的多列合并为一列,而且要剔除重复值。



这个题目和我们之前的帖子如何用公式将多列合并为一列中的内容是相类似的。

只不过,在如何用公式将多列合并为一列中,具有去重功能的公式是横向提取数据的。而本题中很明显是希望纵向提取数据且去重。

不过不用担心,我们依然有很多方法可以解决这个问题,比如说,利用数据透视表就可以。当然,今天我们要着重介绍如何用公式来解决


01

首先是和并列。这个可以参考帖子如何用公式将多列合并为一列中介绍的方法。



在单元格N1中输入公式“=IFERROR(INDIRECT(TEXT(RIGHT(SMALL(IF($A$1:$L$21<>"",ROW($A$1:$L$21)/1%+COLUMN(A:L)*10001),ROW(A1)),4),"r0c00"),),"")”,三键回车并向下拖曳即可。

具体的思路可以参看帖子如何用公式将多列合并为一列。

但是,上面这个公式是没有去重功能的。接下来我们还要考虑如何实现去重。思考三秒钟,不要走开!


02

想要实现去重更能,我们就要借助COUNTIF函数的帮助了。首先,我们在数据源的最上方需要插入一列空白列。



上面的公式也相应地变成=IFERROR(INDIRECT(TEXT(RIGHT(SMALL(IF($A$2:$L$22<>"",ROW($A$2:$L$22)/1%+COLUMN(A:L)*10001),ROW(A1)),4),"r0c00"),),"")

涂黄色的部分是变更的部分。

整个公式应书写为:

=IFERROR(INDIRECT(TEXT(RIGHT(SMALL(IF((--($A$2:$L$22<>"")-COUNTIF($N$1:N1,$A$2:$L$22))>0,ROW($A$2:$L$22)/1%+COLUMN(A:L)*10001),ROW($A$1)),4),"r0c00"),),"")

思路:

  • 整体上思路是一致的

  • COUNTIF部分,针对那些已经在N列中提取到的数据,就需要把它们从源数据中剔除,从而达到去重的目的

  • SMALL函数的参数,ROW($A$1)也变成固定引用,从而达到每次都提取最小值的目的。这里也可以用MIN函数替代

-END-

长按下方二维码关注EXCEL应用之家

面对EXCEL操作问题时不再迷茫无助

我就知道你“在看”

注意!前方有红包挡道!速点阅读原文消灭之

推荐阅读
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Excel中最值得收藏的12个函数公式(精选)
excel中一对多查找问题解决方法汇总(干货!)
一对多查找(2017版)
Excel VLOOKUP进阶
VLOOKUP函数之另类用法,让领导对你刮目相看
Excel公式:在指定数字区间生成不重复的随机数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服