找回密码
 立即注册
搜索

多列筛选后的不重复计数问题

2
回复
989
查看
[复制链接]

1

主题

9

帖子

2

幻币

初入江湖

Rank: 1

积分
13
2021-12-26 23:16:00 显示全部楼层 |阅读模式
单列筛选后的不重复计数问题——
其中第一种计数方法在多列筛选时失效。
失效原因:
  SUBTOTAL(3,OFFSET(B36,ROW(1:12),))和MATCH(B37:B48,B37:B48,)=ROW(1:12)相乘的计算方法
  在单列筛选时,假设马鞍山没有隐藏,
  SUBTOTAL(3,OFFSET(B36,ROW(1:12),))计算结果为马鞍山(1)..马鞍山(1)..马鞍山(1)。
  MATCH(B37:B48,B37:B48,)=ROW(1:12)中则显示马鞍山(1)..马鞍山(0)..马鞍山(0),所以最终结果为1。
  在多列筛选时,如果马鞍山第一次出现的地方被隐藏,
  SUBTOTAL(3,OFFSET(B36,ROW(1:12),))计算结果为马鞍山(0)..马鞍山(1)..马鞍山(1)
  MATCH(B37:B48,B37:B48,)=ROW(1:12)中则显示马鞍山(1)..马鞍山(0)..马鞍山(0),计算结果为0。
  所以会出现图下结果。
方法二简单尝试后也不能给出正确答案。
求组大神给出在B、C甚至更多列筛选后,统计C列不重复工厂数的方法,尽量只是用公式和单元格。
fc276abd6c56017106366da791e90d2b.png
测试:不重复计数.zip (22.77 KB, 下载次数: 187)
PPT学习论坛
回复

使用道具 举报

2

主题

10

帖子

4

幻币

初入江湖

Rank: 1

积分
17
2022-1-11 22:09:25 显示全部楼层
数组公式:
=COUNT(IF(
MATCH(IF(SUBTOTAL(3,OFFSET(C2,ROW(3:96)-2,0)),C3:C96,NA()),
IF(SUBTOTAL(3,OFFSET(C2,ROW(3:96)-2,0)),C3:C96),
0)
=ROW(3:96)-2,1,NA()))

(1)SUBTOTAL 得到 0,1数组
=COUNT(IF(
MATCH(IF(SUBTOTAL(3,OFFSET(C2,ROW(3:96)-2,0)),C3:C96,NA()),
IF(SUBTOTAL(3,OFFSET(C2,ROW(3:96)-2,0)),C3:C96),
0)
=ROW(3:96)-2,1,NA()))
(2)IF 得到非隐藏内容,隐藏的返回错误值,使得后面的MATCH匹配得到错误值
=COUNT(IF(
MATCH(IF(SUBTOTAL(3,OFFSET(C2,ROW(3:96)-2,0)),C3:C96,NA()),
IF(SUBTOTAL(3,OFFSET(C2,ROW(3:96)-2,0)),C3:C96),
0)
=ROW(3:96)-2,1,NA()))
(3)MATCH 匹配出现位置
=COUNT(IF(
MATCH(IF(SUBTOTAL(3,OFFSET(C2,ROW(3:96)-2,0)),C3:C96,NA()),
IF(SUBTOTAL(3,OFFSET(C2,ROW(3:96)-2,0)),C3:C96),
0)

=ROW(3:96)-2,1,NA()))
(4)IF 判断匹配位置是否第一次出现,第一次出现的返回数字,否则返回错误值
=COUNT(IF(
MATCH(IF(SUBTOTAL(3,OFFSET(C2,ROW(3:96)-2,0)),C3:C96,NA()),
IF(SUBTOTAL(3,OFFSET(C2,ROW(3:96)-2,0)),C3:C96),
0)
=ROW(3:96)-2,1,NA()))
(5)COUNT 计算数字的个数,也就是非重复数
=COUNT(IF(
MATCH(IF(SUBTOTAL(3,OFFSET(C2,ROW(3:96)-2,0)),C3:C96,NA()),
IF(SUBTOTAL(3,OFFSET(C2,ROW(3:96)-2,0)),C3:C96),
0)
=ROW(3:96)-2,1,NA()))
筛选区域的条件计数.rar (23.44 KB, 下载次数: 11)
PPT学习论坛
回复 支持 反对

使用道具 举报

0

主题

6

帖子

-1

幻币

初入江湖

Rank: 1

积分
1
2022-3-14 09:53:37 显示全部楼层
大佬真快,感谢
PPT学习论坛
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册