[решено] OpenOffice.org Calc. Как сделать сравнение дат с закрашиванием ячейки?

Автор i_krevetko, 14 мая 2015, 21:15

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

i_krevetko

Всем привет!

Суть такова:
В столбце C находится функция =TODAY(). Я захожу в документ, вписываю в столбец В дату. Если эта дата больше чем 30 дней от сегодняшней даты, то ячейка окрашивается в красный цвет (как например ячейки В4 и В5), а если нет, то цвет не меняется. Это важно: окрашивается именно та ячейка, в которую я ввожу дату, пусть даже это будет формула, я в формулу буду вводить дату, но чтоб окрашивалась именно эта ячейка


rami

Нужно сделать условное форматирование с двумя условиями:
1. если значение ячейки равно нулю, то стиль базовый (это чтобы не красились пустые ячейки)
2. второе условие как на снимке ниже:

TimSha

Цитата: i_krevetko от 14 мая 2015, 19:15... пусть даже это будет формула, я в формулу буду вводить дату, но чтоб окрашивалась именно эта ячейка
Без конкретного примера и толкового пояснения что, как, почему отгадывать трудно, однако... ;)
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)

rami

Цитата: TimSha от 15 мая 2015, 12:17Без конкретного примера и толкового пояснения что, как, почему отгадывать трудно, однако...
А что я не отгадал ??? i_krevetko хочет чтобы даты раньше 30 дней от сегодняшней подсвечивались (как напоминание что прошло 30 дней).
Формула TODAY()-B2>30 в условном формате справляется на ура.

i_krevetko

Цитата: TimSha от 15 мая 2015, 12:17Без конкретного примера и толкового пояснения что, как, почему отгадывать трудно, однако...

Отгадывать ничего не нужно. Я все подробно написал, скриншот приложил таким, каким я вижу решение.
Повторяю еще раз, максимально кратко: я ввожу дату в ячейку, если она больше чем 30 дней от сегодняшней даты, то эта же самая ячейка выделяется красным.

i_krevetko

Цитата: rami от 14 мая 2015, 19:59Нужно сделать условное форматирование с двумя условиями:
1. если значение ячейки равно нулю, то стиль базовый (это чтобы не красились пустые ячейки)
2. второе условие как на снимке ниже:

Опытным путем выяснилось, что лучше писать
TODAY()-B1>30, а не TODAY()-B2>30

так как, когда я вводил TODAY()-B2>30, то получалось, что закрашиваемость как бы смещена на 1 кл вверх относительно своего значения (столбец B на скрине).
Иными словами, я менял дату в B5, а закрашивалась B4.
Условия значение ячейки = 0 и формула = 0 не сработали, пустые ячейки тоже красятся (столбцы C и D на скрине).

Самым адекватным оказался столбец A. Туда я просто ввел только одну формулу TODAY()-A1>30  :D
Может быть у нас OpenOffice.org Calc реагирует по-разному, у меня совсем старая версия 3.2.1 на debian 6.0.

За помощь огромное спасибо :) Вообще я полный нуб в OOo, и можно сказать вопрос решен.

Но есть еще пара  вопросов:
1. Это ведь будет работать само, то есть я просто буду раз в неделю, например, открывать документ, и ничего не делая, сразу буду видеть какие даты красные?
2. Кроме этого условия, чтоб даты более 30 дней от сегодняшней даты закрашивались в красный можно ли добавить условие, чтобы даты от 3 до 30 дней от сегодняшней даты закрашивались в желтый? И как это реализовать все вместе?


rami

Цитата: i_krevetko от 15 мая 2015, 20:22Может быть у нас OpenOffice.org Calc реагирует по-разному, у меня совсем старая версия 3.2.1 на debian 6.0.
То что разные версии и разные оси отличаются — это факт. У меня Мак и два Apache OpenOffice 4.1.0 и 4.1.1 , но предпочитаю LibreOffice — он более продвинутый.
Цитата: i_krevetko от 15 мая 2015, 20:22Опытным путем выяснилось, что лучше писать
TODAY()-B1>30, а не TODAY()-B2>30

так как, когда я вводил TODAY()-B2>30, то получалось, что закрашиваемость как бы смещена на 1 кл вверх относительно своего значения (столбец B на скрине).
Иными словами, я менял дату в B5, а закрашивалась B4.
Для ячейки B2 условие должно быть TODAY()-B2, т.е. сегодня минус дата этой же ячейки. Столбец A оказался "самым адекватным" потому что вы начали с ячейки A1 и условия TODAY()-A1>30.
Теперь вопрос: включать тридцатый день или нет? Если не включать, то TODAY()-B2>30, а если включать, то TODAY()-B2>=30
Цитата: i_krevetko от 15 мая 2015, 20:22Условия значение ячейки = 0 и формула = 0 не сработали, пустые ячейки тоже красятся (столбцы C и D на скрине).
Не сработали потому, что я сначала работал в LibreOffice, а там есть настройка "считать пустую ячейку как ноль". Правильно вместо нуля использовать ""
Цитата: i_krevetko от 15 мая 2015, 20:22Но есть еще пара  вопросов:
1. Это ведь будет работать само, то есть я просто буду раз в неделю, например, открывать документ, и ничего не делая, сразу буду видеть какие даты красные?
2. Кроме этого условия, чтоб даты более 30 дней от сегодняшней даты закрашивались в красный можно ли добавить условие, чтобы даты от 3 до 30 дней от сегодняшней даты закрашивались в желтый? И как это реализовать все вместе?
Выкладываю документ с тремя вариантами.
1. не включая тридцатый и третий дни
2. включая тридцатый и третий дни
3. если второй вариант не будет срабатывать автоматически.
Разницу между вторым и третим можно проверить завтра (если будет)
Смотрите что больше подходит

i_krevetko

Цитата: rami от 16 мая 2015, 00:05Варианты форматирования.ods (16.62 Кб - загружено 1 раз.)

Все работает отлично. Я так понимаю, 2 и 3 вариант реализован разными способами, как вы это сделали? расскажите оба способа

rami

Цитата: i_krevetko от 15 мая 2015, 20:22Может быть у нас OpenOffice.org Calc реагирует по-разному, у меня совсем старая версия 3.2.1 на debian 6.0.
Я не могу проверить решение на вашей версии офиса и оси, поэтому предложил три варианта, если второй работает отлично, то следует выбрать его.
Цитата: i_krevetko от 16 мая 2015, 19:08Все работает отлично. Я так понимаю, 2 и 3 вариант реализован разными способами, как вы это сделали? расскажите оба способа
На самом деле третий вариант это тот же второй, но с небольшой "перестраховкой". Добавил в формулу условия INT(RAND()) — это целая часть случайного числа, она всегда равна нулю и не меняет результат, но заставляет формулу пересчитываться при любом изменении в документе. Если функция TODAY() у вас срабатывает нормально, то эта добавка излишняя.