到目前为止,我使用Excel的公式管理得很好,所以我可能不需要VBA来解决这个问题。
我想根据列O中的时间在列V中创建时间跨度。时间跨度为:00-05,05-07,07-09,09-15,15-18和18-00。到目前为止,我一直在使用公式(第25行的例子):
=IF([@Old]="","",IF([@Old]*24<5,"00-05",IF([@Old]*24<7,"05-07",IF([@Old]*24<9,"07-09",IF([@Old]*24<15,"09-15",IF([@Old]*24<18,"15-18","18-00"))))))
但我希望时间跨度也以M列为条件,因此fx第41行到第42行的时间跨度仍应为05-07,因为它们位于05-07开始的批处理中(行31)。我已经上传了下图中的结果。我还有一个列来计算批次的开始和结束(从1开始向上)。这可能有助于解决问题,但我不知道如何扩展条件if语句。
答案 0 :(得分:1)
尝试这个(这可以从单元格F2开始,因为正在检查其他行 - 在这种情况下是M1和R1,它们没有简单的参考方式):
=IF([@batch]<>M1,IF([@Old]="","",IF([@Old]*24<5,"00-05",IF([@Old]*24<7,"05-07",IF([@Old]*24<9,"07-09",IF([@Old]*24<15,"09-15",IF([@Old]*24<18,"15-18","18-00")))))),V1)
基本上我添加了额外的if以检查它是否是新批次。
IF([@batch]<>M1,(do the long calculation), (use the same value as above))