Excel — существует ли функция, возвращающая число на основе того, какая строка находится в ячейке, как CHOOSE, но не как?

Excel — существует ли функция, возвращающая число на основе того, какая строка находится в ячейке, как CHOOSE, но не как?

Мне нужна функция =Func(A1, "Alex, "Betty", "Charlie"), которая возвращает индекс совпавшей записи. Если эту функцию поместить в B1:B13, она покажет

"Charlie"   3
"Alex"      1
"Alex"      1
"Alex"      1
"Charlie"   3
"Charlie"   3
"Betty"     2
"Charlie"   3
"Charlie"   3
"Betty"     2
"Betty"     2
"Betty"     2
"Alex"      1

На первый взгляд я думал, что CHOOSE сделает это, но он возвращает ссылку, основанную на целом числе, обратном тому, что мне нужно.

Есть ли какая-то существующая функция, которая делает это, которую я пропустил? Придется ли мне создавать более сложную функцию из чего-то вроде вложенных if или vlookup, или мне придется писать функцию на VBA?

Спасибо за ваше время и помощь.

решение1

Если вы можете поместить значения для сравнения в диапазон в другом месте таблицы, вы можете использовать функцию LOOKUP. LOOKUP ищет свой первый аргумент в диапазоне, указанном во втором аргументе, и возвращает соответствующее значение из диапазона в третьем аргументе. Вам придется добавить диапазон, указав нужное вам значение.

Например, я создаю таблицу поиска в F1:F3 и G1:G3:

    ФГ
1 Алекс 1
2 Бетти 2
3 Чарли 3

Тогда используемая функция:

    Б
1 =ПРОСМОТР(A1;$F$1:$F$3;$G$1:$G$3)
2 =ПРОСМОТР(A2;$F$1:$F$3;$G$1:$G$3)

В ячейке B1 функция ПРОСМОТР ищет A1 («Чарли»), находит его в F3 и возвращает значение из G3, равное 3. В ячейке B2 функция ПРОСМОТР ищет A2 («Алекс»), находит его в F1 и возвращает значение из G1, равное 1.

Вы также можете поместить таблицу поиска на другой лист рабочей книги, если она вам не нужна на основном листе.

решение2

Я не уверен на 100%, как выглядят ваши исходные данные, но функция ПОИСКПОЗ будет рассматривать одно значение и возвращать его позицию в массиве.

Если A1:A4 равно

Alex
Betty
Charlie
Betty

и в B1 вы кладете

=MATCH(A1,$A$1:$A$4)

B1 вернется

1

Затем просто заполните ячейки с B1 по B4, и вы получите результат.

Связанный контент