在日常 Excel 数据处理工作中,统计列中相同内容的个数是一项常见需求,尤其是在不同的数据场景下,需要运用不同的方法来准确实现统计。以下将详细介绍两种常见场景下统计重复值个数的具体方法及原理。
场景一:对两列同行数据统计重复值个数(如实际库存与理论库存对比)
(一)使用的公式及操作
在面对像产品实际库存和理论库存这样两列数据,需要统计在同一行的两个数据是否相同(即统计重复值个数)的情况时,操作方法较为简便。在目标单元格中输入公式“=SUMPRODUCT(--(B2:B10=C2:C10))”,然后点击回车键,就能得到相应的统计结果。
(二)公式原理解读
1、比较两列数据生成逻辑值数组:公式中的“(B2:B10=C2:C10)”部分起着关键的比较作用,它会把表格中的“实际库存”与“理论库存”这两列数据逐行进行比较,查看每行数据是否相同。这一操作返回的结果是一个数组,该数组由逻辑值“TRUE”或者“FALSE”组成。例如,如果某一行的实际库存和理论库存数值相等,对应位置就会返回“TRUE”,若不相等则返回“FALSE”。(这里需要注意的是,逻辑值“TRUE”可以看做数值 1,逻辑值“FALSE”可以看做数值 0,这在后续运算中有重要意义。)
2、逻辑值转换为数值:前面添加的双减号“--”,其本质是一个减负运算,它的主要作用是可以将文本数字串或逻辑值转换为数值,也就是把逻辑值“TRUE”转成数值 1,把逻辑值“FALSE”转成数值 0。之所以要进行这样的转换,是因为 SUMPRODUCT 函数在运算时,会将非数值型的数组元素作为 0 处理,所以我们必须先把逻辑值转换为数值,才能准确地通过 SUMPRODUCT 函数进行求和统计,最终得出两列数据中重复值的个数。
3、其他等效转换方式:当然,除了添加双减号“--”这种转换方式外,还可以通过乘以 1(因为逻辑值“TRUE”乘以 1 就是 1,逻辑值“FALSE”乘以 1 是 0)或者用函数 N()将逻辑值转换成数值。相应的公式如下:
公式“=SUMPRODUCT((B2:B10=C2:C10)*1)”,通过与 1 相乘实现逻辑值到数值的转换,进而利用 SUMPRODUCT 函数求和统计重复值个数。
公式“=SUMPRODUCT(N(B2:B10=C2:C10))”,利用函数 N()来将比较后得到的逻辑值数组转换为数值数组,再由 SUMPRODUCT 函数进行后续计算,同样能达到统计重复值个数的目的。
场景二:对两列不同行数据统计重复值个数(如期中与期末前 10 名对比)
(一)使用的公式及操作
当遇到像“期中前 10 名”和“期末前 10 名”这样两列不同行数据,需要统计两次进入前 10 名人数(即统计重复值个数)的情况时,操作方法有所不同。在目标单元格中输入公式“=COUNT(MATCH(A2:A10,B2:B10,0))”,然后点击回车键,即可获取相应的数据,也就是两列数据中重复值的个数。
(二)公式原理解读
1、使用 MATCH 函数查找位置:首先,“MATCH(A2:A10,B2:B10,0)”这部分发挥着关键作用,它的功能是找出 A 列里面每一个人在 B 列中的位置,这里的查找方式为 0,表示精确查找。例如,“李明”在 A 列中,通过 MATCH 函数查找其在 B 列中的位置,假如是在 B 列的第 6 行,但由于查找区域不包含第一行,所以实际返回的位置是 5,其余人员的位置查找以此类推。而如果 A 列有的数据在 B 列中不存在,那么对应的位置就会返回错误值“#N/A”。经过这样的查找操作后,最终返回的结果是一个类似“{#N/A;5;6;1;2;3;#N/A;7;#N/A}”这样的数组,该数组记录了 A 列各数据在 B 列中的对应位置情况(包含错误值)。
2、使用 COUNT 函数统计数字个数:在得到 MATCH 函数返回的数组后,再使用 COUNT 函数来统计这个数组中数字的个数。由于错误值“#N/A”不会被 COUNT 函数计入统计范围,所以实际上 COUNT 函数统计的就是两列数据中重复出现的数据个数,也就是我们想要统计的重复值个数了。
通过掌握以上两种不同场景下在 Excel 中统计列中相同内容个数的方法及原理,我们就能根据实际的数据情况,灵活运用相应公式,准确高效地完成重复值个数的统计工作,满足多样化的数据处理需求。
评论 (0)