У меня есть 2 таблицы: Список рейтингов - A1: A8; Поиск по рейтингу - C1:D6.
Я хотел бы рассчитать средний рейтинг таблицы рейтингов на основе значения рейтинга в таблице поиска рейтингов.
Я мог бы сделать это, создав дополнительный столбец в таблице рейтингов, выполняя поиск в таблице поиска рейтингов, но я хотел бы знать, есть ли способ автоматически вычислить среднее значение без добавления какого-либо дополнительного столбца.
Попробуйте это в G2
:
=SUMPRODUCT((C2:C6=TRANSPOSE(A2:A8))*(D2:D6))/8
Если у вас есть Excel O365:
=SUM(VLOOKUP(A2:A8,C2:D6,2,0))/8
Понятно, что семь. Просчитались =). Рад, что это работает @Wryfyng. Посмотрите и на другой ответ. Это (по крайней мере для меня) более правильно из-за меньшего количества вычислений.
MATCH
вернет массив, если lookup_value
является массивом. Итак, вы можете попробовать:
=AVERAGE(INDEX(Ratings_Lookup,MATCH(Ratings_List,Ratings_Lookup[Level],0),2))
Вот пример MATCH
возврата массива в версии Excel с динамическими массивами. Это в O365:
Привет, спасибо за ваш ответ. К сожалению, ввод массива в значение поиска для Match у меня не работает. Результат не является желаемым, и с формулой оценки я вижу, что он получает только первое значение массива. Проверил ссылку на функцию сопоставления в support.microsoft, и в ней не говорится, что искомое значение может быть массивом. «Аргумент искомое_значение может быть значением (числом, текстом или логическим значением) или ссылкой на ячейку для числа, текста, или логическое значение».
@Wryfyng Очевидно, судя по ответу на скриншоте, здесь все работает. Вы пытались ввести его с помощью ctrl+shift+enter
? Какая версия Экселя?
Microsoft Excel 2016 (16.0.5095.1000). И да, я пробовал как обычную формулу, так и формулу массива.
@Wryfyng Я отредактировал свой пост, чтобы показать, что MATCH
возвращает массив. Возможно это только в O365 а не в 2016.
Первый работает, заменив 8 на 7, спасибо. Использование COUNTA (Ratings_List) вместо ручного ввода количества значений дает мне решение, которое я хотел. Большое спасибо. {=SUMPRODUCT((Rating_Lookup[Level]=TRANSPOSE(Rating_List[Ratings]))*(Rating_Lookup[Rating]))/COUNTA(Rating_List[Ratings])}