#google-sheets #formula #google-sheets-formula
#google-таблицы #формула #google-таблицы-формула
Вопрос:
У меня есть данные таблицы Google, упорядоченные согласно скриншоту ниже, где я пытаюсь запросить диапазон от A1 до C, чтобы вернуть записи, произошедшие на предыдущей неделе (weeknum(now)-1)
И имеющие определенный статус, т.е. open
и closed
. Мне удалось написать аналогичный запрос только для одного столбца, специально для «B», который отлично работает:
=ArrayFormula(query({B2:B,if(len(B2:B),weeknum(B2:B),)}," select Col1 where Col2 = "amp;weeknum(now())amp;"",1))
Однако мне нужно что-то вроде этого
QUERY(A1:C, "Select B, C, D WHERE B = "amp;weeknum(now())-1amp;" "AND (C = 'Open' OR C = 'Closed'"),1)
т. е.
ВСЕ СОБЫТИЯ ЗА ПРЕДЫДУЩУЮ НЕДЕЛЮ; СО СТАТУСОМ ОТКРЫТО ИЛИ ЗАКРЫТО
хотя я знаю, что запрос не работает с WEEKNUM()
и, следовательно, вышеупомянутое, по-видимому, не работает.
Ответ №1:
Попробуйте и посмотрите, работает ли это:
(ОТРЕДАКТИРОВАНО)
={B1:D1; ArrayFormula(query({B2:D,if(len(B2:B),weeknum(B2:B),)}, "Select Col1, Col2, Col3 where (Col2 = 'Open' OR Col2 = 'Closed') AND Col4 = "amp;weeknum(now())-1amp;"", 0))}
Альтернативным (и более простым) способом было бы использовать filter:
={B1:D1; filter(B:D, (C:C="Open") (C:C="Closed"), weeknum(B:B)=weeknum(today())-1)}
Комментарии:
1. Еще один вопрос, можете ли вы пояснить, почему у нас есть {B1: D1; перед функцией filter?
2. {} создает массив с B1: D1 в первой строке (таким образом, он в основном копирует заголовки) и фильтр под ним.