Помилка Excel-долання # VALUE з функцією НАЙМИТИ


11

У комірці А1 я вписав "Яблуко". У В2 вводя формулу =FIND("Apple",A:A). Однак я продовжую отримувати #VALUEпомилки. Хто-небудь може це пояснити і як я це подолати?



1
Поясніть, будь ласка, що ви намагаєтеся зробити, щоб ми могли вам допомогти. FINDвикористовується для пошуку рядка тексту в заданому наборі тексту, потім повертає його положення в текстовому рядку. Можливо, ви використовуєте неправильну функцію, залежно від того, що ви намагаєтеся зробити.
CharlieRB

Я в основному намагаюся шукати текстовий рядок у стовпці. Положення тексту всередині стовпця не фіксовано. Чи повинен я використовувати якусь іншу функцію, і де я помиляюся FIND?
Gh0sT

Функція FIND працює, якби я замість цього вводив формулу в комірку B1 ... дивно!
Gh0sT

1
Зазвичай застосовуються FINDдо одній комірці - якщо ви використовуєте =FIND("Apple",A:A)в B2Excel фактично повертає «масив» значень .... але один ви бачите в осередку буде результат з комірки стовпчика А на тому самому рядку, так що якщо A2 не містить "Apple", ви отримуєте # VALUE !, але в B1 ви отримуєте номер - все одно найкраще використовувати одну клітинку .....
barry houdini

Відповіді:


4

Якщо ви хочете знайти першу комірку (рядок) у стовпці, Aщо містить слово "яблуко", можливо, як частину більшого слова (наприклад, "крабапл" або "яблучний соус") або речення, використовуйте

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

І оскільки це відповідає тій частині, яку я повинен використовувати замість цього ... я відзначаю це як відповідь ... дякую!
Gh0sT

21

Знайти виглядає в клітині, а не в діапазоні комірок. Компонент синтаксису within_text дивиться на певний рядок, але діапазон комірок не є рядком. Ви можете домогтися цього за допомогою масиву, але найпростішим підходом було б створити колонку пошуку; зробіть стовпчик поруч із стовпцем, який ви хочете шукати, і додайте формулу в кожну сусідню клітинку, тож у складі B2 оператор within_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 десь у них.


Дякую за ваше пояснення ... це відповідає тій частині, де я помилявся з НАЙМИТИ.
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
Чи можете ви додати до своєї відповіді якийсь контекст? Не дуже зрозуміло, як воно вирішує оригінальне питання.
Бургі

@Burgi - Навпаки, це дуже зрозуміло. Пол подолав Find()розчаровану звичку функції повертати помилку, якщо текст пошуку не існує в рядку, що шукається. Це цінна відповідь - ви повинні схвалити її, як я щойно, замість того, щоб зволікати. (Він також відповідає на початкове запитання ОП, хоча і по-іншому.)
InteXX

@InteXX, якщо ви зауважили, що коментар був зроблений у лютому 2016 року, і незабаром після цього була зроблена редакція. Якщо ви вважаєте, що мій коментар більше не потрібен, слід позначити його.
Бургі

@Burgi - Це було досить непогано редагувати. І вибачте мене ... Я говорив по черзі, заявивши, що ви "повинні" робити те чи інше. Я також припускав, що ти був нижньою людиною, яка також була неналежною. Якщо ви відзначите заяву в моєму профілі, ви побачите, що схилення та позначення - це речі, в яких я не хочу брати участь. Але дякую за вашу милостиву пропозицію.
InteXX
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.