如何在SUMIFS公式中统计今日日期对应的到货商品数量
用SUMIFS统计今日到货商品数量的条件设置方法
嘿,这个需求很常见,核心就是得让公式忽略日期里的时间部分,只匹配「今日」这个日期维度。根据你的日期列是Excel可识别的日期值还是纯文本格式,分两种情况来设置条件:
情况1:日期列是Excel可识别的日期值(只是显示为25-01-18 9:20)
这种情况下,Excel其实把日期存储为带时间的序列值,只是用自定义格式展示成你看到的样子。要统计今日所有时间点的到货,最稳妥的是用「大于等于今日0点」和「小于明日0点」两个条件:
=SUMIFS(Sheet2!G1:G924, Sheet2!C1:C924, ">="&TODAY(), Sheet2!C1:C924, "<"&TODAY()+1)
- 把
Sheet2!C1:C924换成你实际的日期列范围 TODAY()返回今天的日期(默认不带时间,也就是00:00:00),TODAY()+1就是明天的00:00:00,这样就涵盖了今天从0点到23:59:59的所有记录
如果你想更直接地匹配日期部分,也可以用INT()函数提取日期的整数部分(去掉时间),不过需要用数组公式(旧版Excel要按Ctrl+Shift+Enter确认):
=SUMIFS(Sheet2!G1:G924, --INT(Sheet2!C1:C924), INT(TODAY()))
情况2:日期列是纯文本格式(Excel没识别为日期)
如果你的日期是纯文本(比如手动输入的字符串),那就需要提取文本里的日期部分,和今天的日期格式化后对比。用通配符*匹配后面的时间部分就行:
=SUMIFS(Sheet2!G1:G924, Sheet2!C1:C924, "="&TEXT(TODAY(), "dd-mm-yy")&"*")
TEXT(TODAY(), "dd-mm-yy")会把今天的日期转换成和你数据里一样的dd-mm-yy格式文本- 通配符
*会匹配日期后面的任意时间内容,只要开头是今日的日期就会被统计
额外注意事项
- 务必确认日期列的引用范围和求和列(G列)的范围行数一致,不然会统计错误
- 如果统计结果不对,先检查几个样本:用
ISNUMBER(Sheet2!C1)判断单元格是不是日期值;或者手动格式化一个今日的日期文本,看看和数据里的格式是否完全一致(比如有没有多余空格、分隔符是不是-)
内容的提问来源于stack exchange,提问作者Teo




