ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求助多条件求和

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-11-12 16:27 | 显示全部楼层 |阅读模式
在价格预测里涉及到A、B区最小几个值求和。
我使用sumifs函数时,设置了必须属于A区,最小几个值(未定)的两重条件,但最后计算结果为0,不清楚是什么问题。
想请各位大佬解答,谢谢
image.png

湖北省公路项目ABCDE区间(学习).zip

40.05 KB, 下载次数: 13

TA的精华主题

TA的得分主题

发表于 2024-11-12 17:28 | 显示全部楼层
SUMIFS(D4:D13,E$4:E$13,K8,D4:D13,"<="&SMALL(D4:D13,L4)
红色那里你取了最小值了,你sum条件是要比最小值还要小的数字进行求和,那求和不就是为零了

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-11-12 17:30 | 显示全部楼层
lachenfei 发表于 2024-11-12 17:28
SUMIFS(D4:D13,E$4:E$13,K8,D4:D13,"

但我这里是取的D4:D13这个数列里最小的值,而且也是小于等于这个值再进一步求和,这里不应该等于0吧

TA的精华主题

TA的得分主题

发表于 2024-11-12 17:52 | 显示全部楼层
给我点时间 发表于 2024-11-12 17:30
但我这里是取的D4:D13这个数列里最小的值,而且也是小于等于这个值再进一步求和,这里不应该等于0吧

因为你取的是最小值,那这个最小值可能是C区的,那你A区的值都比它大,不就是为0咯

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-11-12 19:03 | 显示全部楼层
本帖最后由 给我点时间 于 2024-11-12 19:05 编辑

我后续对这个函数做了调整,把SUMIFS(D4:D13,E$4:E$13,K8,D4:D13,"<="&SMALL(D4:D13,L4)改为SUMIF(D4:D13,"<=" &SMALL((E4:E13=K8)*D4:D13,L4))。但我发现,当我把L4取1或2或3的时候,求和均为0;当我取4的时候,该公式又未区分A、B、C区,直接取了所有数据的最小的4个数的和。
现在有些百思不得其解,还请各位大佬帮我解惑,谢谢了。

我自己也SMALL((E4:E13=K8)*D4:D13,{1,2,3,4})这个公式去验证了下,发现最后数组取值为(0,0,0,A区最小值),现在更困惑了。
image.png

TA的精华主题

TA的得分主题

发表于 2024-11-12 22:47 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-11-13 08:29 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

参照您的公式,计算结果还是等于0,另外我用SMALL(IF(E4:E13=K8,D4:D13,),{1,2,3,4})进行数组计算,发现前3项还是等于0,第四项才是A区最小值,请问这是什么原因呢。
image.png

TA的精华主题

TA的得分主题

发表于 2024-11-13 08:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
A区的数值都大于最小值,所以没有符合条件的。所以是零

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-11-13 08:50 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
waternew 发表于 2024-11-13 08:43
A区的数值都大于最小值,所以没有符合条件的。所以是零

您好,我自己再用SMALL(IF(E4:E13=K8,D4:D13,),{1,2,3,4})或者SMALL((E4:E13=K8)*D4:D13,{1,2,3,4})进行数组计算验证时,发现前3项还是等于0,第四项才是A区最小值,请问这是什么原因呢。

TA的精华主题

TA的得分主题

发表于 2024-11-13 08:55 | 显示全部楼层
SMALL(FILTER(D4:D13,E4:E13=K8), L4)   改成这个。

SMALL((E4:E13=K8)*D4:D13,L4)  你这个里面的E4:E13=K8不等于的值是0(你的选取里面有3个不是A区),乘以D4:D13后还是为0,所以你最小的几个数据为0.
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-4 01:12 , Processed in 0.054546 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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