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