ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求助SUMIFS根据指定单元格非标准格式日期多条件计算求和

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-11-23 17:06 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

image.jpg
上图F2位模拟计算结果;
image.jpg

image.jpg

上2图为模拟数据,要求根据表Sheet2中B列或C列日期计算包含开始和结束日期,且模拟数据BJ列中三种情况已到账、已扣款未到账、已扣款待结算这3种情况对应产品货款金额,难点在于日期,要求模拟数据BS列日期大于或等于B列开始日期,小于或等于C列结束日期,不想每次手工输入日期,希望根据B列或C列下拉框内的日期自动计算,求论坛给为老师和朋友帮助指导
顺祝各位论坛老师和朋友还有版主23年全年幸福大吉,健康平安!
详见附件要求2007可以解决,最好通过函数,越简单易懂越好!再次致谢!

















image.jpg

20231123问题.zip

218.65 KB, 下载次数: 14

TA的精华主题

TA的得分主题

发表于 2023-11-23 19:12 | 显示全部楼层
  1. =SUM(模拟数据!$K$2:$K$999*(模拟数据!$D$2:$D$999=F$1)*(--模拟数据!$BS$2:$BS$999>=DATE(2023,11,$B2))*(--模拟数据!$BS$2:$BS$999<=DATE(2023,11,$C2))*MMULT(N(模拟数据!$BJ$2:$BJ$999={"已到账","已扣款待结算","已扣款未到账"}),{1;1;1}))
复制代码


数组公式,三键结束(签名)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-11-24 08:30 | 显示全部楼层
把模拟数据的BS列转成标准的日期格式:

=SUM(SUMIFS(模拟数据!$K:$K,模拟数据!$D:$D,F$1,模拟数据!$BS:$BS,">="&DATE($AB$2,$AC$2,$B2),模拟数据!$BS:$BS,"<="&DATE($AB$2,$AC$2,$C2),模拟数据!$BJ:$BJ,{"已到账","已扣款待结算","已扣款未到账"}))/10000

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-11-24 08:31 | 显示全部楼层
高个子 发表于 2023-11-23 19:12
数组公式,三键结束(签名)

可能我的要求没有表述清楚,本意只想针对本月模拟数据的BS列的日期进行筛选求和,如果换了一个月份或年度,还是得手工替换月份和年度参数?而且您这也没有用到SUMIFS啊?有点类似SUMPRODUCT的用法,能优化一下吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-11-24 08:35 | 显示全部楼层
袁勇 发表于 2023-11-24 08:30
把模拟数据的BS列转成标准的日期格式:

=SUM(SUMIFS(模拟数据!$K:$K,模拟数据!$D:$D,F$1,模拟数据!$BS:$ ...

非常感谢袁勇老师,我就是卡在日期这一参数取值上,DATE函数这个思路和楼上的高个子老师有点类似,我当时设置了辅助列也就是这个考虑。再次感谢两位老师...

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-11-24 08:41 | 显示全部楼层
袁勇 发表于 2023-11-24 08:30
把模拟数据的BS列转成标准的日期格式:

=SUM(SUMIFS(模拟数据!$K:$K,模拟数据!$D:$D,F$1,模拟数据!$BS:$ ...

袁老师,怎么这个结果为0啊?您测试了结果吗?

TA的精华主题

TA的得分主题

发表于 2023-11-24 08:45 | 显示全部楼层
510437958 发表于 2023-11-24 08:35
非常感谢袁勇老师,我就是卡在日期这一参数取值上,DATE函数这个思路和楼上的高个子老师有点类似,我当时 ...

不改变日期格式:
  1. =SUMPRODUCT(SUMIFS(模拟数据!$K:$K,模拟数据!$D:$D,F$1,模拟数据!$BS:$BS,TEXT(ROW(INDIRECT(DATE($AB$2,$AC$2,$B2)&":"&DATE($AB$2,$AC$2,$C2))),"e-mm-dd"),模拟数据!$BJ:$BJ,{"已到账","已扣款待结算","已扣款未到账"}))/10000
复制代码

TA的精华主题

TA的得分主题

发表于 2023-11-24 08:47 | 显示全部楼层
510437958 发表于 2023-11-24 08:41
袁老师,怎么这个结果为0啊?您测试了结果吗?

先把模拟数据的BS列转成标准的日期格式。不想改变日期格式,按上面的公式。

TA的精华主题

TA的得分主题

发表于 2023-11-24 08:55 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-11-24 08:57 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
这个是先把模拟数据的BS列转成标准的日期格式后的公式:

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

本版积分规则

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

GMT+8, 2024-12-23 05:08 , Processed in 0.049090 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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