excel分类计算多列数据的公式(在一对多的冗长)

来自网友的求助:一对多的数据表,统计一对一唯一项的数量。

案例:

下图 1 是销售人员的各项产品销量表,有的销售可能在不同时期多次售出同样产品,比如下图 2 这样,于予菊就两次售出过主机。

请统计出每位销售出售的唯一产品类目数,效果如下图 3 所示。

excel分类计算多列数据的公式(在一对多的冗长)(1)

excel分类计算多列数据的公式(在一对多的冗长)(2)

excel分类计算多列数据的公式(在一对多的冗长)(3)

解决方案:

1. 在 F2 单元格中输入以下公式 --> 下拉复制公式:

=SUMPRODUCT(($A$2:$A$29=E2)/COUNTIFS($A$2:$A$29,$A$2:$A$29,$B$2:$B$29,$B$2:$B$29))

别被公式的长度吓坏,分解开来并不复杂。

公式释义:

  • COUNTIFS($A$2:$A$29,$A$2:$A$29,$B$2:$B$29,$B$2:$B$29):
    • countifs 是多条件计数函数,语法为 COUNTIFS(区域1, 条件1, [区域2, 条件2],…);
    • 此处的公式旨在统计出区域内 A 和 B 列同时重复的次数,会生成一个由重复次数组成的数组;
  • $A$2:$A$29=E2:将 A 列的每个单元格与 E2 单元格的姓名比对,得到一组由 1 或 0 组成的数组;
  • ($A$2:$A$29=E2)/COUNTIFS(...):
    • 将上述两个结果相除,分子中为 0 的,即姓名不匹配的,自然不会统计在内;
    • 如果姓名匹配,则看分母中的重复次数,例如,如果重复过 3 次,则相除后的数组中会出现 3 个 1/3;
  • SUMPRODUCT(...):最后用该函数将上述结果相加,重复多次的加起来结果也是 1,从而得到案例所需结果。

用 sumproduct 函数的好处是不必使用数组公式。

excel分类计算多列数据的公式(在一对多的冗长)(4)

excel分类计算多列数据的公式(在一对多的冗长)(5)

excel分类计算多列数据的公式(在一对多的冗长)(6)

2. 给标题加上筛选功能,分别筛选一下“于予菊”和“诸葛钢铁”的名字,这样就能很清楚地核对结果,去除重复项,他们二位的产品类目数完全正确。

excel分类计算多列数据的公式(在一对多的冗长)(7)

excel分类计算多列数据的公式(在一对多的冗长)(8)

接下来再给大家介绍一个公式。

3. 在 F2 单元格中输入以下公式 --> 按 Ctrl Shift Enter 结束:

=COUNT(0/(MATCH($B$2:$B$29,IF($A$2:$A$29=E2,$B$2:$B$29),)=ROW(A:A)))

公式释义:

  • IF($A$2:$A$29=E2,$B$2:$B$29):如果 A 列的姓名与 E2 单元格相同,则返回对应的 B 列值;
  • MATCH($B$2:$B$29,...,):计算上述值在区域 $B$2:$B$29 的位置序号,遇到重复值也只返回第一次出现的位置序号,也就是变相起到了去重作用;
  • ROW(A:A):生成自 1 开始的递增自然数;
  • MATCH(...)=ROW(A:A):将位置序号与自然递增数相比,如果相同则返回 true;
  • count(0/...):只有当分母不为 0 时,即 true 时,被 0 除才有意义,计算出这些有意义的结果数量就是想要的答案

excel分类计算多列数据的公式(在一对多的冗长)(9)

excel分类计算多列数据的公式(在一对多的冗长)(10)

4. 下拉复制公式:

excel分类计算多列数据的公式(在一对多的冗长)(11)

很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。

现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页