ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3155|回复: 16

[求助] 多条件去重计数,求大神

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-2-7 15:13 | 显示全部楼层 |阅读模式
本帖最后由 badworms 于 2018-2-7 15:36 编辑

微信截图_20180207151213.png

条件在图里,请老师帮忙

红框内手工计数的值应该为23(橙色+绿色)

多条件去重计数.zip

10.33 KB, 下载次数: 26

TA的精华主题

TA的得分主题

发表于 2018-2-7 15:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
=SUM((MATCH(B3:B65&C3:C65,B3:B65&C3:C65,0)=ROW($1:$63))*(D3:D65<>"洁牙")*(E3:E65="初诊"))
数组公式

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-2-7 15:32 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
mengrs 发表于 2018-2-7 15:23
=SUM((MATCH(B3:B65&C3:C65,B3:B65&C3:C65,0)=ROW($1:$63))*(D3:D65"洁牙")*(E3:E65="初诊"))
数组公式

该公式返回值跟 countifs(D3:D65,<>"洁牙",D3:D65,“初诊”) 一样
略过了 洁牙后有后续治疗 的情况
我想应该在上面公式的基础上加上一个 判断该人名初诊→该人名出现≥2次 则记为1次有效非洁牙初诊
不过不知道公式怎么写

TA的精华主题

TA的得分主题

发表于 2018-2-7 15:54 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 丢丢表格 于 2018-2-8 08:26 编辑
badworms 发表于 2018-2-7 15:32
该公式返回值跟 countifs(D3:D65,"洁牙",D3:D65,“初诊”) 一样
略过了 洁牙后有后续治疗 的情况
我想 ...

=                                                           。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-2-7 16:11 | 显示全部楼层
丢丢表格 发表于 2018-2-7 15:54
=SUM(IF(D3:D65"洁牙",1/COUNTIFS(B:B,B3:B65,C:C,C3:C65,D:D,"洁牙")))
  要是跟初诊相关的 :
=SUM( ...

貌似逻辑是对的 但是返回值不对
返回值应该是23

TA的精华主题

TA的得分主题

发表于 2018-2-7 16:15 | 显示全部楼层
本帖最后由 丢丢表格 于 2018-2-7 16:16 编辑
badworms 发表于 2018-2-7 16:11
貌似逻辑是对的 但是返回值不对
返回值应该是23

23 ? 这个数据是如何算出来的 ??
如果不只算初诊,应该是 35

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-2-7 16:30 | 显示全部楼层
丢丢表格 发表于 2018-2-7 16:15
23 ? 这个数据是如何算出来的 ??
如果不只算初诊,应该是 35

一共是:
10——通过【=COUNTIFS(D3:D65,"<>洁牙",E3:E65,"初诊")】可得初诊非洁牙(表格橙色框出)
13——初诊为洁牙但是有后续项目(表格中绿色框出)
BTW:我发现把表格里的【/】改为【初诊】就行了。。。但是还是想知道如果是【/】怎么计算

TA的精华主题

TA的得分主题

发表于 2018-2-7 16:51 | 显示全部楼层
本帖最后由 丢丢表格 于 2018-2-8 08:27 编辑
badworms 发表于 2018-2-7 16:30
一共是:
10——通过【=COUNTIFS(D3:D65,"洁牙",E3:E65,"初诊")】可得初诊非洁牙(表格橙色框出)
13— ...

                                                                                    。                                                                                     。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-2-7 17:01 | 显示全部楼层
本帖最后由 badworms 于 2018-2-7 17:17 编辑
丢丢表格 发表于 2018-2-7 16:51
=SUM(IF((D3:D65"洁牙")*(E3:E65"复诊"),1/COUNTIFS(B:B,B3:B65,C:C,C3:C65,D:D,"洁牙",E:E,"复诊")))

...

邓先生在28行属于复诊 我感觉我也快摸索出来了 借你的启发 XD

就是 邓先生 的问题 在你的公式基础上减去一个 判断完全重复的公式 就可以啦
  1. =SUM(IF((D3:D64<>"洁牙")*(E3:E64<>"复诊"),1/COUNTIFS(B3:B64,B3:B64,C3:C64,C3:C64,D3:D64,"<>洁牙",E3:E64,"<>复诊")))-COUNTIFS(C3:C64,C3:C64,D3:D64,D3:D64)
复制代码


TA的精华主题

TA的得分主题

 楼主| 发表于 2018-2-8 08:49 | 显示全部楼层
丢丢表格 发表于 2018-2-7 16:51
。             ...

哈哈 别这样嘛 我觉得我也是取了个巧
这个算法还是有很多漏洞
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 07:35 , Processed in 0.047811 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表