Отредактированный ответ:
Вопрос был изменен, и поэтому мой ответ должен быть актуальным:
Если второй аргумент функции SEARCH
является диапазоном, вы можете использовать эту формулу.
Решение № 4: Проверьте, содержит ли какая-либо из строк в диапазоне подстроку
=OR(ISNUMBER(SEARCH("red",range)))*1
Result: 1
=OR(ISNUMBER(SEARCH("redX",range)))*1
Result: 0
То же объяснение, что и в решении № 1 ниже, но вместо поиска подстроки в «родительской» строке, оно ищет несколько строк и становится возможным благодаря созданию формулы массива и может быть выполнено только нажатием CTRL + SHIFT + ENTER . Проверьте наличие {}
вокруг формулы в строке формул, чтобы убедиться, что вы создали формулу массива.
Поскольку в формуле массива есть несколько результатов, оберните ее функцией OR
, чтобы увидеть, содержит ли какая-либо из строк в диапазоне искомую строку. Наконец, просто умножьте его на 1, чтобы преобразовать получающиеся логические значения в его числовые значения.
Надеюсь, это поможет!
Оригинальный ответ:
Есть несколько способов сделать это. Вы можете использовать функцию SEARCH
или SUBSTITUTE
для анализа строки в сочетании с другими функциями, такими как функции, которые возвращают логические значения, для проверки ожидаемого результата по сравнению с возвращаемым значением первого. Наконец, чтобы преобразовать логические значения в числовые значения, просто умножьте их на 1.
Вот несколько примеров, с которых можно начать:
Решение № 1
=ISNUMBER(SEARCH("red","reddy"))*1
Result: 1
=ISNUMBER(SEARCH("redX","reddy"))*1
Result: 0
Если она может найти подстроку red
в «родительской» строке reddy
, функция SEARCH
возвращает число - позицию искомой подстроки. В противном случае, как и в случае redX
, возвращается #VALUE!
. Чтобы скрыть уродливое сообщение об ошибке #VALUE!
и показать более подходящее сообщение, чем просто отображение положения подстроки, оберните его функцией ISNUMBER
, чтобы получить TRUE
или FALSE
. И если вы хотите преобразовать его в числовые значения, умножьте его на 1.
Решение № 2
=IF(SUBSTITUTE("reddy","red","anyText")="reddy",FALSE,TRUE)*1
Result: 1
=IF(SUBSTITUTE("reddy","redX","anyText")="reddy",FALSE,TRUE)*1
Result: 0
Здесь результирующая строка из функции SUBSTITUTE
сравнивается с «родительской» строкой, оборачивая ее функцией IF
, которая, в свою очередь, возвращает логическое значение, которое можно преобразовать в числовое значение, умножив его на 1.
Решение № 3
=NOT(EXACT("reddy",SUBSTITUTE("reddy","red","anyText")))*1
Result: 1
=NOT(EXACT("reddy",SUBSTITUTE("reddy","redX","anyText")))*1
Result: 0
Это всего лишь вариант формулы, представленной в решении № 2. Он использует функцию EXACT
, чтобы проверить, совпадает ли результирующая строка из функции SUBSTITUTE
со старой строкой (которую я назвал «родительской строкой» в решении № 1). Если он точно такой же, это означает, что ничего не было подставлено, потому что он не нашел искомую строку. Так как функция EXACT
возвращает TRUE
, если две строки точно совпадают, что означает, что ничего не изменилось, а это также означает, что она не нашла искомую строку, вам нужно отменить результат, обернув его с функцией NOT
. Опять же, если вы хотите преобразовать его в числовую форму, просто умножьте его на 1.
Надеюсь, это поможет!
Ссылка:
ПОИСК
ISNUMBER
OR
SUBSTITUTE
IF
ТОЧНО
НЕ