首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在一对多的冗长 Excel 数据表中,提炼并计算出一对一的数量

公众号平台最新的推送规则对技术类文章不太友善,如果不想错过干货,请务必 “设为星标”哦!!!

点击上方蓝字 --> 点击“...”--> 选择“设为星标

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

案例:

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

请统计出每位销售出售的唯一产品类目数,效果如下图 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 函数的好处是不必使用数组公式。

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

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

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 除才有意义,计算出这些有意义的结果数量就是想要的答案

4. 下拉复制公式:

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OLY6hBJmGx247DPRLBFwClbA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券