Функции дат на 3.2.1

Автор resef, 25 августа 2010, 17:16

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

resef

После установки версии 3.2.1 функции дат в ООо перестали работать с символьными значениями даты.
Пример.
Имеется строка, содержащая дату (напр., ячейка $Счет.B12 содержит текст "Счет № 29 от 02.08.2010")
Требуется выделить дату и получить последнюю дату месяца.
Решение до 3.2.1, которое работало:
=EOMONTH(RIGHT($Счет.B12;10);0)
На версии 3.2.1 для функции EOMONTH (да и других, напр., DAYSINMONTH) надо указывать только ссылку на ячейку, содержащую дату. Символьное значение (даже "03.08.2010") даёт неверное значение.

Работала и такая конструкция:
=CONCATENATE(DAYSINMONTH(RIGHT($Счет.B12;10));RIGHT($Счет.B12;8)

Теперь не работает

Что посоветуете?


chkur

У меня вроде работает. Приложите, пожалуйста, проблемный файл.

resef

Прочел, что параметр "Дата" должен представлять собой допустимую дату в соответствии с настройками локали OpenOffice.org.
В настройках для calc вид даты по умолчанию, 30.12.1899

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

chkur

#3
Как бы вот что у меня отображается. Что должно быть?

А вообще - лучше по порядку. Какой ООо стоял раньше, когда работало? Какой поставили, какая сборка?

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

resef

#4
Win XP (Под linux файл читается правильно)
Стоял 3.1-9399
Установил 3.2.1-9502
Устанавливал поверх 3.1. Но сегодня снес ООО и установил на пустое место 3.2.1 - эффект тот же.
Вот что у меня с этим файлом (на скрепке).

(Кстати, при "сохранить файл как" нового файла не могу сразу выйти на иной физический диск. Приходится перебирать всю ветку до выбора диска, а потом уже искать нужное мне место для сохранения.)


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

convas

Отображает нормально только для OOo 3.2.1 Pro Infra.

Причина: в других сборках отсутствует функция листа DAYSINMONTH.

resef

#6
Функция присутствует и работает, если в ней указана ССЫЛКА на ячейку с датой (именно формат даты, а символьные значения не воспринимаются).
Во втором примере дата в ячейке символьная.

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

convas

Ванильная (Oracle) OOO320m18 (9502) - НЕ работает
Про Инфра            OOO320m19 (9505) - Работает!

dr.Faust

Чего-то я не пойму о чём сыр-бор...
Разве так: =EOMONTH(DATEVALUE(RIGHT($Счет.B12;10));0) не работает?
Свобода информации - свобода личности!

resef

#9
Качаю 9505

resef

dr.Faust
Работает. Спасибо. Если не получится со сборкой 9505, придется корректировать файлы.

dr.Faust

Цитата: resef от 26 августа 2010, 10:27придется корректировать файлы
Через атозамену сиё не сложно...
Свобода информации - свобода личности!

resef

#12
Конечно, если делаешь в одном файле. Или можно это сделать сразу в куче файлов?
Вот формула, используемая в нескольких файлах
=SUBSTITUTE(SUBSTITUTE($Счет.B12;"Счет";"АКТ");RIGHT($Счет.B12;10);CONCATENATE(DAYSINMONTH(RIGHT($Счет.B12;10));RIGHT($Счет.B12;8)))
В ней надо заменить
CONCATENATE(DAYSINMONTH(RIGHT($Счет.B12;10));RIGHT($Счет.B12;8))
на
EOMONTH(DATEVALUE(RIGHT($Счет.B12;10));0)
при условии, что $Счет.B12 "плавает" от файла к файлу.

convas

Цитата: dr.Faust от 26 августа 2010, 11:12
Чего-то я не пойму о чём сыр-бор...

О строке вида:
=DAYSINMONTH(RIGHT($Счет.B12;10))

9502 - не работает
9505 - работает

resef

dr.Faust предлагает не уродоваться с переустановками ООо, но использовать иную формулу.