Excel-Overcoming Ошибка # ЗНАЧЕНИЕ с функцией НАЙТИ


11

В ячейку А1 я ввел «Яблоко». В B2 я ввожу формулу =FIND("Apple",A:A). Однако я продолжаю получать #VALUEошибку. Кто-нибудь может объяснить это и как мне это преодолеть?



1
Пожалуйста, объясните, что вы пытаетесь достичь, чтобы мы могли вам помочь. FINDиспользуется для нахождения строки текста в заданном наборе текста, а затем возвращает ее положение в текстовой строке. Вы можете использовать неправильную функцию, в зависимости от того, что вы пытаетесь сделать.
CharlieRB

Я в основном пытаюсь найти текстовую строку в столбце. Положение текста в столбце не является фиксированным. Должен ли я использовать любую другую функцию и с чем я не так FIND?
Gh0sT

Функция НАЙТИ работает, если бы я вместо этого ввел формулу в ячейку B1 ... странно!
Gh0sT

1
Обычно вы применяете FINDк одной ячейке - если вы используете =FIND("Apple",A:A)в B2Excel, на самом деле возвращает «массив» значений .... но тот, который вы видите в ячейке, будет результатом столбца A ячейки в той же строке, так что если A2 не содержит «Apple», вы получаете # ЗНАЧЕНИЕ !, но в B1 вы получаете число - все же лучше использовать одну ячейку .....
Барри Гудини

Ответы:


4

Если вы хотите найти первую ячейку (строку) в столбце, Aкоторая содержит слово «яблоко», возможно, как часть более крупного слова (например, «crabapple» или «яблочное пюре») или предложение, используйте

=MATCH("*apple*", A:A, 0)

И поскольку это отвечает той части, которую я должен использовать вместо этого ... я отмечаю это как ответ ... спасибо!
Gh0sT

21

Найти взгляды в ячейке, а не в диапазоне ячеек. Компонент синтаксиса внутри_текста просматривает определенную строку, но диапазон ячеек не является строкой. Вы можете достичь этого с помощью массива, но самый простой подход - создать столбец поиска; сделайте столбец рядом со столбцом, который вы хотите найти, и добавьте формулу в каждую соседнюю ячейку, чтобы в B2 оператором inside_text был A2.

=FIND("Apple",A1)


У меня такое ощущение, что вы пытаетесь найти количество экземпляров слова Apple. Если это правильно, вы можете вместо этого использовать эту формулу:

=COUNTIF(A:A,"Apple")

Но это даст вам подсчет всего экземпляра слова Apple в столбце A, где Apple - это все содержимое этой ячейки.


Если вы хотите подсчитать все случаи, когда ячейка содержит Apple, даже если она также содержит другие слова (например, Apple Pie), вам нужно вернуться к вашему выражению FIND в дополнительном столбце и использовать оператор IF, возможно, что-то вроде это:

=IF(ISERROR(FIND("Apple",$A2)),0,1)

Это вернет 0, если оператор FIND приведет к ошибке, а в противном случае вернет 1. Вы можете просто суммировать этот столбец, чтобы получить количество ячеек со словом Apple где-то внутри них.


Спасибо за ваше объяснение ... это отвечает той части, где я ошибался с FIND.
Gh0sT

0

Разбор значений в ячейке с помощью функции Find и преодоление #VALUE!результата

Подбирая значение перед поиском "&"

=IF(IFERROR(FIND("&",B:B),0)>0,MID(B:B,1,FIND("&",B:B)-1),TRIM(B:B))

Подбирая значение после поиска "&"

=IF(IFERROR(FIND("&",B:B),0)>0,MID(B:B,FIND("&",B:B)+1,99),"")

объяснение

  1. Проверить на наличие ошибок и заменить 0
  2. Тест с использованием снаружи If
  3. Решить, если результаты

Пример: 1

=IF(IFERROR(FIND("&",B:B),0)>0,MID(B:B,FIND("&",B:B)+1,99),"")
  • Ячейка содержит Мэри и Дэвид
  • Значение становится 6 для поиска
  • Начиная с позиции вправо подбирать значение
  • Результат "Дэвид"

Пример: 2

  • Клетка содержит Мэри
  • Значение становится 0
  • Результат нулевой

Пример: 3

Подбирая значение перед "&"

=IF(IFERROR(FIND("&",B:B),0)>0,MID(B:B,1,FIND("&",B:B)-1),TRIM(B:B))
  • Ячейка содержит Мэри и Дэвид
  • Результат Мэри

1
Можете ли вы добавить контекст к своему ответу? Не очень ясно, как это решает оригинальный вопрос.
Бурги

@ Бурги - Наоборот, это очень ясно. Пол преодолел Find()разочаровывающую привычку функции возвращать ошибку, если искомый текст не найден в искомой строке. Это ценный ответ - вы должны подтвердить это, как я только что сказал, вместо того, чтобы понижать его. (Это также отвечает на оригинальный вопрос OP, хотя и по-другому.)
InteXX

@InteXX, если вы заметили, что комментарий был сделан в феврале 2016 года, и вскоре после этого была сделана правка. Если вы считаете, что мой комментарий больше не нужен, пометьте его.
Бурги

@ Бурги - Это было довольно хорошее редактирование. И извините меня ... Я говорил вне очереди, заявляя, что вы "должны" делать то или иное. Я также предположил, что вы были downvoter, что было также неправильно. Если вы заметите утверждение в моем профиле, вы увидите, что понижение голосов и пометка - это то, в чем я предпочитаю не участвовать. Но спасибо за ваше любезное предложение.
InteXX
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.