
Что я хотел бы сделать, так это
=AVERAGE(col(2)2:col(2):5, col(5)2:col(5):5,, col(9)2:col(9):5)
Как вы видите, вместо того, чтобы использовать B2
для ссылки на ячейку, я заменил B
на вымышленное число col(2)
, где число 2 = B
Это возможно?
Контекст, если он полезен:
У меня есть некоторые данные, которые выглядят примерно так (это результат опроса)
A B C D
1 ID Q1 Q2 Q3
2 1 3 1 2
3 2 4 5 4
В этом случае Q = вопрос, а число — оценка, данная за вопрос.
Я хочу вычислить среднее значение на основе определенных столбцов. В этом случае я хочу просто суммировать все столбцы B и D.
Я знаю, как это сделать с помощью average
, но я застрял на том, как мне захватить столбец по номеру! Как вы видите, B — это вопрос 1, C — вопрос 2, D — вопрос 3 (и так до AZ).
Я думал о добавлении дополнительной строки для представления вопроса
A B C D
1 1 2 3
2 ID Q1 Q2 Q3
3 1 3 1 2
4 2 4 5 4
И тогда, возможно, воспользуюсь match
, но я так запутался, что не стоит делиться здесь тем, что я попробовал.
решение1
Чтобы усреднить определенные столбцы по числу, можно использовать функцию INDEX
с аргументом массива для columns
.
например, в вашем примере:
=AVERAGE(INDEX($A2:$D2,1,{2,4}))
будет усреднять столбцы 2 и 4
Если номера столбцов случайны, вам придется жестко закодировать их, как я показываю, в константу массива; если же существует математическая связь, то для генерации массива номеров столбцов может быть удобнее использовать формулу.
Поскольку INDEX
возвращает только соответствующие столбцы, вы можете использовать любую функцию, которая принимает массив в качестве аргумента.
Ранееверсии Excel могут требовать другую формулу, поэтому сообщите, если этот подход вам не подходит, и сообщите, что именно он не делает (или сообщение об ошибке).