Отфильтровывание первых X непустых ячеек в каждой строке матрицы

#google-sheets

#google-sheets #vlookup #транспонирование #расплющить #google-query-language

Вопрос:

Я пытаюсь добавить немного QOL к обслуживанию моей электронной таблицы, заменив длинный список векторных формул всего несколькими матричными формулами. Вычислить среднее значение с помощью MMULT довольно просто. Однако у меня есть список результатов турниров, который насчитывает более 3 лет, и поэтому еще одна вещь, которую я вычисляю, — это среднее значение каждого игрока за последние 8 турниров, в которых они участвовали.

Хотя мне в конечном итоге удалось найти первые 8 непустых записей каждой строки по отдельности, я понятия не имею, как я мог бы сделать это для всех из них сразу в одной формуле. Если у кого-то есть идея, я был бы признателен. Или, если кто-то может сказать мне, чтобы я не тратил свое время на это, это тоже хорошо.

Вот таблица, о которой идет речь, но пока нет попыток сделать это: https://docs.google.com/spreadsheets/d/1beVUaOaZtWyFAQ-NsgK1SJjo02av2IANU87vS-yOKM0/edit?usp=sharing

Редактировать: Спасибо player0, ответ сделал именно то, на что я надеялся. Я постараюсь в конечном итоге понять, что происходит в этой формуле.

Ответ №1:

использовать в C2:

 =ARRAYFORMULA(IFNA(VLOOKUP(A2:A; QUERY({Results!A5:A127 
 ARRAY_CONSTRAIN(SPLIT(TRANSPOSE(QUERY(SORT(TRANSPOSE(
 IF(NOT(ISBLANK(Results!B5:DN127)); 
 (Results!B5:DN127-1)/(Results!B4:DN4-1); )); 
 TRANSPOSE(Results!B3:DN3); 0);;9^9)); " ");9^9; 8)}; 
 "select Col1,(Col2 Col3 Col4 Col5 Col6 Col7 Col8 Col9)/8*4 1 
  where Col9 is not null"); 2; 0)))
 

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