ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 搜遍了全网都没有,countifs怎么进行多列or逻辑运算?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-2-23 22:56 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 mochen91 于 2024-2-23 22:59 编辑

Snipaste_2024-02-23_22-42-01.jpg
如图,想实现的效果:
一、统计有效条目数,B列、C列、E列有一个不为空就是有效条目,D列、G列是忽略不计的。
二、当选中或编辑F列的单元格时,使本行的E列和G列高亮。


关于第一个问题在提问前的尝试:

1、首先想到的是countifs+OR,但搜索了几次都没找到方法,网上都是and逻辑的,没有or逻辑的。最接近的是一篇老外的文章,但也是单区域多条件进行的or逻辑运算,多区域相同条件的一篇都没有。
文章地址:https://statorials.org/cn/excel%e8%ae%a1%e7%ae%97%e5%a4%9a%e5%88%97%e7%9a%84%e6%95%b0%e9%87%8f/
2、其次是sumproduct,同样网上都是and逻辑的,没有or逻辑的。

最后无奈只能添加辅助数据,用countif分别进行计算,然后用large选出最大的那个作为最终结果。

关于第二个问题
目前止步于cell("address")获取活动单元格地址,卡在了用row()作比较。目前只能F列所在行被选中时高亮,无法精确到F列。

excel新手,已将附件上传,要是能看到详细的公式说明就太好了,谢谢!

Excel countif求助.zip

11.29 KB, 下载次数: 20

TA的精华主题

TA的得分主题

发表于 2024-2-24 00:20 | 显示全部楼层
  1. =LET(
  2.     b, B3:B25,
  3.     c, C3:C25,
  4.     e, E3:E25,
  5.     SUM(
  6.         N(
  7.             (b <> "") + (c <> "") + (e <> "") > 0
  8.         )
  9.     )
  10. )
复制代码

TA的精华主题

TA的得分主题

发表于 2024-2-24 04:58 | 显示全部楼层
=COUNT(0/((B3:B25<>"")+(C3:C25<>"")+(E3:E25<>"")))

TA的精华主题

TA的得分主题

发表于 2024-2-24 10:21 | 显示全部楼层
对于你自己的答案是17,但考虑到现实意义,我感觉19更合理些,当然可能你有其他的特殊考量。
=COUNT(0/(MMULT((B3:E25<>"")*{1,1,0,1},{1;1;1;1})>=1))
啸海老师的>1,我改为>=1,结果也是19

TA的精华主题

TA的得分主题

发表于 2024-2-23 23:09 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-2-23 23:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
sumproduct的or逻辑是+,你确定全网都没有?

TA的精华主题

TA的得分主题

发表于 2024-2-23 23:35 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
="有效条目数为:"&SUM(N(B:B&C:C&E:E<>""))

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-2-23 23:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
=COUNT(0/(MMULT((B3:E25<>"")*{1,1,0,1},{1;1;1;1})>1))

TA的精华主题

TA的得分主题

发表于 2024-2-24 00:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
一、统计有效条目数,B列、C列、E列有一个不为空就是有效条目
最后无奈只能添加辅助数据,用countif分别进行计算,然后用large选出最大的那个作为最终结果。
这两个逻辑并不匹配。下面截图的例子,按你第一个说法是 7 条有效,按你第二个说法是 5 条有效。

image.png

TA的精华主题

TA的得分主题

发表于 2024-2-24 09:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 我的城市你来过 于 2024-2-26 19:36 编辑

姓名名称AND计算=MAX(SUBTOTAL(3,OFFSET($B$2:$B$25,,{0,1,3}))-1)

姓名名称OR计算=SUM(IF(B3:B25&$C$3:$C$25<>"",ROW($E$3:$E$25)^0,""))

image.png


您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-19 04:41 , Processed in 0.034600 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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