我有一个参考时间表TimeTable
和另一个数据表Datatable
,如图所示。
我正在尝试使用以下代码将Ref_Time
作为DataTable
中的自定义列。作为解决方法,我在这里将时间硬编码。我该如何消除这一点。考虑到TimeTable
中的行数可能会有所不同。
Ref_Time = IF(
TIMEVALUE(DataTable[endTime]) >= TIMEVALUE("5:35:00 AM") , "6:00:00 AM",
IF(
TIMEVALUE(DataTable[endTime]) >= TIMEVALUE("5:30:00 AM") && TIMEVALUE(DataTable[endTime]) < TIMEVALUE("5:35:00 AM"), "5:30:00 AM",
IF(
TIMEVALUE(DataTable[endTime]) >= TIMEVALUE("5:25:00 AM") && TIMEVALUE(DataTable[endTime]) < TIMEVALUE("5:30:00 AM"), "5:25:00 AM",
IF(
TIMEVALUE(DataTable[endTime]) >= TIMEVALUE("5:20:00 AM") && TIMEVALUE(DataTable[endTime]) < TIMEVALUE("5:25:00 AM"), "5:20:00 AM",
IF(
TIMEVALUE(DataTable[endTime]) >= TIMEVALUE("5:15:00 AM") && TIMEVALUE(DataTable[endTime]) < TIMEVALUE("5:20:00 AM"), "5:15:00 AM",
IF(
TIMEVALUE(DataTable[endTime]) >= TIMEVALUE("5:10:00 AM") && TIMEVALUE(DataTable[endTime]) < TIMEVALUE("5:15:00 AM"), "5:10:00 AM",
IF(
TIMEVALUE(DataTable[endTime]) >= TIMEVALUE("5:05:00 AM") && TIMEVALUE(DataTable[endTime]) < TIMEVALUE("5:10:00 AM"), "5:05:00 AM",
IF(
TIMEVALUE(DataTable[endTime]) >= TIMEVALUE("5:00:00 AM") && TIMEVALUE(DataTable[endTime]) < TIMEVALUE("5:05:00 AM"), "5:00:00 AM",
IF(
TIMEVALUE(DataTable[endTime]) >= TIMEVALUE("4:55:00 AM") && TIMEVALUE(DataTable[endTime]) < TIMEVALUE("5:00:00 AM"), "4:55:00 AM",
IF(
TIMEVALUE(DataTable[endTime]) >= TIMEVALUE("2:00:00 AM") && TIMEVALUE(DataTable[endTime]) < TIMEVALUE("4:55:00 AM"), "2:00:00 AM",
IF(
TIMEVALUE(DataTable[endTime]) < TIMEVALUE("2:00:00 AM") , "1:00:00 AM"
)
)
)
)
)
)
)
)
)
)
)
答案 0 :(得分:0)
这应该更容易阅读,并且应该执行您需要的操作:
Ref_Time =
SWITCH (
TRUE (),
TIMEVALUE ( DataTable[endTime] ) >= TIMEVALUE ( "5:35:00 AM" ), "6:00:00 AM",
AND (
TIMEVALUE ( DataTable[endTime] ) >= TIMEVALUE ( "5:30:00 AM" ),
TIMEVALUE ( DataTable[endTime] ) < TIMEVALUE ( "5:35:00 AM" )
), "5:30:00 AM",
AND (
TIMEVALUE ( DataTable[endTime] ) >= TIMEVALUE ( "5:25:00 AM" ),
TIMEVALUE ( DataTable[endTime] ) < TIMEVALUE ( "5:30:00 AM" )
), "5:25:00 AM",
AND (
TIMEVALUE ( DataTable[endTime] ) >= TIMEVALUE ( "5:20:00 AM" ),
TIMEVALUE ( DataTable[endTime] ) < TIMEVALUE ( "5:25:00 AM" )
), "5:20:00 AM",
AND (
TIMEVALUE ( DataTable[endTime] ) >= TIMEVALUE ( "5:15:00 AM" ),
TIMEVALUE ( DataTable[endTime] ) < TIMEVALUE ( "5:20:00 AM" )
), "5:15:00 AM",
AND (
TIMEVALUE ( DataTable[endTime] ) >= TIMEVALUE ( "5:10:00 AM" ),
TIMEVALUE ( DataTable[endTime] ) < TIMEVALUE ( "5:15:00 AM" )
), "5:10:00 AM",
AND (
TIMEVALUE ( DataTable[endTime] ) >= TIMEVALUE ( "5:05:00 AM" ),
TIMEVALUE ( DataTable[endTime] ) < TIMEVALUE ( "5:10:00 AM" )
), "5:05:00 AM",
AND (
TIMEVALUE ( DataTable[endTime] ) >= TIMEVALUE ( "5:00:00 AM" ),
TIMEVALUE ( DataTable[endTime] ) < TIMEVALUE ( "5:05:00 AM" )
), "5:00:00 AM",
AND (
TIMEVALUE ( DataTable[endTime] ) >= TIMEVALUE ( "4:55:00 AM" ),
TIMEVALUE ( DataTable[endTime] ) < TIMEVALUE ( "5:00:00 AM" )
), "4:55:00 AM",
AND (
TIMEVALUE ( DataTable[endTime] ) >= TIMEVALUE ( "2:00:00 AM" ),
TIMEVALUE ( DataTable[endTime] ) < TIMEVALUE ( "4:55:00 AM" )
), "2:00:00 AM",
TIMEVALUE ( DataTable[endTime] ) < TIMEVALUE ( "2:00:00 AM" ), "1:00:00 AM"
)