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

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

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

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

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


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

о Calc в 3-м случае поменял дату, добавив 4 года. -?
В Excel есть аналогичный переключатель (дата как в Windows|дата как в Macintosh)
и при переключении там тоже происходит смещение.
Записан

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

Сообщений: 754


Woe from wit


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

То есть, ты считаешь, что твой пример построен абсолютно правильно? И будет хорошо работать для любых исходных данных? Даже если ввести в A4, например, значение "11.01.2012 03:49:08"?
Этого я не знаю. Я даже не знаю, что значит "абсолютно правильно". Я знаю только, что в моем примере Excel работает проще и лучше, чем Calc. По крайней мере можно использовать даже "необычный" формат. Это мне понравилось в Excel. И вопрос-то был о совместимости. Файл xls должен отображаться одинаково в Excel и Calc.
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

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


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


WWW
« Ответ #17: 4 Май 2012, 20:59 »

Вычисления с датами-временем тема вообще очень сложная.
Мне очень нравится этот фокус:
A1: 07.02.2012 15:17
B1: 05.02.2012 3:15
C1: 60:02:00 (=A1-B1)
D1: 0,10 (=C1/24)
Таким образом имеем 60/24=0,1. Классная арифметика?

А насчет
И вопрос-то был о совместимости. Файл xls должен отображаться одинаково в Excel и Calc.
Полностью согласен! Должен! Просто обязан! Иначе что же это за дрянь такая - свободный офис? Вот на моей картинке, например, какого рожна LiO пишет какие-то 27.12.1899? Ведь в этой ячейке для полной совместимости должны быть нарисованы красивенькие решеточки...

Я знаю только, что в моем примере Excel работает проще и лучше, чем Calc. По крайней мере можно использовать даже "необычный" формат. Это мне понравилось в Excel.
Это я тоже должен прокомментировать? Или "спустим на тормозах"?
Записан

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

Сообщений: 754


Woe from wit


« Ответ #18: 4 Май 2012, 21:18 »

Мне очень нравится этот фокус:
Нет там никакого фокуса. Если всё делать правильно в Excel.

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

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


« Ответ #19: 5 Май 2012, 08:51 »

Exel-2010: файл и скрин прилагаю (aвтор *.xls - LibCalc-3.5.3).

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

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


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


WWW
« Ответ #20: 5 Май 2012, 09:51 »

Excel-2003 дает тот же результат. LiO отображает какую-то ахинею, то ли 23 дня, то ли 25. Но это, я думаю, не его вина.
Реальный смысл ячейки D3 - "интервал времени в ячейке C2 (двое с половиной суток) меньше на 6,65773 суток, чем интервал времени в ячейке C4 (почти десять суток)".
А "23:08:12:52" или "#####" здесь совершенно ни к чему...
Записан

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

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


« Ответ #21: 5 Май 2012, 11:09 »

"23", "25" - это опять из-за настроек (см. "да уж.png"). Здесь другое: после вычисления разницы дат Exel отказывается выводить отрицательные значения натурального числа лет, а Calc суммирует отрицательное число с дефолтной (точнее - "нулевой") датой. Как мне кажется, ни тот, ни другой не реализуют функцию так, как она задумывалась изначально:
      "Дата(1)" - "Дата(2)" = -лет.мес.дн.:час.:мин.:сек.,
при этом Exel не имеет младшего разряда - секунд.
Вариант ODS v.1.0 для Exel-2010 или Exel-2002,-3,-7 с ODF-конвертером для Microsoft Office прилагаю. Ссылку на расширение дам позже в "P.S." этого сообщения.
--------------
P.S. Страница загрузки:
http://odf-converter.sourceforge.net/download.html


[вложение удалено Администратором]
« Последнее редактирование: 5 Май 2012, 11:15 от ape » Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

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


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


WWW
« Ответ #22: 5 Май 2012, 11:55 »

"23", "25" - это опять из-за настроек
Ну да, это или 23 декабря 1899 или 25 декабря 1903 года - в зависимости от "базовой даты". Ни то, ни другое к результату формулы отношения не имеют.

Как мне кажется, ни тот, ни другой не реализуют функцию так, как она задумывалась изначально:
      "Дата(1)" - "Дата(2)" = -лет.мес.дн.:час.:мин.:сек.,
при этом Exel не имеет младшего разряда - секунд.
Поправка: секунды отобразить можно. Просто творцы Экселя учли, что обычному человеку все эти цифры не нужны одновременно - если человек интересуется годом-месяцем, то ему не интересны секунды (лишняя точность), а если пользователь хочет увидеть время с точностью до секунд или даже до десятых долей секунды, то ему обычно наплевать на номер столетия. Поэтому в перечень стандартных форматов длинная громоздкая конструкция вида "ДД.ММ.ГГГГ чч:мм:сс,0" и не включена. Но её вполне можно задать вручную - в секции "(все форматы)" доступно редактирование форматной строки.

Предлагаю все-таки, перед тем как продолжить ковыряние в этой теме, проговорить вслух задачу - что собственно хочется получить в результате и для чего это надо? В смысле, для каких реальных задач такие вычисления могут понадобиться, какие люди (уровень подготовленности) будут считывать эти значения и какие решения на основании увиденного они должны принимать.

В теме с раскрашиванием дат, которая здесь недавно обсуждалась, было предложено несколько более-менее приемлемых вариантов решения. Тот же топикстартер предложил неплохую формулу для форматирования результата таких вычислений. Почему он от нее отказался и попытался форматировать результат с помощью Григорианского календарая - отдельный вопрос, ответ на который меня, честно говоря, совсем не интересует.

PS. Только что наткнулся, кажется, как раз в тему  Смеющийся
« Последнее редактирование: 5 Май 2012, 12:24 от JohnSUN » Записан

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

Сообщений: 754


Woe from wit


« Ответ #23: 5 Май 2012, 12:29 »

Тот же топикстартер предложил неплохую формулу для форматирования результата таких вычислений. Почему он от нее отказался
В той формуле были текстовые данные. Арифметические операции к ним так просто не применить. Использование форматов даты и времени позволяет просто использовать арифметические операции для вычислений.

Чтобы продолжать "ковыряние в этой теме", думаю, что надо разобраться с таким вопросом:
почему существуют два типа похожих форматов: формат "Дата" и формат "Время", чем они отличаются, чем связаны, и, вообще, в чем смысл существования их обоих вместе?
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

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


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


WWW
« Ответ #24: 5 Май 2012, 12:56 »

В той формуле были текстовые данные. Арифметические операции к ним так просто не применить.
А разве я сказал не то же самое?
Использование форматов даты и времени позволяет просто использовать арифметические операции для вычислений.
Ну, не совсем так. "Использование форматов" позволяет только отобразить результат каких-то вычислений в нужном виде. Каких вычислений? Вот это я и хотел узнать - каких именно вычислений? Отработанное время умножить на почасовую ставку? Рассчитать сложный процент на остаток вклада? Вычислить амортизацию для оборудования, которое проработало определенное время? Любая из этих операций требует только одного вычитания - <дата окончания периода> - <дата начала периода>. В примере, с которого началась эта тема, применяется еще одно вычитание, из интервала вычитается интервал. В каких случаях эта операция может понадобиться?
почему существуют два типа похожих форматов: формат "Дата" и формат "Время", чем они отличаются, чем связаны, и, вообще, в чем смысл существования их обоих вместе?
Ну, похожи они только тем, что каждый из них состоит из трех составляющих: дата это три числа год-месяц-день, время это тоже три числа - часы-минуты-секунды. Отличаются разделителями: составные части даты могут разделяться косой чертой, тире или точкой, а составные части времени всегда разделяются двоеточием. Кроме того, порядок составных частей даты может произвольно меняться в зависимости от национальных традиций: год-месяц-день, месяц/день/год, день.месяц.год и так далее. А порядок составных частей времени всегда (насколько я знаю) остается постоянным часы:минуты:секунды и, может быть, через десятичный разделитель доли секунд.
А насчет "смысла существования их обоих вместе"... Есть в этом мире такие устройства как часы, время дня показывают. А есть календари, чтобы узнавать какая пора года на дворе, сколько дней до Дня программиста осталось, какой день недели сегодня - не понедельник ли случайно? А кроме того есть еще такие забавные устройства - часы с календарем... Наверное, раз это всё существует, то смысл какой-то есть?
Записан

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

