Перестала срабатывать логическая функция if

Автор victort, 19 августа 2011, 13:03

0 Пользователи и 1 гость просматривают эту тему.

victort

Здравствуйте, столкнулся с проблемой. Мне обновили OpenOffice до LibreOffice 3.3 и сразуже столкнулся с проблемой формул. Перестала срабатывать логическая функция if
Вот формула: IF(ABS(J10);J10;0)
Пишет что ошибка если вместо числа "текст". Как с этим бороться, ведь стоит условие если значение в ячейке целое число то применить данное число, если нет то использовать 0 (ноль).

Рыбка Рио

Цитата: victort от 19 августа 2011, 12:03Вот формула: IF(ABS(J10);J10;0)
Пишет что ошибка если вместо числа "текст". Как с этим бороться, ведь стоит условие если значение в ячейке целое число то применить данное число, если нет то использовать 0 (ноль).
ABS() - это модуль числа, его аргументом должно быть число.
Есть функция ISNUMBER.
=IF(ISNUMBER(J10);J10;0)
ubuntu 12.04 + LibO3.6.0

victort

Я знаю что ABS это модуль целого числа, эту особенность я и использовал. Если (IF) модуль срабатывал значит TRUE если нет значит FALSE. А тут получается не срабатывает IF. Т.е. получается IF дает ответ что введено не число и вместо команды FALSE пишет код ошибки, что для него (IF) нонсенс. Даная команда должна выполнять условие или ее альтернативу неболее того.

Спасибо  =IF(ISNUMBER(J10);J10;0) работает.

VlhOwn

Не IF дает код ошибки, а ABS. И правильно делает.
А люди, использующие в программном коде дыры или иные особенности конкретной реализации, заведомо обрекают себя на головную боль в не очень отдаленной перспективе.

victort

VlhOwn, ты прав только в одном, что надо читать справочники по командам и искать подходящие для моей задачи.
Как говорится не изобретай велосипед если он уже существует. Просто когда мне нужна была такая команда я ее не нашел, а раз мой метод сработал то оставил его пока не случился казус.