Функция IF для конкретных текстовых строк

Вопрос:

Я пытаюсь написать формулу, которая берет слово и обрабатывает его через функцию IF в excel, The Values – это список в формуле. Моя проблема прямо сейчас заключается в том, что у меня большой, X-Large и 1X-Large текст. X-Large и 1X-Large являются уникальными строками и нуждаются в функции IF, чтобы иметь возможность различать два.

Вот что я до сих пор.

=if(or(isnumber(search("Small",af2)),ISNUMBER(SEARCH("Medium",AF2)),ISNUMBER(SEARCH("Large",AF2)),,ISNUMBER(SEARCH("X-Large",AF2))),"Small",or(isnumber(search("1X-Large",af2)),isnumber(search("2X-Large",af2)),isnumber(search("3X-Large",af2)),isnumber(search("4X-Large",af2))),"1X-Large")

Я не могу понять, почему он показывает ошибку и отображает только маленькие, когда он работает.

Вся помощь приветствуется

Лучший ответ:

Ваша текущая формула не должна работать, она должна давать вам ошибку о том, что у вас слишком много аргументов. Разбивка вашей функции:

=if(
  or(isnumber(search("Small",af2)),ISNUMBER(SEARCH("Medium",AF2)),ISNUMBER(SEARCH("Large",AF2)),,ISNUMBER(SEARCH("X-Large",AF2))),
  "Small",
  or(isnumber(search("1X-Large",af2)),isnumber(search("2X-Large",af2)),isnumber(search("3X-Large",af2)),isnumber(search("4X-Large",af2))),
  "1X-Large"
)

Вы не можете использовать 4 параметра в IF. Вы должны иметь максимум 3. Возможно, вы имели в виду:

=if(
  or(isnumber(search("Small",af2)),ISNUMBER(SEARCH("Medium",AF2)),ISNUMBER(SEARCH("Large",AF2)),,ISNUMBER(SEARCH("X-Large",AF2))),
  "Small",
  IF(
    or(isnumber(search("1X-Large",af2)),isnumber(search("2X-Large",af2)),isnumber(search("3X-Large",af2)),isnumber(search("4X-Large",af2))),
    "1X-Large"
  )
)

Но это не решит вашу проблему относительно части X-Large. Чтобы справиться с этим, вы можете проверить, существует ли серия X-Large, а затем и другие.

=IF(
  OR(ISNUMBER(SEARCH("1X-Large",AF2)),ISNUMBER(SEARCH("2X-Large",AF2)),ISNUMBER(SEARCH("3X-Large",AF2)),ISNUMBER(SEARCH("4X-Large",AF2))),
  "1X-Large",
  IF(
    OR(ISNUMBER(SEARCH("Small",AF2)),ISNUMBER(SEARCH("Medium",AF2)),ISNUMBER(SEARCH("Large",AF2)),ISNUMBER(SEARCH("X-Large",AF2))),
    "Small"
  )
)

Хотя вы можете сделать это короче:

=IF(
  OR(ISNUMBER(SEARCH({"1X-Large","2X-Large","3X-Large","4X-Large"},AF2))),
  "1X-Large",
  IF(
    OR(ISNUMBER(SEARCH({"Small","Medium","Large","X-Large"},AF2))),
    "Small"
  )
)

В одной строке…

=IF(OR(ISNUMBER(SEARCH({"1X-Large","2X-Large","3X-Large","4X-Large"},AF2))),"1X-Large",IF(OR(ISNUMBER(SEARCH({"Small","Medium","Large","X-Large"},AF2))),"Small"))

Оцените статью
TechArks.Ru
Добавить комментарий