BradR Asked: 2024-02-01 23:56:46 +0800 CST2024-02-01 23:56:46 +0800 CST 2024-02-01 23:56:46 +0800 CST 计算一个月内范围内天数的有效方法 772 再会, 我正在制定一个时间表来确定发票在一个日历月中适用的天数。有些发票涵盖一个月,有些发票涵盖两个月,有些则涵盖多个月。我想出了一个丑陋的公式,但它有效,但想知道是否有更简单的方法可以完成这项工作。 在 Q4 单元中 =IF($N4<Q$2,0,(IF(年份($N4)=2022,0, IF(月份($L4)=Q$1,Q$3-$L4)) +IF(AND(Q$2> $L4,$N4>Q$3),Q$3-Q$2+1,(IF(AND(Q$2>$L4,Q$3>$N4,Q$2<$N4),$N4-Q$2+1, 0))))) 对于不太复杂的事情有什么建议吗?我正在使用 Office 365 谢谢, microsoft-excel 1 个回答 Voted Best Answer Mayukh Bhattacharya 2024-02-02T00:42:06+08:002024-02-02T00:42:06+08:00 尝试使用SUMPRODUCT()函数的方式进行一些操作: =SUMPRODUCT(N(TEXT(ROW(INDEX($A:$A,$L4+1):INDEX($A:$A,$N4)),"mmmm-yyyy")=TEXT(Q$2,"mmmm-yyyy"))) 或者,如果您想包含第三行中该月的最后一天,请使用以下命令: =IFERROR( ROWS( INDEX($A:$A, $L4 + 1): INDEX($A:$A, $N4) INDEX($A:$A, Q$2): INDEX( $A:$A, Q$3 ) ), 0 ) 或者,只需使用MAX()&MIN() =MAX(0,MIN($N4,Q$3)+1-MAX($L4+1,Q$2)) 上面的公式需要向下填写,向右填写! 使用MAKEARRAY()一个可以一次性溢出整个输出: =LET( _Start, L4:L6, _End, N4:N6, _StartM, Q2:AB2, _EndM, Q3:AB3, _Rows, ROWS(_Start), _Columns, COLUMNS(_StartM), MAKEARRAY(_Rows,_Columns,LAMBDA(r,c, MAX(0,MIN(INDEX(_End,r),INDEX(_EndM,c))+1-MAX(INDEX(_Start,r)+1,INDEX(_StartM,c))))))
尝试使用
SUMPRODUCT()
函数的方式进行一些操作:或者,如果您想包含第三行中该月的最后一天,请使用以下命令:
或者,只需使用
MAX()
&MIN()
上面的公式需要向下填写,向右填写!
使用
MAKEARRAY()
一个可以一次性溢出整个输出: