问题描述
我的公式应该返回 4 种不同的 文本值,具体取决于单元格中的时间值。
一切正常,但是每次我尝试让公式查看从23:00到05:00的时间,如果在完整公式中,它总是返回 False 或 #N/A。我尝试了 12 小时格式,但效果相同。
=IFS(
AND(TEXT(C18,"HH:MM")>="05:00",TEXT(C18,"HH:MM")<="10:59"),"SS",AND(TEXT(C18,"HH:MM")>="11:00","HH:MM")<="16:59"),"AA","HH:MM")>="17:00","HH:MM")<="22:59"),"MM","HH:MM")>="23:00","HH:MM")<="04:59"),"LL")
在此公式中,除了最后一行之外,一切都正确工作。返回的是 # N/A 而不是 LL。我不明白为什么会这样。
解决方法
试试:
=VLOOKUP(C18,{
0,"LL";
VALUE("5:00"),"SS";
VALUE("11:00"),"AA";
VALUE("17:00"),"MM";
VALUE("23:00"),"LL"},2,1)
或:
=VLOOKUP(TIMEVALUE(C18),{
TIMEVALUE("00:00"),"LL";
TIMEVALUE("05:00"),"SS";
TIMEVALUE("11:00"),"AA";
TIMEVALUE("17:00"),"MM";
TIMEVALUE("23:00"),1)
,
更新答案:
由于您覆盖了当天的完整时间范围,如果 IFS
的返回值为 NA
,则表示没有匹配。在这种情况下,返回 LL
:
=ifna(IFS(
AND(TEXT(C18,"HH:MM")>="05:00",TEXT(C18,"HH:MM")<="10:59"),"SS",AND(TEXT(C18,"HH:MM")>="11:00","HH:MM")<="16:59"),"AA","HH:MM")>="17:00","HH:MM")<="22:59"),"MM"),"LL")
,
试试:
=IFS(
(TEXT(C18,"HH:MM")>="05:00")*(TEXT(C18,(TEXT(C18,"HH:MM")>="11:00")*(TEXT(C18,"HH:MM")>="17:00")*(TEXT(C18,"MM",((TEXT(C18,"HH:MM")>="23:00")*(TEXT(C18,"HH:MM")<="23:59"))+
((TEXT(C18,"HH:MM")>="00:00")*(TEXT(C18,"HH:MM")<="04:59")),"LL")