Формула ПОИСК в Excel возвращает ошибку #ЗНАЧ!

Вопрос или проблема

Я разобрал это, но продолжаю получать ошибку VALUE в Excel. Может кто-то сказать мне, что я делаю не так? На моем листе есть ячейка с именем “MaterialType”, которая заполняется из выпадающего списка текстовых значений. Значения в выпадающем списке получаются из проверки данных, ссылающейся на диапазон ячеек в другом листе (и эти ячейки фактически заполняются данными из онлайн-запроса к веб-базе данных наших продуктов). Ячейка отформатирована как “общая”, и некоторые фразы (строки) в списке содержат слово “steel”, а другие нет. Список текстов включает пробелы, круглые скобки и множество различных слов. Большинство вариантов НЕ содержит этот ключевой фраз, который я ищу. Некоторые примеры:

  • стальная плита
  • угловое железо (нержавеющая сталь)
  • алюминий
  • закаленный-сплав

Когда я выбираю тот, который действительно содержит слово steel, все работает как следует (показывает “FOUND”), но если я выбираю любой из остальных, я получаю ошибку #VALUE!.

=IF( SEARCH("steel",MaterialType)>0, "FOUND", "NOT FOUND" )

Попробуйте использовать следующую формулу:

enter image description here


• Формула, использованная в ячейке B2

=IF( 1-ISERR(SEARCH("steel",A2)), "FOUND", "NOT FOUND" )

Вы также можете использовать ISNUMBER() вместо 1-ISERR()

=IF(ISNUMBER(SEARCH("steel",A2)), "FOUND", "NOT FOUND" )

Причина, по которой вы получаете ошибку:

Функция SEARCH() возвращает позицию искомого слова в строке, что является числом; когда оно не находит ничего, возвращается ошибка #VALUE!, которая не больше 0, поэтому вы получаете аргумент FALSE как ошибку вместо NOT FOUND.


Ответ или решение

При работе с формулой SEARCH в Excel, возникновение ошибки #VALUE! может вызвать недоумение, особенно если она появляется в случае отсутствия искомого текста в строке. В приведенной вами ситуации, формула предупреждает о проблеме:

=IF(SEARCH("steel",MaterialType)>0, "FOUND", "NOT FOUND")

Причины и решение ошибки

Подробное объяснение проблемы:

Функция SEARCH предназначена для поиска определенного текста внутри строки и возвращает номер позиции найденного текста. Если же текст не найден, SEARCH выдаст ошибку #VALUE!. Логически, этим объясняется ваше наблюдение: если слово "steel" присутствует, функция возвращает позицию и условие >0 выполняется, выдавая "FOUND". Но при отсутствии ключевого слова, функция сразу выдает ошибку, формула не может обработать условие и возвращает #VALUE!.

Решение проблемы:

Для корректной работы формулы и обработки случаев отсутствия ключевого слова, рекомендуется воспользоваться функциями ISERR или ISNUMBER, которые помогают обходить ошибки, выдаваемые SEARCH. Вот скорректированный вариант формулы:

=IF(ISNUMBER(SEARCH("steel", MaterialType)), "FOUND", "NOT FOUND")

Почему это работает:

  1. ISNUMBER: Эта функция проверяет, является ли результат SEARCH числом. Если да (фраза найдена), она возвращает TRUE, и функция IF выдает "FOUND". Если нет, возвращаемое значение — FALSE, выдающее "NOT FOUND". Это защищает формулу от ошибок #VALUE!.

  2. 1-ISERR: Альтернативный метод использовать ISERR, который проверяет на наличие любой ошибки. Однако в данном случае ISNUMBER более интуитивно понятен и специфичен.

Контекст использования:

Эта ситуация, часто встречающаяся в анализе данных Excel, требует понимания логики работы с текстовыми функциями и ошибок. Эта информация будет полезна для тех, кто автоматизирует процессы анализа данных и стремится к повышенной стабильности и предсказуемости своих инструментов.

Оптимизация текста для SEO и предложения:

  1. Ключевые слова: Excel, формула, ошибка VALUE, поиск, функция SEARCH, обработка ошибок Excel.
  2. Простота и ясность: Объяснение структурировано и понятно, что увеличивает доверие.

Таким образом, корректная обработка ошибок при использовании функции SEARCH в Excel повышает надежность ваших вычислений, помогая избежать неожиданных искажений в результатах анализа данных.

Оцените материал
Добавить комментарий

Капча загружается...