В автофильтре по дате пропало указание на год.[РЕШЕНО]

Автор Alexcostariha, 3 мая 2023, 15:13

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

Alexcostariha

Libreoffice 7.3.7.2 Linux Mint 21 Cinnamon.
Добрый день! Имеется отформатированная таблица. В ней с десяток столбцов с датами. В двух столбцах через автофильтр не виден год даты - видно только число и месяц. Соответственно эти столбцы не фильтруются по годам.Только по месяцам и числам месяца. Очень неудобно. Как исправить?
 В приложенном файле показаны неработающие столбцы. Они указывают на одинаковые даты, только один столбец явно показывает число и месяц, а другой - только название месяца. Фактически не работает первый столбец, поскольку второй, с названием месяца, является ссылкой на него. В окошке с формулами, при переходе между ячейками, полные даты первого столбца  видны.
См. решение в конце.

mikekaganski

Это можно назвать багом. Автофильтр смотрит только на статическое форматирование своих ячеек, когда определяет, есть ли в столбце даты (и тогда он покажет дерево по годам, месяцам и дням).

В качестве обхода я бы использовал вместо условного форматирования использовать нормальный формат ячеек "DD MMM.", а уже "нет"/пусто назначать с помощью условного форматирования.
С уважением,
Михаил Каганский

Alexcostariha

Баг Это видимо как-то связано с последними обновлениями, поскольку до сих пор всё работало.
 Могли бы вы пояснить подробнее что там нужно изменить? Таблицу я делал давно и уже сам не понимаю как она работает. :(

sokol92

Выделите в своем примере столбец Q и отформатируйте как дату (любой формат даты подойдет). После этого автофильтр будет более сговорчивым.
Владимир.

Alexcostariha

#4
 sokol92, mikekaganski Менять форматирование не то. Это долго.
 Нашлось такое решение. Скажем нам нужно выбрать даты за май 2018 г. Это даты с 01.05.2018 по 30.05.2018. У Автофильтра имеется Стандартный фильтр. Заполняем его датами в числовом формате для значений больше даты 30 апреля 2018 г. и меньше даты 01 июня 2018 г. Соответственно в числах  это будет между цифрами "43220" и "43252". Как видим на скриншоте 1 - всё работает. Другие способы "Начинается с" и "Оканчивается на", - не работают. В таком виде значение для года тоже учитывается. Для снятия фильтра нажимаем "Очистить фильтр". Поскольку мы совершаем насилие над Libreoffice лучше для этого создавать копию файла и потом её удалять.
Узнать числовой формат для даты в Libreoffice. Узнать числовой формат для нужной даты можно так: в любой ячейке прописываем дату, затем меняем формат ячейки(мышка->правая кнопка) на числовой(можно просто посмотреть, не меняя).
Узнать числовой формат для даты в терминале Linux.
 Числовой формат даты - это количество дней от нулевой даты. Нулевая дата в Libreoffice - это 30 декабря 1899 года. См. скриншот 2. Команда "date" умеет переводить даты в секунды;  нулевая, она же эпохальная(Epoch) дата там, 1970-01-01 00:00 UTC. Для подсчёта разницы в днях нужно перевести секунды в дни, то есть поделить результат вычитания на 24×60×60. Воспользуемся функцией BASH для арифметических вычислений $((expression)). Начальную дату для вычислений нужно взять днём ранее 29.12.1899 г., чтобы -1 день назад и +1 день давали 0 на 30.12.1899 года.
 Вычисляем количество дней для даты 30 апреля 2018 г.:
$ echo $((($(date +%s --date "2018-04-30")-$(date +%s --date "1899-12-29"))/(3600*24))) дней
       43220 дней
Вычисляем количество дней для даты 01 июня 2018 г.:
$ echo $((($(date +%s --date "2018-06-01")-$(date +%s --date "1899-12-29"))/(3600*24))) дня
       43252 дня

  Спасибо sokol92, mikekaganski за ответы. Это помогло найти решение.
 В старой версии Libreoffice всё работало. Ждём следующих обновлений?  ???

kompilainenn

Цитата: Alexcostariha от  4 мая 2023, 06:13В старой версии Libreoffice всё работало. Ждём следующих обновлений?
Баг репорт был на вашу проблему? Если нет, то ничего в будущих версиях Либры не изменится
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут