Оглавление
В учебнике объясняется, что такое ISNUMBER в Excel, и приводятся примеры базового и расширенного использования.
Концепция функции ISNUMBER в Excel очень проста - она просто проверяет, является ли данное значение числом или нет. Важным моментом здесь является то, что практическое использование этой функции выходит далеко за рамки ее базовой концепции, особенно в сочетании с другими функциями в больших формулах.
Функция Excel ISNUMBER
Функция ISNUMBER в Excel проверяет, содержит ли ячейка числовое значение или нет. Она относится к группе функций IS.
Функция доступна во всех версиях Excel для Office 365, Excel 2019, Excel 2016, Excel 2013, Excel 2010, Excel 2007 и ниже.
Синтаксис ISNUMBER требует только одного аргумента:
=ISNUMBER(value)
Где значение это значение, которое вы хотите проверить. Обычно оно представлено ссылкой на ячейку, но вы также можете предоставить реальное значение или вложить другую функцию в ISNUMBER для проверки результата.
Если значение является числовым, функция возвращает TRUE. Для всего остального (текстовые значения, ошибки, пробелы) ISNUMBER возвращает FALSE.
В качестве примера проверим значения в ячейках с A2 по A6, и выясним, что первые 3 значения - числа, а последние два - текст:
2 вещи, которые вы должны знать о функции ISNUMBER в Excel
Здесь можно отметить несколько интересных моментов:
- Во внутреннем представлении Excel, даты и раз являются числовыми значениями, поэтому формула ISNUMBER возвращает для них значение TRUE (см. B3 и B4 на скриншоте выше).
- Для чисел, хранящихся в виде текста, функция ISNUMBER возвращает FALSE (см. этот пример).
Примеры формулы Excel ISNUMBER
Приведенные ниже примеры демонстрируют несколько обычных и несколько нетривиальных вариантов использования ISNUMBER в Excel.
Проверьте, является ли значение числом
Когда в рабочем листе имеется множество значений, и вы хотите узнать, какие из них являются числами, необходимо использовать функцию ISNUMBER.
В этом примере первое значение находится в A2, поэтому мы используем приведенную ниже формулу для его проверки, а затем перетаскиваем формулу вниз на столько ячеек, сколько необходимо:
=ISNUMBER(A2)
Обратите внимание, что хотя все значения выглядят как числа, формула ISNUMBER вернула FALSE для ячеек A4 и A5, что означает, что эти значения являются числовые строки т.е. числа, отформатированные как текст. Причины могут быть разные, например, ведущие нули, предшествующий апостроф и т.д. Независимо от причины, Excel не распознает такие значения как числа. Поэтому, если ваши значения вычисляются неправильно, первым делом проверьте, действительно ли они являются числами с точки зрения Excel, а затем при необходимости преобразуйте текст в число.
Формула Excel ПОИСК ПО ЧИСЛУ
Помимо идентификации чисел, функция Excel ISNUMBER может также проверить, содержит ли ячейка определенный текст в качестве части содержимого. Для этого используйте ISNUMBER вместе с функцией ПОИСКПОЗ.
В общем виде формула выглядит следующим образом:
ISNUMBER(SEARCH( подстрока , ячейка ))Где подстрока это текст, который вы хотите найти.
В качестве примера, давайте проверим, содержит ли строка в A3 определенный цвет, скажем, красный:
=ISNUMBER(SEARCH("red", A3))
Эта формула хорошо работает для одной ячейки. Но поскольку наша таблица-образец (см. ниже) содержит три разных цвета, написание отдельной формулы для каждого из них было бы пустой тратой времени. Вместо этого мы будем обращаться к ячейке, содержащей интересующий нас цвет (B2).
=ISNUMBER(SEARCH(B$2, $A3))
Чтобы формула правильно копировалась вниз и вправо, обязательно зафиксируйте следующие координаты знаком $:
- В подстрока ссылка, зафиксируйте строку (B$2), чтобы скопированные формулы всегда выбирали подстроки в строке 2. Ссылка на столбец является относительной, поскольку мы хотим, чтобы она подстраивалась под каждый столбец, т.е. когда формула копируется в C3, ссылка на подстроку изменится на C$2.
- В исходная ячейка ссылка, заблокируйте столбец ($A3), чтобы все формулы проверяли значения в столбце A.
На скриншоте ниже показан результат:
ISNUMBER FIND - формула, чувствительная к регистру
Поскольку функция ПОИСК является без учета регистра Если вам нужна формула, чувствительная к регистру, используйте функцию FIND, а не SEARCH.
ISNUMBER(FIND( подстрока , ячейка ))Для нашего набора данных формула примет следующий вид:
=ISNUMBER(FIND(B$2, $A3))
Как работает эта формула
Логика формулы вполне очевидна и легко выполнима:
- Функция SEARCH / FIND ищет подстроку в указанной ячейке. Если подстрока найдена, возвращается позиция первого символа. Если подстрока не найдена, функция выдает ошибку #VALUE!
- Функция ISNUMBER берет его оттуда и обрабатывает числовые позиции. Таким образом, если подстрока найдена и ее позиция возвращается в виде числа, ISNUMBER выводит TRUE. Если подстрока не найдена и возникает ошибка #VALUE!, ISNUMBER выводит FALSE.
формула IF ISNUMBER
Если вы хотите получить формулу, которая выводит что-то отличное от TRUE или FALSE, используйте ISNUMBER вместе с функцией IF.
Пример 1. В какой ячейке содержится текст
Продолжая предыдущий пример, предположим, что вы хотите отметить цвет каждого элемента знаком "x", как показано в таблице ниже.
Чтобы сделать это, просто оберните формулу ПОИСК ISNUMBER в оператор IF:
=IF(ISNUMBER(SEARCH(B$2, $A3)), "x", "")
Если ISNUMBER возвращает TRUE, функция IF выводит "x" (или любое другое значение, которое вы передаете в функцию значение_если_истина Если ISNUMBER возвращает FALSE, функция IF выводит пустую строку ("").
Пример 2. Первый символ в ячейке - число или текст
Представьте, что вы работаете со списком алфавитно-цифровых строк и хотите узнать, является ли первый символ строки цифрой или буквой.
Чтобы построить такую формулу, нам понадобятся 4 различные функции:
- Функция LEFT извлекает первый символ из начала строки, скажем, в ячейке A2:
LEFT(A2, 1)
- Поскольку LEFT относится к категории текстовых функций, ее результатом всегда является текстовая строка, даже если она содержит только числа. Поэтому, прежде чем проверять извлеченный символ, нужно попытаться преобразовать его в число. Для этого используйте либо функцию VALUE, либо двойной унарный оператор:
ЗНАЧЕНИЕ(LEFT(A2, 1))
или(--LEFT(A2, 1))
- Функция ISNUMBER определяет, является ли извлеченный символ числовым или нет:
ISNUMBER(VALUE(LEFT(A2, 1)))
- На основании результата ISNUMBER (TRUE или FALSE) функция IF возвращает "Число" или "Буква", соответственно.
Если предположить, что мы проверяем строку в A2, то полная формула примет следующий вид:
=IF(ISNUMBER(VALUE(LEFT(A2, 1))), "Число", "Буква")
или
=IF(ISNUMBER(--LEFT(A2, 1)), "Число", "Буква")
Функция ISNUMBER также может пригодиться в следующих случаях извлечение чисел из строки. Вот пример: Получить число из любой позиции в строке.
Проверьте, не является ли значение числом
Хотя в Microsoft Excel есть специальная функция ISNONTEXT для определения того, не является ли значение ячейки текстом, аналогичная функция для чисел отсутствует.
Простым решением является использование ISNUMBER в сочетании с NOT, который возвращает противоположное логическое значение. Другими словами, когда ISNUMBER возвращает TRUE, NOT преобразует его в FALSE, и наоборот.
Чтобы увидеть его в действии, проследите за результатами следующей формулы:
=NOT(ISNUMBER(A2))
Другой подход заключается в использовании функций IF и ISNUMBER вместе:
=IF(ISNUMBER(A2), "", "Не номер")
Если A2 является числовым, формула не возвращает ничего (пустую строку). Если A2 не является числовым, формула говорит об этом прямо: "Не число".
Если вы хотите выполнить некоторые вычисления с числами, то поместите уравнение или другую формулу в поле значение_если_истина вместо пустой строки. Например, приведенная ниже формула будет умножать числа на 10 и выдавать "Не число" для нечисловых значений:
=IF(ISNUMBER(A2), A2*10, "Не номер")
Проверьте, содержит ли диапазон какое-либо число
В ситуации, когда необходимо проверить весь диапазон на наличие чисел, используйте функцию ISNUMBER в сочетании с SUMPRODUCT следующим образом:
SUMPRODUCT(--ISNUMBER( ассортимент ))>0 SUMPRODUCT(ISNUMBER( ассортимент )*1)>0Например, чтобы узнать, содержит ли диапазон A2:A5 какое-либо числовое значение, формулы будут выглядеть следующим образом:
=SUMPRODUCT(--ISNUMBER(A2:A5))>0
=SUMPRODUCT(ISNUMBER(A2:A5)*1)>0
Если вы хотите вывести "Yes" и "No" вместо TRUE и FALSE, используйте оператор IF в качестве "обертки" для вышеуказанных формул. Например:
=IF(SUMPRODUCT(--ISNUMBER(A2:A5))>0, "Да", "Нет")
Как работает эта формула
В основе формулы функция ISNUMBER оценивает каждую ячейку указанного диапазона, скажем B2:B5, и возвращает TRUE для чисел, FALSE для всего остального. Поскольку диапазон содержит 4 ячейки, массив имеет 4 элемента:
{TRUE;FALSE;FALSE;FALSE;FALSE}
Операция умножения или двойной унари (--) превращает TRUE и FALSE в 1 и 0, соответственно:
{1;0;0;0}
Функция SUMPRODUCT суммирует элементы массива. Если результат больше нуля, это означает, что в диапазоне есть хотя бы одно число. Таким образом, вы используете ">0", чтобы получить окончательный результат TRUE или FALSE.
ISNUMBER в условном форматировании для выделения ячеек, содержащих определенный текст
Если вам нужно выделить ячейки или целые строки, содержащие определенный текст, создайте правило условного форматирования на основе формулы ISNUMBER SEARCH (нечувствительный к регистру) или ISNUMBER FIND (чувствительный к регистру).
В данном примере мы будем выделять строки на основе значения в столбце А. Точнее, мы будем выделять элементы, содержащие слово "красный". Вот как это делается:
- Выберите все строки данных (A2:C6 в данном примере) или только столбец, в котором нужно выделить ячейки.
- На Главная во вкладке Стили группу, нажмите Новое правило > Используйте формулу, чтобы определить, какие ячейки форматировать .
- В Форматируйте значения, для которых эта формула истинна введите приведенную ниже формулу (обратите внимание, что координата столбца закрыта знаком $):
=ISNUMBER(SEARCH("red", $A2))
- Нажмите кнопку Формат и выберите нужный формат.
- Дважды нажмите OK.
Если у вас мало опыта работы с условным форматированием в Excel, вы можете найти подробные шаги со скриншотами в этом руководстве: Как создать правило условного форматирования на основе формулы.
В результате все элементы красного цвета будут выделены:
Вместо того чтобы "жестко кодировать" цвет в правиле условного форматирования, вы можете ввести его в предопределенную ячейку, например E2, и ссылаться на нее в своей формуле (пожалуйста, помните об абсолютной ссылке на ячейку $E$2). Кроме того, вам нужно проверить, не является ли входная ячейка пустой:
=AND(ISNUMBER(SEARCH($E$2, $A2)), $E$2"")
В результате вы получите более гибкое правило, которое выделяет строки на основе ваших данных в E2:
Вот как использовать функцию ISNUMBER в Excel. Я благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!
Доступные загрузки
Примеры формулы Excel ISNUMBER