Проверка, начинается ли список / заканчивается какой-либо одной из множества строк во втором списке - PullRequest
0 голосов
/ 13 апреля 2019

В Excel, как лучше всего проверить, если список строк в столбце начинается или заканчивается другим списком строк?

Пример:

Первый список:
Reddy
CodeRed
Zabby
KaBlueY

Второй список: красный, синий, пятно, размытие

Решение должно вернуть:
Reddy - TRUE (потому чтоон содержит «красный» из второго списка в начальной или конечной позиции)
CodeRed - TRUE (потому что он содержит «красный» из второго списка в начальной или конечной позиции)
Zabby - FALSE (потому что он делаетне содержит строк из второго списка в начальной или конечной позиции.
KaBlueY - FALSE (поскольку он не содержит строк из второго списка в начальной или конечной позиции.

1 Ответ

0 голосов
/ 13 апреля 2019

Отредактированный ответ:

Вопрос был изменен, и поэтому мой ответ должен быть актуальным:

Если второй аргумент функции 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

ТОЧНО

НЕ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...