Excel/Calc文件上传下载后时间比较公式结果异常问题
问题原因
你当前公式用LEFT提取的小时数是文本格式,而非数值格式。Excel和LibreOffice Calc中,文本与数字比较时会把数字转成文本,再按字符顺序逐一对比——比如"10"和"8"比,第一个字符"1"的ASCII码小于"8",所以会判定"10"<"8"为真,就出现了10<8这种反常识的结果。上传下载文件的过程可能让单元格格式更明确地变为纯文本,彻底触发了这个逻辑错误。
修改方案
直接用Excel/LibreOffice内置的HOUR函数提取小时的数值,这样和数字比较就是标准的数值大小判断,不会出错。修改后的公式:
=IF(HOUR(R1C1)<8, "CLOSED", IF(HOUR(R1C1)>20, "CLOSED", R1C1))
如果你的单元格里的"10:00"是纯文本格式(不是软件自带的时间格式),可以先把它转成时间值再用HOUR函数,公式调整为:
=IF(HOUR(--R1C1)<8, "CLOSED", IF(HOUR(--R1C1)>20, "CLOSED", R1C1))
这里的--是把文本格式的时间转成软件可识别的时间序列值,再用HOUR提取小时数值。
内容的提问来源于stack exchange,提问作者ZolVas
相关产品推荐
相关产品推荐

