Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

31 Июль 2021, 17:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Перестала срабатывать логическая функция if  (Прочитано 5855 раз)
0 Пользователей и 1 Гость смотрят эту тему.
victort
Новичок
*
Offline Offline

Сообщений: 3


« Стартовое сообщение: 19 Август 2011, 12:03 »

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

Сообщений: 1 678


« Ответ #1: 19 Август 2011, 12:49 »

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

ubuntu 12.04 + LibO3.6.0
victort
Новичок
*
Offline Offline

Сообщений: 3


« Ответ #2: 22 Август 2011, 07:47 »

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

Спасибо  =IF(ISNUMBER(J10);J10;0) работает.
Записан
VlhOwn
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Ростов-на-Дону
Сообщений: 1 076


« Ответ #3: 22 Август 2011, 08:13 »

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

Сообщений: 3


« Ответ #4: 22 Август 2011, 11:15 »

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

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!