#google-sheets #google-sheets-formula #average #array-formulas
#google-sheets #google-sheets-формула #среднее #массив-формулы
Вопрос:
Эта формула дает один средний результат из всего диапазона, также не является динамическим.
=AVERAGE(FILTER($B:$E,ARRAYFORMULA(ROW($B:$E)>COUNT($B:$E))))
Что мне нужно из формулы, так это:
- Вычислите 1 средний результат для каждой строки, начиная со второй строки вниз.
- Считайте только первые 4 ячейки со значениями в строке, игнорируя пустые ячейки.
Комментарии:
1. Пожалуйста, помните в будущем, что совместное использование образца листа в дополнение к изображению избавляет людей от необходимости повторно вводить ваши данные, чтобы протестировать свое решение. Спасибо.
2. @kirkg13: можете ли вы показать нам ожидаемый результат? Просто чтобы убедиться, что мы правильно поняли…
Ответ №1:
Более простой вариант, необходимо скопировать вниз:
=AVERAGE(ARRAY_CONSTRAIN((FILTER(C2:2,ISNUMBER(C2:2))),1,4))
Ответ №2:
использовать в B4:
=query(transpose(query(transpose(C4:H),
"select "amp;textjoin(",", 1, ArrayFormula(if(len(A4:A),
"avg(Col"amp;ROW(A4:A)-ROW(A4) 1amp;")", )))amp;"")),
"select Col2")
Комментарии:
1. В некоторых случаях обнаружена проблема с вашей формулой. Если в столбце A есть значение, но его нет в той же строке, начиная с C, то формула не работает. Добавлен демонстрационный лист. Дайте мне знать, если вы считаете, что лучше открыть новый вопрос, чтобы продолжить обсуждение frmula.
2. Исправлена ошибка @Preack. посмотрите свой лист
3. Вы — взрывной босс.
Ответ №3:
Это работает для вас? Попробуйте эту формулу в B4 и перетащите вниз.
=TRANSPOSE(QUERY(
QUERY({TRANSPOSE(C4:H4)},"select Col1 where Col1 >0 limit 4",0),
"select sum(Col1)/count(Col1) where Col1>0 label sum(Col1)/count(Col1) ''",0))
Сообщите нам о любых проблемах.
Я добавлю некоторые пояснения, если это сработает.