2

У меня есть лист Excel с данными, отформатированными как ниже

  A        B
1 KEY      VALUE
2 Apple    Golden
3 Orange   Navel
4 Banana   Yellow
5 Apple    Granny Smith
6 Orange   Blood

Что я хочу сделать, это взять уникальные ключи, но распечатать их соответствующие значения горизонтально рядом с ними. У меня уже есть лист, который выглядит так:

  A        B
1 KEY      VALUE
2 Apple    Golden
3 Orange   Navel
4 Banana   Yellow

Но то, что я хотел бы, это:

  A        B        C
1 KEY      VALUE1   VALUE2
2 Apple    Golden   Granny Smith
3 Orange   Navel    Blood
4 Banana   Yellow

Моя формула сейчас {=INDEX('$B$2:$B$6,MATCH(<unique key>,$A$2:$A$6,0))} где "уникальный ключ" - это ссылка на ячейку на втором листе , Эта формула успешно печатает первое значение для каждого ключа, но я хотел бы, чтобы другие совпадения заполняли строку. Это возможно?

1 ответ1

1

Следующее будет работать, если вы настроите формулы в столбцах так, чтобы они обрабатывали столько экземпляров VALUE, сколько вы думаете. Поэтому вам нужно настроить формулы в столбцах VALUE.

Используйте формулу массива, которая включает условный IF() для проверки значения вашего ключа, затем функцию SMALL() для возврата n-й строки, соответствующей этому значению. Это говорит о том, что для ключа APPLE значение встречается в строках 1 и 5 вашей таблицы. Затем используйте INDEX(), чтобы получить значение из этих строк.

На этой странице есть подробности с примером. Ваш пример будет работать горизонтально, а не вертикально, но в остальном это идентичная проблема. http://fiveminutelessons.com/learn-microsoft-excel/use-index-lookup-multiple-values-list#sthash.7XGIoc9N.dpbs

Единственная корректировка, которую я рекомендую, заключается в конце, когда вы добавляете IF(ISERROR() ... и т.д., Более короткий / простой способ сделать это - использовать функцию IFERROR(), так что вы не Я должен повторить вашу длинную формулу.

Например, если ваша таблица (исключая заголовки столбцов) была в A13:B17, тогда моя таблица результатов начиналась со значений KEY в E13:E15, поэтому «Apple» в E13, а затем первая формула в F13 (чтобы найти VALUE для первого вхождения 'Apple') будет (формула массива , поэтому Ctrl - Shft - Enter):

{= ЕСЛИОШИБКА (ИНДЕКС ($ A $ 13:$ B $ 17, МАЛЫЙ (ЕСЛИ ($ A $ 13:$ A $ 17 = $ Е13, СТРОКА ($ A $ 13:$ A $ 17)), СТРОКА (1:1))- 12 , 2), "")}

И результат будет "Золотой".

Тогда в G13 было бы то же самое, кроме ROW(2:2). H13 будет использовать ROW(3:3). И так далее для столько столбцов, сколько необходимо для покрытия максимально ожидаемого значения для любого КЛЮЧА.

Тогда строки ниже будут такими же, за исключением первого условного IF(), который проверяет значение KEY.

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