分享

多列查找重复值,COUNTIF函数有绝招!

 EXCEL应用之家 2023-04-02 发布于上海


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

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

【置顶公众号】或者【设为星标】及时接收更新不迷路



小伙伴们好,上一篇帖子我们介绍了如何在两列中查找重复值。今天要和大家拓展一下,来看看如何在多列中查找重复值。

题目是这样子的:



如题,这种情况下,我们还能使用COUNTIF函数吗?


01

有几个重复值。



在单元格E2中输入公式“=COUNT(A1:C6)-COUNT(1/MMULT(TRANSPOSE(COUNTIF(OFFSET(A1:C1,ROW(1:6)-1,),COLUMN(A:DZ))),ROW(1:6)^0))”,三键回车确认即可。

思路:

  • OFFSET(A1:C1,ROW(1:6)-1,)部分,以单元格区域A1:C1为基点,依次向下移动0-5行,生成一个新的内存数组

  • COUNTIF(OFFSET(A1:C1,ROW(1:6)-1,),COLUMN(A:DZ))部分,在这个新生成的内存数组中统计自然数序列1-104中各个数值的个数

  • TRANSPOSE(COUNTIF(OFFSET(A1:C1,ROW(1:6)-1,),COLUMN(A:DZ)))部分,将统计完成的结果进行转置。转置后第一行对应的数字是1,第二行是2,依次类推

  • MMULT(TRANSPOSE(COUNTIF(OFFSET(A1:C1,ROW(1:6)-1,),COLUMN(A:DZ))),ROW(1:6)^0)部分,进行矩阵乘积求和。结果为{0;0;0;0;0;0;0;0;0;0;0;0;0;1;2;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;3;0;0;0;1;1;0;0;1;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;2;0;0;0;0;0;0;0;0;0;1;0;2;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0},MMULT函数结果的含义是,凡是大于0的值都是在源数据中存在的数值,且已经去除重复值了。凡是大于1的,都表示有重复值。

  • 1/MMULT部分,常用的手段,用来屏蔽0值

  • COUNT函数统计不重复数值的个数

  • 最后,用源数据的总个数减去不重复数值的个数,就是重复值的个数了


02

有几个数有重复值?



在单元格E4中输入公式“=COUNT(1/(MMULT(TRANSPOSE(COUNTIF(OFFSET(A1:C1,ROW(1:6)-1,),COLUMN(A:DZ))),ROW(1:6)^0)>1))”,三键回车确认即可。

一句话解释:

和前面的思路一样,MMULT函数返回的结果中,凡是大于1的都是含有重复值数值,只要统计它们的个数就可以了

留个问题给朋友们。上面的例子都是以行数据作为移动和查找的基础的。那么,如果以列数据为基础,该怎样书写公式呢?欢迎给我留言!

本期内容练习文件提取方式:

链接:https://pan.baidu.com/s/1EEqRBeDW_SQP9hkdVoAAPw?pwd=opwq

提取码:opwq


好了朋友们,今天和大家分享的内容就是这些了!喜欢我的文章请分享、转发、点赞和收藏吧!如有任何问题可以随时私信我哦!

-END-

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

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

我就知道你“在看”

推荐阅读

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多