我有一组从程序中导出的数据;其范围各不相同。例如,有时一列中有 9 个单元格,有时有 40 个单元格。导出到 Excel 时,列中的第一个单元格是我不需要的文本,最后一个填充单元格之后的列是我不需要的空白单元格。我如何找出最后一个填充单元格和第一个填充单元格之间的时间差?
导出时,每个单元格(不是第一个单元格或空白单元格)中的数据如下所示:4/25/2018 12:10:00 AM
。假设我使用的是“B”列,我尝试了以下公式:
=IF(B:B(ISNUMBER), (TEXT(MAX(B:B)-MIN(B:B), "hr:mm:ss")), "")
在我看来,这意味着“如果 B 中的单元格有一个数字,则最大和最小(最晚和最早)时间之间的差值将以小时:分钟:秒的形式出现,否则公式单元格将为空白。”
我究竟做错了什么?
答案1
最大的问题是MAX()
和MIN()
将忽略文本值和空白,因此您所需要的只是:
=MAX(B:B)-MIN(B:B)
要格式化结果,只需Format > Cells...
从菜单中选择并选择提供的类别之一。
如果将保存结果的单元格格式化为数字,您将看到一个十进制数,表示天数的差值。如果您为其指定自定义格式[h]:mm:ss
,它将以小时、分钟和秒为单位显示结果,即使小时数大于 24。
如果您指定 的格式hh:mm:ss
,它将显示小于 24 的小时数,并且不显示任何曾经(或可能曾经)存在的日子。没有“ hr
”的小时格式。
请参阅此参考资料以了解如何使用ISNUMBER()
。如果您正确地将其写为ISNUMBER(B:B)
,它将返回True/False
整个列的值数组。
我希望这个帮助能祝你好运。