Функция поиска работает странно

#excel #excel-formula #find

#excel #excel-формула #Найти

Вопрос:

Хорошо… Это действительно странно, но позвольте мне объяснить.

Я пытаюсь получить строку страны из A1. Итак, я должен получить позицию second #, и после этого я могу использовать MID и получить страну. Но, хорошо.. Пожалуйста, проверьте.

Вот ситуация:

A1: «Абергуили # Уэльс # Великобритания»
B1: = FIND(«#»;A1;1) > Результат: 10 >> Правильно!
C1: =FIND(«#»; A1; B1) > Результат: 10 >> Что??? Он должен вывести 7! Я действительно не понимаю!

Любая помощь?

Комментарии:

1. Последний аргумент в find() — это начальный номер, а не другая ячейка для проверки.

2. Используйте: =FIND("#";A1;B1 1) , В противном случае вы начинаете с той же позиции, в которой ранее был найден хэштег, следовательно, он возвращал точно такой же результат. Хотя нет 7 , она будет выводиться 17 . При этом, какова именно ваша цель здесь. Могут быть лучшие способы потянуть за ниточки.

Ответ №1:

FIND Функция в Excel использует последний аргумент в качестве индекса строки, с которого начинается поиск. Если этот индекс соответствует целевой строке, он снова вернет этот индекс. Есть несколько вариантов:

  • Вы можете реструктурировать свою текущую FIND функцию, чтобы начать с символа после B1 результата, который приведет к формуле =FIND("#",A1,B1 1) . Чтобы получить позицию относительно B1 , вы можете вычесть значение B1 , которое создает =FIND("#",A1,B1 1)-B1 . (Это похоже на ответ JvdV)

  • Вы можете явно выполнить поиск по оставшейся подстроке после первого совпадения, используя RIGHT функцию, которая преобразует исходную функцию в =FIND("#",RIGHT(A1, LEN(A1)-B1)) , которая автоматически возвращает результат относительно последнего совпадения. Чтобы получить абсолютный результат, вы могли бы добавить значение B1 обратно в, создавая =FIND("#",RIGHT(A1, LEN(A1)-B1)) B1 .

Удачи!

(Примечание — вы, вероятно, хотите использовать запятые вместо точек с запятой, если только ваш Excel не настроен для работы с ними. Мой Excel сильно жаловался при тестировании с; символы)