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

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

24 Май 2019, 18:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1 2 3 »   Вниз
  Печать  
Автор Тема: Разные результаты в Excel и Libre для одного файла!?  (Прочитано 14504 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Hasim
Форумчанин
***
Offline Offline

Сообщений: 754


Woe from wit


« Стартовое сообщение: 4 Май 2012, 10:40 »

Один и тот же файл в Excel и Libre показывает разные результаты! Непонимающий
Excel - правильно.
Libre - неправильно.

[вложение удалено Администратором]
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #1: 4 Май 2012, 11:54 »

Да нет, всё верно. Просто формат отображения задан "в лоб".
Фокус в том, что при вычислении временных интервалов и Calc и Excel работают одинаково. А вот при арифметических действиях уже с интервалами, а не с первоначальными датами, мы наступаем на грабли, которые возникли из-за базовой даты 01/01/1900. В районе этих чисел набегает ошибка в один день, связанная с несуществующим 29 февраля 1900 года.
LiO честно вычислил число 15 и преобразовал его в дату ПО СВОИМ правилам, в 14.01.1900 00:00:00.
Excel тоже совершенно честно получает число 15, но ПО СВОИМ (ошибочным) правилам преобразует их в дату 15.01.1900 00:00.
Ошибка в формуле отсутствует, и там и там результат 15 дней. А вот отображение результата через строку форматирования "ДД\:чч:мм:сс" (или "DD\:HH:MM:SS" в LiO) приводит к "глюку" - каждый из офисов отображает НОМЕР ДНЯ, который считает правильным для этой даты.

Если уж так хочется получить результат в днях-часах-минутах, то лучше брать целую часть интервала в качестве количества дней, а дробную часть числа форматировать как время, обычным образом.
И кстати, не нужно отделять дни от часов двоеточием - это не стандартное отображение, которое легко собьет с толку непосвященного пользователя. Лучше использовать пробел или надпись "дн.", "сут." или что-то в этом роде
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
ape
Форумчанин
***
Offline Offline

Сообщений: 2 468


« Ответ #2: 4 Май 2012, 12:07 »

?? -> В районе этих чисел набегает ошибка в один день, связанная с несуществующим 29 февраля 1900 года.
Не уверен. Считал, что ошибка зарыта в том, что кратный 4-м столетиям 2000 год - високосный по исключительному правилу. Т.е., это вопрос к Calc, а не к Exel.
« Последнее редактирование: 4 Май 2012, 12:10 от ape » Записан
Hasim
Форумчанин
***
Offline Offline

Сообщений: 754


Woe from wit


« Ответ #3: 4 Май 2012, 12:25 »

Я тоже не уверен. Ведь если ошибка и набегает в один день для каждой даты, то их разность ошибку компенсирует. Для Excel, возможно, так и получается. А для Libre разность ошибок не компенсируется. И вообще дни между датами в Libre вычисляются не так, как в Excel, а именно с ошибкой в один день и именно в Libre.
Хотя я только привел пример того, что правильный файл Excel может дать неправильные результаты в Libre.
И как при этом быть с совместимостью?
В данном простейшем случае переписывать функции с простой разности на сложные преобразования?
Записан
ape
Форумчанин
***
Offline Offline

Сообщений: 2 468


« Ответ #4: 4 Май 2012, 12:37 »

Посмотрите, что получается при уменьшении 1-х дат на 100 лет: ещё один день "в ауте".

[вложение удалено Администратором]
Записан
ape
Форумчанин
***
Offline Offline

Сообщений: 2 468


« Ответ #5: 4 Май 2012, 13:47 »

Похоже, что в Calc значение "21.02.2011 00:00:00" = "24 час. 00 мин. 00 сек.". Т.е. сутки начинаются с "00:00:00,000001с".
Записан
Yakov
Администратор
**
Offline Offline

Сообщений: 2 397


WWW
« Ответ #6: 4 Май 2012, 15:00 »

Правила расчёта даты можно выбрать до начала заполнения документа (см. вложение)

[вложение удалено Администратором]
Записан

Hasim
Форумчанин
***
Offline Offline

Сообщений: 754


Woe from wit


« Ответ #7: 4 Май 2012, 16:50 »

Правила расчёта даты можно выбрать до начала заполнения документа (см. вложение)
Но совместимость с Excel нарушается ещё больше. Отличаются не только разности дат но и сами даты.
Записан
ape
Форумчанин
***
Offline Offline

Сообщений: 2 468


« Ответ #8: 4 Май 2012, 17:15 »

Без комментариев.. (JhonSUN - ?)

[вложение удалено Администратором]
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #9: 4 Май 2012, 18:29 »

Ну, что тут скажешь? Лучше один раз показать, чем много слов написать.

Первые два образца - LiO с разными базовыми датами. И там, и там - в феврале 28 дней.
Последний, в красной рамке - наш красавец, который "отказывается отвечать на вопрос"... В смысле, "это вопрос к Calc, а не к Exel."

[вложение удалено Администратором]
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
ape
Форумчанин
***
Offline Offline

Сообщений: 2 468


« Ответ #10: 4 Май 2012, 19:01 »

Cпасибо, т.е Exel_XP(-?). Но Calc в 3-м случае поменял дату, добавив 4 года. -?
Записан
Hasim
Форумчанин
***
Offline Offline

Сообщений: 754


Woe from wit


« Ответ #11: 4 Май 2012, 19:03 »

По JohnSUN получается, что если даты выбраны до 29.02.1900, то ошибок быть не должно. Но это не так.
Ошибки есть и там.

[вложение удалено Администратором]
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #12: 4 Май 2012, 19:32 »

Разумеется. Мы ведь сместили "базовую дату" именно на 4 года.

Я уже писал - причины "глюка" не в неправильных вычислениях, а в формате отображения. Строка форматирования отображает буквально "день:часы:минуты:секунды" для интервала. Интервал - это количество дней и часов между двумя датами. Правильный формат для этой величины - число с дробной частью. Здесь же для первого этапа вычислений применен "кастрированный" формат - без месяца и года. И это сбивает с толку. Более того, для второго этапа вычислений, когда из временного интервала вычитается другой временной интервал, опять применяется форматирование как для даты. Смысл последней разности: на сколько один интервал длиннее другого. То есть число дней-часов-минут. Автор формулы применяет к результату формат даты. Компьютер преобразовывает число 15 в какую-то дату, отстоящую на 15 дней от базовой и отображает день этой даты.

Нет, Hasim, ошибок нет. Просто отображены разные числа, дни января месяца.

ЗЫ. Просто измените формат данных в колонках C и D на числовой
« Последнее редактирование: 4 Май 2012, 19:35 от JohnSUN » Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Hasim
Форумчанин
***
Offline Offline

Сообщений: 754


Woe from wit


« Ответ #13: 4 Май 2012, 19:45 »

Здесь же для первого этапа вычислений применен "кастрированный" формат - без месяца и года. И это сбивает с толку.
И это сбивает с толку Calc, но не Excel.
Я говорю об этом.
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #14: 4 Май 2012, 19:56 »

То есть, ты считаешь, что твой пример построен абсолютно правильно? И будет хорошо работать для любых исходных данных? Даже если ввести в A4, например, значение "11.01.2012 03:49:08"?
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Страниц: 1 2 3 »   Вверх
  Печать  
 
Перейти в:  

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