1

У меня есть простая функция поиска, которую я использую вместо оператора Switch Case.

Вот что я пытаюсь сделать:

switch(F5){
    case "apple":
        return "1";
        break;
    case "pear":
        return "2";
        break;
    case "mango":
        return "3";
        break;
    case "kiwi":
        return "4";
        break;
}

Ниже моя функция поиска Excel:

=LOOKUP(F5,{"apple","pear","mango","kiwi"},{"1","2","3","4"})

Проблема: когда F5 равен яблоку и груше, я получаю 1 и 2 соответственно, и это нормально.

Однако, когда F5 равен манго или киви, я получаю 1, а не 3 или 4 соответственно, что я и ожидаю.

Почему это происходит? Я использую неправильный синтаксис? Разве вышеупомянутая функция поиска не подходит для использования вместо оператора регистра переключателя? Есть ли лучший способ сделать это?

ps по этой ссылке поговорим об использовании функции поиска вместо оператора case switch

1 ответ1

1

Функция LOOKUP требует, чтобы диапазон поиска (ваши фрукты) находился в порядке возрастания

Попробуйте изменить порядок следующим образом

=LOOKUP(F5,{"apple","kiwi","mango","pear"},{"1","4","3","2"})

.... хотя, если F5 - лимон , это даст вам 4, а не # N/A, поэтому только для точного соответствия вы можете использовать HLOOKUP следующим образом [не требует сортировки]

=HLOOKUP(F5,{"apple","pear","mango","kiwi";"1","2","3","4"},2,0)

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