Я пытаюсь понять, что именно Excel делает с этими двумя функциями.

У меня есть много строк строк в одном столбце. Я хочу вытащить первое число в этих строках. Первое число может быть 0,1,2,3 ..., 9, а общая длина строки варьируется. Я хочу найти первый номер и вернуть его и все после него. Я нашел следующий код в Google, когда искал, как найти первое число в строке, но я не понимаю, как это работает. Единственные изменения, которые я сделал, - это то, что я добавил неудачное действие в оператор IF.

=MIN(IF(ISNUMBER(FIND({1,2,3,4,5,6,7,8,9,0},A1))=TRUE,FIND({1,2,3,4,5,6,7,8,9,0},A1),"N/A"))

Когда я читаю это, он говорит следующее: Найдены ли какие-либо числа в массиве {1,2,3,4,5,6,7,8,9,0} в моей строке? Если есть, то ISNUMBER() = TRUE пройдет, и код выполнит вторую функцию FIND() . Затем он передает результаты второй функции FIND() (то есть позиции всех числовых значений в строке) в функцию MIN() которая принимает минимум (то есть первую позицию).

Это работает правильно , но то , что я не понимаю, если я делаю это без IF-заявление, то это дает мне ошибку #VALUE Другими словами, если я сделаю это

=MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1))

Я получаю # #VALUE в выходной ячейке. Зачем? Я только что вынул IF-заявление, насколько я вижу.

Может кто-нибудь объяснить, что мне здесь не хватает. Это способ, которым Excel передает информацию из функции IF() ?

1 ответ1

0

Min дает вам минимум чисел в вашей строке A1 , поэтому, если A1 содержит буквы и цифры (например, 123text0) Find без If и isnumeric() , вместо символов будет использоваться #value а вместо цифр.

MIN(IF(ISNUMBER(FIND({1,2,3,4,5,6,7,8,9,0},A1))=TRUE,FIND({1,2,3,4,5,6,7,8,9,0},A1),"N/A")) ставит N/A вместо #value а Min игнорирует текст N/A но не может игнорировать ошибку #value .

If() проверяет Find() наличие чисел, поэтому, если isnumeric - true оно записывает цифры, если нет, то записывает N/A Min(1,2,3,"N/A","N/A"..)=1 , но при удалении If Min(1,2,3,#value,#value..)=#value .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .