Школы

Помогите, пожалуйста, найти, где неправильно что-то сделал или не добавил: в ячейку excel ввел функцию если:

= если(x>0;1; если(x<0; -1; 0))
x - вводимое число в ячейке. Функция возвращает 1 при x>0, -1 при x<0 и 0 при x=0. В чем суть проблемы, как написал x - число, но заметил, что, если ввести любой знак, то функция также выводит 1, а для пустых ячеек - 0. Хотя должна же возвращать ошибку?
= если(x>0;1; если(x<0; -1; 0))
Надо показывать НАСТОЯЩУЮ формулу .
похоже что вы вместо ячейки ввели просто "х"

=--(Ч(B3)>0)
эта формула выбирает только числа больше нуля
отрицательные числа , ноль и буквы приравниваются к нулюесли буквы надо как-то отметить/выделить - тогда пишите в комментах
ЕВ
Елена Владимировна
93 192
Лучший ответ
Для ваших целей лучше использовать функцию "ЗНАК" - если аргумент не число - будет давать ошибку. Для чисел - работает ка вам надо. И аргумент всего один.
Если надо реализовать именно через "ЕСЛИ" то стоит добавить проверку на текст вида:
"=ЕСЛИ(Т(х)="";"ОШИБКА: введено не число!; ...) "
где ... - ваша функция.
NB: Для ЕСЛИ "0" это не только "0" и но и "ничего", а значит ввод в строку любого символа - даже пробела, даст значение не ноль - и проверку если пройдет как положительное число (на самом деле для ПК любой символ - это число, туту Ексель просто "умнее" нас с вами).
Валентина Лола
Валентина Лола
11 568
Марина Агаева Спасибо, да это попроще.
Проблема в том, что функция IF в Excel не проверяет, является ли аргумент числом, поэтому если в ячейку ввести любой символ, кроме цифр, функция просто будет считать его нулем, и выполняться будет условие "0=0", что верно.

Для того чтобы избежать такой ситуации и возвращать ошибку при некорректном вводе, можно воспользоваться функцией IFERROR в сочетании с функцией IF:

=IFERROR(IF(x>0,1,IF(x<0,-1,0)),"Ошибка")

В этом случае, если в ячейку будет введен не числовой символ, функция IFERROR выведет сообщение "Ошибка". Если же введено число, то функция IF выполнит условие, как описано в вопросе
Марина Агаева Спасибо! А то на разных форумах читал, но там только про синтаксис и т.п., а вот про это не знал!!!
Валентина Лола Не будет работать - для Екселя не ошибка, что он строку с текстом считает положительным числом, а не текстом. Проверять нужно с помощью функции "ЕСЛИ" и "Т" или "Ч".

Похожие вопросы