ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求教Excel公式多条件判断筛选的具体用法

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-12-14 03:00 | 显示全部楼层
penfrind 发表于 2024-12-13 16:23
此处的函数不应该是=IF(D11="","",AVERAGE(C6:C11)),求指教

楼主,平均值X你希望的计算公式是怎样的?谢谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-12-19 16:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
loirol 发表于 2024-12-11 07:48
if判断数值大小,roundup调整小数位数

麻烦大神指导一下,我这个公式哪里错了。IFS((E6/D6*100)<0.01,ROUNDUP(E6/D6*100,1),(and(E6/D6*100<1,E6/D6*100≥0.01),ROUNDUP(E6/D6*100,2)),(E6/D6*100)>1,ROUNDUP(E6/D6*100,3))

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-12-19 16:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
wp231957 发表于 2024-12-12 14:14
你这里只是发了一个空表   没有样本数据啊

我都上传了,麻烦指导一下

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-12-19 16:45 | 显示全部楼层
wp231957 发表于 2024-12-12 14:14
你这里只是发了一个空表   没有样本数据啊

我都上传了,麻烦指导一下

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-12-19 20:08 | 显示全部楼层
autohotey 发表于 2024-12-13 17:23
多条件用IFS,简单易懂

IFS((E6/D6*100)<0.01,ROUNDUP(E6/D6*100,1),(and(E6/D6*100<1,E6/D6*100≥0.01),ROUNDUP(E6/D6*100,2)),(E6/D6*100)>1,ROUNDUP(E6/D6*100,3))
大神,我这个公式错在哪里啊

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-12-19 20:12 | 显示全部楼层
sobili 发表于 2024-12-14 03:00
楼主,平均值X你希望的计算公式是怎样的?谢谢!

我觉得应该是=IF(D11="","",AVERAGE(C6:C11)),但是别人给我参考模板是=IF(C11="","",AVERAGE(C6:C11))

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-12-19 20:17 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
autohotey 发表于 2024-12-13 17:59
明天还没解决 可以给你看看,现在准备下班了

没有解决啊,大神,你看我的这个公式哪里有问题
IFS((E6/D6*100)<0.01,ROUNDUP(E6/D6*100,1),(and(E6/D6*100<1,E6/D6*100≥0.01),ROUNDUP(E6/D6*100,2)),(E6/D6*100)>1,ROUNDUP(E6/D6*100,3))

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-12-19 20:20 | 显示全部楼层
sobili 发表于 2024-12-14 02:57
楼主看下这是你要的结果吗?

IFS((E6/D6*100)<0.01,ROUNDUP(E6/D6*100,1),(and(E6/D6*100<1,E6/D6*100≥0.01),ROUNDUP(E6/D6*100,2)),(E6/D6*100)>1,ROUNDUP(E6/D6*100,3))
我的这个哪里错了啊,另外,我要套一个没有数据,单元格就是空白的,应该怎么 弄啊

TA的精华主题

TA的得分主题

发表于 2024-12-20 08:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 autohotey 于 2024-12-20 09:39 编辑

如果找不出错误点可以将公式拆解,或者用公式求值看哪一步错了。

看你确实不太懂,我给你详细讲解一遍。另外如果结果不符合需求,可以做一个效果表出来,即希望能达成什么效果,什么单元格输出什么内容。

错误:
1,大于且等于不是这么用的。应该是A>=B  ,  而不是A≥B
2,公式包含了中文括号。公式只识别英文括号。
3,and外边不需要加括号。即公式应该是 and(a<b,b>=c),而不是(and(a<b,b>=c))


其实你就三个判断情况:a<0.01,a>1, 0.01≤ a ≤ 1
思路分两步走:
1,先将3个判断情况写出来,分别输出一个结果(结果随便写,保证公式输出内容就行,例如我这边随便写的0,1,2)
可以看出我的公式是没有报错的 (图1) 。正常输出了1。

2,因此就可以进行第二步,将实际需要输出的内容(即保留有效位数),将测试的0,1,2给替换掉(图2)。我这里返回的结果取自你的公式ROUNDUP部分不过看你文字描述(当计算结果>1时)应该返回百分数才对,你这个返回的都是数值,这个你自己根据实际需求去改吧。
即公式为 F6=
  1. =IFS((E6/D6*100)<0.01,ROUNDUP(E6/D6*100,1),
  2. (E6/D6*100)>1,ROUNDUP(E6/D6*100,2),
  3. AND(E6/D6*100<1,E6/D6*100>=0.01),ROUNDUP(E6/D6*100,3))
复制代码

注意,因为F6是合并单元格,所以F6无法下拉,下拉会导致下边单元格也合并。因此F11只能单独再设置公式(简单,就是将单元格行号由6改成11即可)
即 F11=
  1. =IFS((E11/D11*100)<0.01,ROUNDUP(E11/D11*100,1),
  2. (E11/D11*100)>1,ROUNDUP(E11/D11*100,2),
  3. AND(E11/D11*100<1,E11/D11*100>=0.01),ROUNDUP(E11/D11*100,3))
复制代码

图1:

image.png


图2:

image.png






TA的精华主题

TA的得分主题

 楼主| 发表于 2024-12-20 15:12 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 penfrind 于 2024-12-20 15:15 编辑
autohotey 发表于 2024-12-20 08:54
如果找不出错误点可以将公式拆解,或者用公式求值看哪一步错了。

看你确实不太懂,我给你详细讲解一遍 ...

感谢大神的解惑,基本上搞弄了,不过看你文字描述(当计算结果>1时)应该返回百分数才对(这个怎么弄呢?3应该改为什么),IFS((E6/D6*100)<0.01,ROUNDUP(E6/D6*100,1),and(E6/D6*100<1,E6/D6*100>=0.01),ROUNDUP(E6/D6*100,2),(E6/D6*100)>1,ROUNDUP(E6/D6*100,3)),另外,我要在这个基础上套一个没有数据的话返回空白怎么弄啊,再次感谢你的热心帮助
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-25 02:45 , Processed in 0.046912 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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