答案1
最简单的解决方案是针对第一种情况,即使用辅助列的情况B
:
输入以下公式G4
并按 ctrl-enter/复制粘贴/填充列:
=IF(B4="","",SUM(INDEX(E$3:E4,1+IFERROR(MATCH(1,B$3:B3,1),1)):E4))
注意,OR(ROW()=ROW(B$3)+1,…)
需要该部分,以避免列的第一个单元格(单元格)出现错误G4
。
第二种情况的公式稍微复杂一些:
输入以下公式G4
并按 ctrl-enter/复制粘贴/填充列:
=IF(A4-INT(A4)<>0.5,"",SUM(INDEX(E:E,1+LARGE(INDEX((A$3:A3-INT(A$3:A3)=0.5)*(ROW(A$3:A3)),),1)):E4))
答案2
方法 1:使用条件格式(无辅助列)
在G5中输入,并向下复制到G6:G18
=IF(B4=1, E4, G4+E4) <-- for the easy scenario =IF(MOD(A4, 1)=0.5, E4, G4+E4) <-- for the complicated scenario
-
- 亮点 G5:G18
- 主页 > 条件格式 > 新规则
- 使用公式确定单元格格式
- 公式:
=B5<>1
- 格式:字体颜色 = 白色(隐藏不必要的值)
方法 2:使用辅助列
在H5中输入,并向下复制到H6:H18
=IF(B4=1, E4, H4+E4) <-- for the easy scenario =IF(MOD(A4, 1)=0.5, E4, H4+E4) <-- for the complicated scenario
在G5中输入,并向下复制到G6:G18
=IF(B5=1, H5, "")
由于日期/时间在 Excel 中以十进制值存储,
20/06/2018 00:00:00
=43271
20/06/2018 12:00:00
=43271.5
我们可以用它MOD
来检查时间是否是12:00。