Средние значения Vlookup, если ячейка X соответствует ячейке Y на другом листе - PullRequest
0 голосов
/ 26 апреля 2019

Итак, вот моя проблема: - У меня есть 2 листа. (А и Б). - Матч 2 клеток 2 (SheetA! A и SheetB! A) - 6 столбцов в среднем (B-C-D-E-F-G)

SheetA! A1 и SheetB! A1 Если эти два совпадают, среднее значение должно быть для ячеек B1-C1-D1-E1-F1-G1).

У меня есть несколько тысяч строк на каждом листе. SheetA - это «Лист данных», где находятся все данные. А SheetB - это моя рабочая тетрадь, где будут все статистические данные.

Я попробовал эту функцию:

=AverageIf(SheetA!$A:$A;A2;SheetA!B:G)

Я тоже пытался

=average(index(SheetA!$B:$G;MATCH($A2;SheetA!$B:$G;0)))

Который, похоже, тоже не работает. Но я знаю, что, вероятно, сделал аррор с этой формулой.

Функция только дает мне значение в ячейке B, она не вычисляет среднее значение для 6 ячеек в одной строке. Text1 и Text5 - это тексты для сравнения с SheetB в SheetB

Сита

A       B   C   D   E   F   G

Text1   1   2   3   1   2   3
Text2   2   3   1   1   1   1
Text3   1   1   2   1   2   2
Text4   3   5   2   4   5   1
Text5   4   2   2   2   2   2

SheetB

Что бы я хотел на ЛистеB:

A       B
Text1   2
Text5   2.33

Формула, которую я показал Ранее, дает мне следующее, она не вычисляет среднее значение, а только получает первое значение:

A       B
Text1   1
Text5   4

Соответствует правой строке с Text1 из SheetA и SheetB.

1 Ответ

0 голосов
/ 26 апреля 2019

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

Данные в SheetA такие, начиная со строки 1 (это важно):

enter image description here

Моя формула находится в листе B в столбце B и выглядит следующим образом:

=AVERAGE(INDIRECT("SheetA!B"&MATCH(A1;SheetA!A:A;0)&":G"&MATCH(A1;SheetA!A:A;0)))

И я получаю это:

enter image description here

Как это работает:

  1. MATCH получит номер строки диапазона, который вы хотите усреднить (если найден, оф).Поскольку мои данные начинаются со строки 1, число, возвращаемое MATCH, хорошо.Если ваши данные не начинаются со строки 1, вам необходимо настроить их (+ 1, + 2, что вам нужно).
  2. INDIRECT вернет диапазон в той же строке, но между столбцами B и G из SheetA
  3. Наконец, AVERAGE получит среднее значение.

Нет обработки ошибок, если что-то не найдено, но если вам это нужно, просто добавьте что-то вроде IFERROR.

Кроме того, MATCH будет работать только в том случае, если соответствие точно на 100%.В вашем примере в SheetA у вас есть Text1, но в SheetB вы набрали Text 1, которые не равны.Убедитесь, что вы напечатали их правильно.

Надеюсь, вы сможете адаптировать это к вашим потребностям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...