![Excel:如果另一列中有非零值,则对某一范围的单元格求和](https://linux22.com/image/1514577/Excel%EF%BC%9A%E5%A6%82%E6%9E%9C%E5%8F%A6%E4%B8%80%E5%88%97%E4%B8%AD%E6%9C%89%E9%9D%9E%E9%9B%B6%E5%80%BC%EF%BC%8C%E5%88%99%E5%AF%B9%E6%9F%90%E4%B8%80%E8%8C%83%E5%9B%B4%E7%9A%84%E5%8D%95%E5%85%83%E6%A0%BC%E6%B1%82%E5%92%8C.png)
我有一张如下的电子表格:
ID time Episode mints
1 5:00PM 0
1 6:00PM 1 10
1 6:10PM 0
1 6:30PM 0
2 1:00AM 0
2 2:00AM 1 60
2 3:00AM 0
2 1:00AM 2 30
2 1:10AM 3
2 1:20AM 4
2 1:30AM 0
我想计算行具有第一个非零值与行达到第一个 0 之间的时间差。例如,在 ID1 中,持续时间为下午 6:10 - 下午 6:00,即 10 分钟。
我不知怎的觉得我应该使用 match() 和 index() 函数但经过几次尝试后,我还是没有成功。
答案1
如果您说一行中永远不会有超过 2-4 个非 0 数字,那么一系列嵌套的 if 或余数可能会在这里发挥作用。基本上,您会问“我有一个非 0 数字吗?(=if(A1=0,True,False)。如果它是 0,您不必在意,继续。(True ="")。如果不是 0,请查找下一个数字,检查它是否为 0。(=if(B1=0,true, false)。如果是 0,太好了!True=(B2-A2)。否则,重复,但使用 C1 而不是 B1。嵌套几个 if,您就会得到一个笨重的、有条件的、可行的解决方案。
还有更好的解决方案,我只是无法立即想到一个。