Здравствуйте, столкнулся с проблемой. Мне обновили 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)
Я знаю что ABS это модуль целого числа, эту особенность я и использовал. Если (IF) модуль срабатывал значит TRUE если нет значит FALSE. А тут получается не срабатывает IF. Т.е. получается IF дает ответ что введено не число и вместо команды FALSE пишет код ошибки, что для него (IF) нонсенс. Даная команда должна выполнять условие или ее альтернативу неболее того.
Спасибо =IF(ISNUMBER(J10);J10;0) работает.
Не IF дает код ошибки, а ABS. И правильно делает.
А люди, использующие в программном коде дыры или иные особенности конкретной реализации, заведомо обрекают себя на головную боль в не очень отдаленной перспективе.
VlhOwn, ты прав только в одном, что надо читать справочники по командам и искать подходящие для моей задачи.
Как говорится не изобретай велосипед если он уже существует. Просто когда мне нужна была такая команда я ее не нашел, а раз мой метод сработал то оставил его пока не случился казус.