使用 QUERY 或 VLOOKUP 查找当前日期和时间
Lookup Current Day and Time with QUERY or VLOOKUP
我目前根据当前时间拉入一些预约时间段now()
并从相邻的工作表中提取时间段。
我现在还想添加星期几作为参数。我是否需要做一些更高级的事情,比如 =query
或者我如何将其扩展到当前的 =vlookup
?
到目前为止,这是我使用 QUERY 和 VLOOKUP 得到的结果:
=query(TimeSlots!C2:F25, select 2,3,4,5 where Col1 = Live!A2 & where Col2 = Live!B2)
=vlookup(timevalue(B2), {iferror(value(regexextract(TimeSlots!B2:B, "(.+)\s-"))),TimeSlots!C2:F}, {2, 3, 4, 5}, 1))
https://docs.google.com/spreadsheets/d/1OOdLI-1j3d10LsfGdNPS4tOusx4AnRZvXzdgmrLvrSA/edit?usp=sharing
如果您想玩游戏并制作副本,here 链接。
我真诚地写这篇文章,以您的成功为中心;事情对你来说比他们需要的要困难一些,因为你打破了一些不成文的 spreadsheet 规范化规则。最突出的是,如果您希望在别处的公式中使用单元格,该单元格应采用表格原生格式。试试这个:
- Select 时间段列 B
- 从菜单中选择“插入”→“右侧列”
- 将 B 和 C 分别重命名为……"Time Slot Begin" 和 "Time Slot End"
- 编辑数据以在此新的拆分排列中重新创建您的范围(如果您想复制粘贴,请在下面包含)
- 有了统一的、本地可计算的数据源,您现在可以使用公式来获取工作日与 和 当前时间大于槽的开始时间并且当前时间小于槽的结束时间。
例如:
=FILTER( TimeSlots!A2:G29,
A = TimeSlots!A2:A29,
MOD(B,1) > TimeSlots!B2:B29,
MOD(B,1) < TimeSlots!C2:C29
)
逐行,用英语,它:将时隙列表缩小到
行
sheet 的日子与 TimeSlot 的日子相匹配,并且
这个sheet的时间晚于(大于)时间段的开始,并且
此 sheet 的时间早于(小于)时间段的结束。
请注意,NOW() 输出一个日期时间,其中您使用 "cosmetic" 格式 仅显示时间 。为了仅查看 B2 日期时间的实际时间部分,我将除以 1 天并保留剩余时间。
这里是前面提到的时间开始和结束的列,如果你想把它们粘贴到位的话。 B 列:
Time Slot Begin
07:00:00
09:00:00
16:00:00
20:00:00
07:00:00
09:00:00
16:00:00
20:00:00
07:00:00
09:00:00
16:00:00
20:00:00
07:00:00
09:00:00
16:00:00
20:00:00
07:00:00
09:00:00
16:00:00
20:00:00
07:00:00
09:00:00
16:00:00
20:00:00
07:00:00
09:00:00
16:00:00
20:00:00
和 C 列:
Time Slot End
08:59:00
15:59:00
19:59:00
06:59:00
08:59:00
15:59:00
19:59:00
06:59:00
08:59:00
15:59:00
19:59:00
06:59:00
08:59:00
15:59:00
19:59:00
06:59:00
08:59:00
15:59:00
19:59:00
06:59:00
08:59:00
15:59:00
19:59:00
06:59:00
08:59:00
15:59:00
19:59:00
06:59:00
我目前根据当前时间拉入一些预约时间段now()
并从相邻的工作表中提取时间段。
我现在还想添加星期几作为参数。我是否需要做一些更高级的事情,比如 =query
或者我如何将其扩展到当前的 =vlookup
?
到目前为止,这是我使用 QUERY 和 VLOOKUP 得到的结果:
=query(TimeSlots!C2:F25, select 2,3,4,5 where Col1 = Live!A2 & where Col2 = Live!B2)
=vlookup(timevalue(B2), {iferror(value(regexextract(TimeSlots!B2:B, "(.+)\s-"))),TimeSlots!C2:F}, {2, 3, 4, 5}, 1))
https://docs.google.com/spreadsheets/d/1OOdLI-1j3d10LsfGdNPS4tOusx4AnRZvXzdgmrLvrSA/edit?usp=sharing
如果您想玩游戏并制作副本,here 链接。
我真诚地写这篇文章,以您的成功为中心;事情对你来说比他们需要的要困难一些,因为你打破了一些不成文的 spreadsheet 规范化规则。最突出的是,如果您希望在别处的公式中使用单元格,该单元格应采用表格原生格式。试试这个:
- Select 时间段列 B
- 从菜单中选择“插入”→“右侧列”
- 将 B 和 C 分别重命名为……"Time Slot Begin" 和 "Time Slot End"
- 编辑数据以在此新的拆分排列中重新创建您的范围(如果您想复制粘贴,请在下面包含)
- 有了统一的、本地可计算的数据源,您现在可以使用公式来获取工作日与 和 当前时间大于槽的开始时间并且当前时间小于槽的结束时间。
例如:
=FILTER( TimeSlots!A2:G29,
A = TimeSlots!A2:A29,
MOD(B,1) > TimeSlots!B2:B29,
MOD(B,1) < TimeSlots!C2:C29
)
逐行,用英语,它:将时隙列表缩小到
行
sheet 的日子与 TimeSlot 的日子相匹配,并且
这个sheet的时间晚于(大于)时间段的开始,并且
此 sheet 的时间早于(小于)时间段的结束。
请注意,NOW() 输出一个日期时间,其中您使用 "cosmetic" 格式 仅显示时间 。为了仅查看 B2 日期时间的实际时间部分,我将除以 1 天并保留剩余时间。
这里是前面提到的时间开始和结束的列,如果你想把它们粘贴到位的话。 B 列:
Time Slot Begin
07:00:00
09:00:00
16:00:00
20:00:00
07:00:00
09:00:00
16:00:00
20:00:00
07:00:00
09:00:00
16:00:00
20:00:00
07:00:00
09:00:00
16:00:00
20:00:00
07:00:00
09:00:00
16:00:00
20:00:00
07:00:00
09:00:00
16:00:00
20:00:00
07:00:00
09:00:00
16:00:00
20:00:00
和 C 列:
Time Slot End
08:59:00
15:59:00
19:59:00
06:59:00
08:59:00
15:59:00
19:59:00
06:59:00
08:59:00
15:59:00
19:59:00
06:59:00
08:59:00
15:59:00
19:59:00
06:59:00
08:59:00
15:59:00
19:59:00
06:59:00
08:59:00
15:59:00
19:59:00
06:59:00
08:59:00
15:59:00
19:59:00
06:59:00