【发布时间】:2012-05-16 14:50:50
【问题描述】:
我有:
=SUMIF('Log'!A2:A139,MONTH('Log'!A2:A139)=1,'Log'!M2:M139)
“日志”表中的 A 列包含日期。如果月份是一月,我只想对日志表的 M 列中的值求和。
当前表达式一直返回0,我做错了吗?
【问题讨论】:
标签: excel date excel-formula
我有:
=SUMIF('Log'!A2:A139,MONTH('Log'!A2:A139)=1,'Log'!M2:M139)
“日志”表中的 A 列包含日期。如果月份是一月,我只想对日志表的 M 列中的值求和。
当前表达式一直返回0,我做错了吗?
【问题讨论】:
标签: excel date excel-formula
在第二个参数中,标准必须与第一个参数中的每个单元格相关联。所以,给MONTH() 一个范围不会有任何好处,它只是不断比较 A x 和 MONTH(A2) 并得到一个 FALSE。
有两种简单的解决方案:
使用 MONTH(A2) 创建一个临时列,例如 N,然后使用 那个 列:
=SUMIF('Log'!N2:N139,1,'Log'!M2:M139)
使用数组公式:
{=SUM('Log'!M2:M139 * IF(MONTH('Log'!A2:A139)=1,1,0))}
(数组公式输入时不使用文字 {},它们是使用 Shift-Enter 输入的,并且在 Excel 中只会出现在它们周围的 {}。)
【讨论】:
A2:A 这样表达范围。
当问到这个 Q 时可能不交,但 SUMIFS 现在可用,并且通过接受多个条件,一个 (>) 可以设置为 12 月底,一个 (<) 可以设置为 2 月初- 因此选择没有辅助列且没有潜在缓慢数组公式的一月。这不会合并不同年份的一月(但可以设置为这样做)。
【讨论】: