Запрос данных по диапазону недель и значению строки

#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 в первой строке (таким образом, он в основном копирует заголовки) и фильтр под ним.