使用Excel对满足特定条件的单元格范围求和

使用Excel对满足特定条件的单元格范围求和,excel,if-statement,do-while,Excel,If Statement,Do While,这里有一个更好的更新。我已经包括了一个屏幕截图,说明了我正在尝试做什么。我正在尝试编写一个自动执行此操作的函数,而不是手动执行所有操作 我有一个Excel表格,其中包含6568行数据。对于其中一列,E,我试图为流速降至5以下的所有时间创建小计。我已经包括了一个截图作为例子 我要做的是创建一个函数,扫描整个列E,并对列E的值小于5时的时间(列a)进行汇总 我以为我可以在IF语句中这样做,但我不认为这是最好的方法。也许是“SUMIF”,但我认为这也不对。这是否更适合VBA 这是我开始的: IF(

这里有一个更好的更新。我已经包括了一个屏幕截图,说明了我正在尝试做什么。我正在尝试编写一个自动执行此操作的函数,而不是手动执行所有操作


我有一个Excel表格,其中包含6568行数据。对于其中一列,E,我试图为流速降至5以下的所有时间创建小计。我已经包括了一个截图作为例子

我要做的是创建一个函数,扫描整个列E,并对列E的值小于5时的时间(列a)进行汇总

我以为我可以在IF语句中这样做,但我不认为这是最好的方法。也许是“SUMIF”,但我认为这也不对。这是否更适合VBA

这是我开始的:

IF(E2270<5, IF(E2271<5), blah blah blah)
IF(e2270)以下是我认为您需要的:

两列: 列C小于5?

=IF(B2<=5, C1+1, 0)
=IF(AND(C2>0, C3=0), 1, 0) 
这只是一个简单的布尔值,如果这是一个周期的结束,那么我们应该进行计算

流量的列和

=IF(D2=1, SUM(OFFSET(B2, -1*(C2-1), 0, C2, 1)), "")
=IF(D2=1, A2-OFFSET(A2, -1*(C2-1), 0), "")
如果这是周期的结束,则将当前时间段到周期开始的流量相加。我们通过执行
列C的范围来完成此操作。从最上面的最小值到当前值,行数小于5行,列数为1

列F.流动时间

=IF(D2=1, SUM(OFFSET(B2, -1*(C2-1), 0, C2, 1)), "")
=IF(D2=1, A2-OFFSET(A2, -1*(C2-1), 0), "")
这类似于列E。如果时间间隔一致,则可以将时间间隔乘以
列C
,而不是相减


您现在可以隐藏
列C
列D
,因为它们不需要显示。

我不确定您要求和什么。是列E中显示的数字,还是要计算列E小于5的次数?您尝试过类似于=COUNTIF(E:E,“我需要求和的是时间。因此,我需要得到流速低于5的时间段,并报告其低于5的时间段。这更有意义吗?类似这样的内容:“火炬在以下时间未运行:10:25到11:25的一小时,13:02到13:06的4分钟”,诸如此类。有一点。在你的截图中包括标题会更有帮助。a列不是时间,所以我认为你不能求和。而且,求和时间似乎也没有太大帮助。你想把两个时间点的差相加吗?比如如果E2270小于5,计算C2270和F22之间的时间差70.是的,我在这里查找时间范围。因此,我需要报告火炬未运行的所有时间(为简单起见,我们说的是流量低于5时)以及flare未运行的每个时间帧的持续时间。我返回并包含了一个带有标题的屏幕截图。好的。越来越近。让我们关注您的第二个屏幕截图。从第2行开始(即0)。下一次数据为5或更大的时间是第28行。那么您想知道F2和F28之间的差异吗?计算结果是0.036111天,应该转换为更有用的时间,如分钟…并在整个范围内进行此操作,同时将时间计算加起来。是这样吗,还是我完全忽略了这一点?