#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 сильно жаловался при тестировании с; символы)