Выберите описание времени на основе текущей даты и времени в Google Таблицах (VLookup, Query)

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

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

Вот таблица Google, которую тоже можно скопировать.

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

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

person Gracie    schedule 13.01.2020    source источник
comment
Все станет намного проще, если на вкладке TimeDescription вы разделите столбец временных интервалов на два столбца: столбец начала и окончания времени. Вы можете это изменить? Также можете ли вы сделать лист (или его копию) редактируемым, чтобы мы могли протестировать / продемонстрировать некоторые идеи?   -  person MattKing    schedule 14.01.2020
comment
Связывать эту таблицу как есть бесполезно. использовать несколько жестко запрограммированных времен. Затем выделите в таблице, что не так и чего вы ожидаете. Я подозреваю, что только в определенное время дня ошибка электронной таблицы выйдет наружу! Вам нужно осветить, когда это произойдет!   -  person JGFMK    schedule 14.01.2020
comment
@MattKing У вас должна быть возможность перейти в File-Make a Copy   -  person Gracie    schedule 14.01.2020
comment
@ Грейси, действительно могу. Но если бы я делал это для каждого листа, которым помогаю людям, я бы забил свой Диск в течение нескольких дней. Если я сделаю копию и дам вам ответ на основе этой копии, я думаю, есть большая вероятность, что это не сработает на вашем настоящем листе. Но это то, что я сейчас сделаю. Думаю, я не вижу недостатков в том, чтобы сделать вашу таблицу общедоступной, если это просто копия. ты мог защитить оригинальную вкладку?   -  person MattKing    schedule 14.01.2020
comment
@MattKing Между прочим, все таблицы Google имеют меньший размер. у вас могут быть тысячи листов, и они будут занимать 0 МБ на вашем диске.   -  person player0    schedule 14.01.2020


Ответы (2)


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

=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)))

введите описание изображения здесь

0

демонстрационная таблица

person player0    schedule 13.01.2020
comment
Что здесь делает dddd? - person JGFMK; 14.01.2020
comment
@JGFMK выводит день недели с даты - person player0; 14.01.2020
comment
Есть ли способ или альтернативная формула для моих динамических и изменяемых описаний в рабочем листе? Таким образом, они не жестко запрограммированы в формуле, так как нам может потребоваться изменить и расширить с помощью ячеек рабочего листа. - person Gracie; 14.01.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)))
person MattKing    schedule 13.01.2020
comment
Его можно заставить работать с метками времени всего массива, а не перетаскивать его вниз, если это то, что вас интересует. - person MattKing; 14.01.2020