Следующее будет работать, если вы настроите формулы в столбцах так, чтобы они обрабатывали столько экземпляров 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.