Сообщений: 754


Woe from wit


« Ответ #25: 5 Май 2012, 14:08 »

Объяснение красивое, но, увы, не соответствующее действительности.

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

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


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


WWW
« Ответ #26: 5 Май 2012, 14:29 »

Оу... Миль пардон... В первоначальном вопросе речь шла о форматах, а, оказывается, имелось в виду "почему существует две категории форматов"? И почему часть форматов "пересекается", упоминается в каждой из категорий?
Ну, это тоже не сложно. Просто для удобства.
Для ясности можно заглянуть в другие категории и просто сосчитать сколько форматов в каждой из них содержится. Списки для каждого из них (за исключением Денежного формата) настолько короткие, что умещаются в поле полностью. А способов отображения даты, времени и даты-времени очень много. Поэтому они и сгруппированы по смыслу. Чтобы пользователь, перед прокручиванием длиннющего списка в поисках нужного формата, мог хотя бы немного его сократить, "отфильтровать" по смыслу. Ну, чтобы не так много строк проматывать туда-сюда.
А пересекаются именно из-за того, что некоторые из стандартных форматов могут в равной мере относиться к любой из этих категорий. Например, формат "дата с указанием времени с точностью до минут", и формат "время с точностью до минут с указанием даты" обозначаются одной и той же форматной строкой "DD.MM.YY HH:MM". В какую из категорий нужно было бы поместить этот формат?
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

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


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


WWW
« Ответ #27: 5 Май 2012, 14:46 »

Знаешь, ape, долго не мог понять, что мне не понравилось в этой формулировке:
"Дата(1)" - "Дата(2)" = -лет.мес.дн.:час.:мин.:сек.
Понял! Меня смутило присутствие "мес." в результате вычислений. Каких именно "мес."? Февралей по 28 дней или Августов по 31 дню? К "лет." есть похожий вопрос - по сколько дней в году считать? Но с годами как-то проще: раз в формуле участвуют две даты, то YEARS() от этих исходных дат должен вернуть правильное число лет (последний параметр в этой функции показывает как считать годы).
Я бы все-таки ограничился для временных интервалов вариантом форматирования [-]ДДД" дн. "ЧЧ:ММ:СС
Записан

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

Сообщений: 754


Woe from wit


« Ответ #28: 5 Май 2012, 15:21 »

Меня смутило присутствие "мес." в результате вычислений.
Это не должно никого смущать, поскольку используется очень часто.
Например, стаж работы - 4 года 5 месяцев 10 дней, очень распространенная формулировка.
Или, к этому же, ежемесячный оклад -60000 руб., тоже никого не смущает, хотя в феврале и январе число дней различно.
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

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


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


WWW
« Ответ #29: 5 Май 2012, 15:33 »

При подсчете стажа используется более сложные вычисления, чем обычная разность дат. Это больше похоже на то, как кассир отсчитывает сдачу: сначала очень крупные купюры (в данном случае - года), далее более мелкие (месяцы, от указанного числа до этого же числа следующего месяца) и наконец мелочь (дни). Результат сильно зависит от дат отсчета - стартовой и конечной.
Интервал времени как разность дат - это уже конечная величина, в которой нет никакой информации о первоначальных датах. Поэтому форматированием или другими хитростями точно преобразовать его в лет-месяцев не представляется возможным.
А человеку с ежемесячным окладом "минус шестьдесят тысяч руб." можно только посочувствовать  Веселый
А если серьёзно, то пересчет ежемесячных окладов в количество реально отработанных дней и, соответственно, в начисленную зарплату тоже задача не из простых. Чтобы в этом убедиться, достаточно просто оценить длину любой инструкции по начислению больничных или отпускных.
« Последнее редактирование: 5 Май 2012, 16:00 от JohnSUN » Записан

Владислав Орлов 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!