@podkradulinike

Как заполнять ячейку значением, если другая ячейка содержит определенный текст?

В ячейке А1 текст "футболки красные"
В А2 "синие худи"
В А3 "свитшоты красные"

Нужно чтобы в B1-3 выводилось нужное значение в зависимости от того, какой текст содержится в А1-3. Если текст содержит "футболки", то выводим "Футболка". Если текст содержит "худи", то выводим "Худи" и т.д.

Пробовал =IFS(ПОИСК("футболка";A1); "Футболка"; ПОИСК("худи";A1); "Худи") , но срабатывает только на "футболка".
Пробовал =ЕСЛИ(ПОИСК("футболка";A1);"Футболка"), но не знаю как добавить условия еще и для худи и свитшотов.
  • Вопрос задан
  • 141 просмотр
Решения вопроса 2
ProgrammerForever
@ProgrammerForever Куратор тега Google Sheets
Учитель, автоэлектрик, программист, музыкант
Так?
=ЕСЛИ(REGEXMATCH(A1;".*футболк.*");"Футболка"
   ;ЕСЛИ(REGEXMATCH(A1;".*худи.*");"Худи"
      ;ЕСЛИ(REGEXMATCH(A1;".*свитшот.*");"Свитшот"
      ;""
      )
   )
)


Демонстрационная таблица
Ответ написан
@ClearAirTurbulence
Пробовал =IFS(ПОИСК("футболка";A1); "Футболка"; ПОИСК("худи";A1); "Худи") , но срабатывает только на "футболка".

У вас две проблемы. Вы смешиваете русские и английские названия функций, Excel так не умеет (если вы действительно делаете так именно в таблице, а не в описании задачи).
Второе. Футболка у вас работает потому, что это первое условие. Как только начинает обрабатываться другая ячейка, поиск футболки, происходящий первым, выдает ошибку, и формула также выдает ошибку. Нужно обернуть поиск в функцию iferror, которая будет исключать вывод ошибки. Например, так:

- старомодно вложенными IF-ами, хоть это и жесть:
=IF(IFERROR(FIND("футболки";A1);0);"футболки";IF(IFERROR(FIND("худи";A1);0);"худи";IF(IFERROR(FIND("свитшоты";A1);0);"свитшоты";"")))

-новомодными IFS-ами, лучше, хоть тоже не айс:
=IFS(IFERROR(FIND("футболки";A6);0);"футболки";IFERROR(FIND("худи";A6);0);"худи";IFERROR(FIND("свитшоты";A6);0);"свитшоты")


6139b3e322db7714584302.png

Естественно, использовать функции следует на том языке, какой у вас стоит, иначе тоже будет ошибка. Также нужно учитывать используемый в системе разделитель списков (; или ,).
Вместо IFERROR можно использовать в качестве обертки ISNUMBER.

Приведенные примеры неоптимальны, расширение списка проверок требует переписывания формулы каждый раз, количество вложенных проверок лимитированно, и, наверняка, это неоптимально с точки зрения вычислительных ресурсов. Лучше использовать Index-Match и список категорий, как-то так:

6139b9431f771761549892.png
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы