3

У меня есть стол из примерно 5000 игроков с их возрастом и весом. У меня есть таблица уровней, где я создал максимальный вес для каждого возраста и назначил уровень. Массивы в таблице поиска называются «Возраст», «Вес» и «Уровень» соответственно. Приведенный вес является максимальным для этого возраста на этом уровне, если вес игрока превышает его, он должен перейти на следующий уровень. У меня есть таблица поиска ниже. Возраст игрока указан в столбце E, а вес - в столбце K.

Мне нужна помощь с функцией поиска, которая назначит уровень игроку.

    Max   
Age Weight  Level
7   110     A
8   105     A
9   65      A
8   150     B
9   120     B
10  115     B
11  75      B
10  175     C
11  130     C
12  125     C
13  85      C
11  175     D
12  135     D
13  130     D
14  100     D
12  180     E
13  185     E
14  300     E

Вот что я попробовал:

=INDEX(level,AND(MATCH(E2,age,0),MATCH(K2,weight,1)))

1 ответ1

1

Вы в основном пробуете VLOOKUP в двух измерениях. Есть несколько способов сделать это, вот простой:

  1. Добавьте столбец в таблицу поиска, где вы объедините возраст и вес, желательно с разделителем, чтобы получить 07-105 , 08-105 , 09-065 и так далее. (Сделайте обе части фиксированной ширины!)
  2. Используйте VLOOKUP () в этом столбце и найдите эквивалентную конкатенацию фактических данных.

Вам нужно будет отсортировать таблицу поиска по объединенному столбцу.

Если ваши данные имеют верхний предел, а не нижний, вам нужно объединить со значением следующей строки минус 1. Например, если вы делаете VLOOKUP("08-110", таблица, 2; FALSE) в этой таблице,

08-105 A 08-120 B 08-150 C

это даст вам A, но вы хотите B, поэтому вы объединяетесь со значением-1 следующей строки и получаете

08-119 A 08-149 B 08-999 C

Вы должны прочитать эту таблицу "до 119 включительно, используйте A"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .