Я хочу сделать отчет: «выберите продавцов, у которых N последних кодов статуса = 2,3,4,5».
Структурный пример моих данных содержит 35 строк (включая 1 строку заголовка): ссылка. В этом файле есть поля Дата, Код продажи (идентификатор продавца), Код состояния (идентификатор успешности транзакции) и другие поля. которые не нужны для этой цели.
В итоге я использовал три формулы:
функция
QUERY
сIMPORTRANGE
.
В примере данных это немного проще - взять только коды продаж, код состояния и дату с другого листа, а затем упорядочить по дате и коду продаж. Формула в A9:=QUERY({Source!D1:E, Source!A1:A}, $B$4, 1)
дополнительный столбец с порядковой нумерацией. Формула в D10:
=ArrayFormula(if(len(A10:A), ROW(A10:A) - MATCH(A10:A,A10:A,0) - 8, ))
функция QUERY для извлечения только N случаев (скажем, 5). Формула в F9:
=QUERY(A9:D, "select A, B where D <="&B3, 1)
Есть ли способ объединить все 3 шага в один, чтобы получить результат, как в F10: G24, используя одну (и, надеюсь, быструю :)) формулу? Формула, которую я пробовал (расширена для удобства чтения):
=QUERY(
{
QUERY({Source!D1:E, Source!A1:A}, $B$4, 1),
ArrayFormula(
IF(len(J10:J),
ROW(J10:J) - MATCH(J10:J, J10:J, 0) - 8,
)
)
},
"select Col1, Col2 where Col4 <="&B3,
1
)
Это дает мне ошибку:
"Параметр 2 функции ARRAY_ROW имеет несоответствующий размер строки. Ожидаемый: 28. Фактический: 991."
Я также пробовал диапазоны конечных данных в ROW()
и MATCH()
, но это дает пустую таблицу. В исходной базе данных ~ 3500 строк, и они будут расширяться, поэтому я думаю, что мне следует придерживаться бесконечных диапазонов, чтобы автоматизировать извлечение данных.