Выберите «Описание времени» на основе текущей даты и времени в Google Sheets (VLookup, Query) - PullRequest
2 голосов
/ 14 января 2020

Я пытаюсь использовать VLookup или QUERY для извлечения описания дня и времени на основе текущей даты и времени. Я подумал, что QUERY может быть лучшим здесь, но VLOOKUP кажется лучшим решением, возможно.

Можно ли извлечь дату из диапазона дат и времени? Описания могут часто меняться, поэтому их нельзя жестко закодировать в формулу.

Вот лист Google, который также можно скопировать. https://docs.google.com/spreadsheets/d/1efQo1t9FJbItYdf1OQJ4vzeG1bUaQ1R0vbFGsgIjzOI/edit?usp=sharing

Это была текущая формула, которая, как я надеялся, извлечет правильное описание даты и временного интервала

=ARRAYFORMULA(IFERROR(TEXT(A2:A, "dddd ")&VLOOKUP(TIMEVALUE(A2:A), {
 TIMEVALUE(IFERROR(REGEXEXTRACT(TimeDescription!A2:A, "(.*) -"))), TimeDescription!B2:B}, 2, 1)))

Ответы [ 2 ]

3 голосов
/ 14 января 2020

на основе ваших временных данных c попробуйте:

=ARRAYFORMULA(IFERROR(TEXT(A2:A, "dddd ")&VLOOKUP(TIMEVALUE(A2:A), {
 TIMEVALUE("00:00"), "Evening";
 TIMEVALUE("07:00"), "Breakfast";
 TIMEVALUE("09:00"), "Morning";
 TIMEVALUE("16:00"), "Daytime";
 TIMEVALUE("20:00"), "Evening"}, 2, 1)))

0


для использования без жестко заданных ссылок:

=ARRAYFORMULA(IFERROR(TEXT(A2:A, "dddd ")&VLOOKUP(TIMEVALUE(A2:A), 
 SORT({TIMEVALUE(REGEXEXTRACT(TimeDescription!A2:A, "(.*) -")), 
 TimeDescription!B2:B}, 1, 1), 2, 1)))

enter image description here

0

демонстрация электронной таблицы

0 голосов
/ 14 января 2020

Если у вас есть = NOW () в A2, эта формула должна работать без каких-либо дополнительных вкладок или описаний ...

Извинения, я изначально пропустил необходимость дня недели. Это должно работать. Опять же, просто с NOW () в A2 и больше ничего на листе.

=ARRAYFORMULA(JOIN(" ",VLOOKUP(MOD(A2,{7,1}),SORT({{{7;9;16;20}/24;SEQUENCE(7,1,0)},{"Breakfast";"Morning";"Daytime";"Evening";TEXT(SEQUENCE(7,1,0),"dddd")}}),2)))
...