18:02

остаюсь
[ok]

Я очень надеюсь, что обратилась по адресу.


У меня есть таблица в Word, где в первом столбце указаны даты в самых различных форматах: 00/00/00, 00.00.00, 0.00.00 и тд. Вручную исправлять это невозможно - уйдет на это несколько дней, как минимум. Есть ли возможность привести к единому виду эти имеющиеся данные?

Заранее огромное спасибо.


@темы: MS Office

Комментарии
13.04.2012 в 18:10

Аккаунт для использования в публичных местах. Основной ник - Trotil.
Есть возможность.
Но проще будет, если вы выложите все форматы, и требуемый тоже.
Скрипт, который это исправит, можно написать за минуту.
13.04.2012 в 18:30

blah-blah-blah
таблицы надо делать в табличных процессорах, а не в текстовых редакторах
13.04.2012 в 21:34

Sanctus Satanas
Да можно и регулярками, например. Но требуются примеры всех возможных форматов. И желательно не 00.00.00, а, скажем, 01.12.99 или дд.мм.гг, чтобы был понятен порядок следования частей даты.
Чисто как пример: <([0-9]{1;2})/([0-9]{1;2})/([0-9]{2})> с заменой на \1.\2.\3 превратит все xx/xx/xx в xx.xx.xx.
Несколькими такими заменами, думаю, можно разрулить.
14.04.2012 в 00:56

остаюсь
Lennonenko, если у меня таблица в Word, значит в этом есть необходимость. Мне меньше всего нужен был совет, где мне следует работать.

--==SS==--, Trotill, спасибо! я уже с работы вернулась, а нужный файл, к сожалению, остался там. Поэтому всех форматов дат, пожалуй, назвать не смогу. В понедельник напишу все обязательно и, надеюсь, вы не откажитесь мне помочь.
14.04.2012 в 02:00

Sanctus Satanas
Окей, будем ждать. )
14.04.2012 в 18:08

Да кому оно нужно, это бессмертие! ##### Роланд Неистовый шел и насвистывал дырочкой в правом боку##### Фикрайтеры всех стран, объединяйтесь! Спасем героев от садистов-авторов!#####Я не Кенни! Я Эникентий Мидихлорианович!
А вордовской автозаменой есть возможность поменять / на точки?
14.04.2012 в 19:10

Sanctus Satanas
Ей можно много что поменять на много что. В т.ч. там есть несколько упрощённый вариант регулярных выражений (пример выше). В частности, так можно будет решить проблему наличия/отсутствия ведущего нуля у дней и месяцев с 1 по 9. Капитан Очевидность подсказывает, что этого сложновато добиться простыми заменами 1 к 1.
14.04.2012 в 19:35

Да кому оно нужно, это бессмертие! ##### Роланд Неистовый шел и насвистывал дырочкой в правом боку##### Фикрайтеры всех стран, объединяйтесь! Спасем героев от садистов-авторов!#####Я не Кенни! Я Эникентий Мидихлорианович!
--==SS==--, все зависит от того, что еще есть в столбце с датами.
14.04.2012 в 19:37

Sanctus Satanas
Цитата:
В понедельник напишу все обязательно

Не вижу смысла гадать на кофейной гуще.
16.04.2012 в 14:25

остаюсь
Как и обещала, форматы дат, которые имеются в письме:

дд/мм/гггг

д/м/гггг

д.м.гггг

д.мм.гггг

привести необходимо к единому дд.мм.гггг
16.04.2012 в 14:29

Да кому оно нужно, это бессмертие! ##### Роланд Неистовый шел и насвистывал дырочкой в правом боку##### Фикрайтеры всех стран, объединяйтесь! Спасем героев от садистов-авторов!#####Я не Кенни! Я Эникентий Мидихлорианович!
иа, а в графе кроме даты цифры имеются?
16.04.2012 в 14:42

Аккаунт для использования в публичных местах. Основной ник - Trotil.
Как-то так.

Шаг 1: сделайте копию документа :)
Шаг 2: приписывание ведущего нуля:

([^0-9])([0-9][^0-9])
на \10\2

Шаг 3: приписывание ведущего нуля в начале строки:

<([0-9][^0-9])
на 0\1

Шаг 4: замена / на .
Тут можно обычной заменой в колонке.
16.04.2012 в 14:52

остаюсь
Мэлис Крэш, нет, цифр больше нет.

Trotill, я поняла только первый шаг) все, что после, осталось для меня загадкой. заранее извиняюсь за некомпетентность. что значит "приписывание ведущего нуля", например?
16.04.2012 в 14:59

Аккаунт для использования в публичных местах. Основной ник - Trotil.
Ведущие нули в записи числа при помощи позиционной системы счисления — последовательность из одного или более нулей, занимающая старшие разряды. Понятие ведущих нулей возникает при использовании представлений чисел, имеющих фиксированное количество разрядов.
16.04.2012 в 15:07

Sanctus Satanas
У Trotill немножко неправильно. В ворде не [^символы], а [!символы], ^ там как некий аналог \.

Имеется в виду первую строчку вставить в поле Найти, а вторую (\10\2 и т.д.) — в поле Заменить на. Плюс нужно тыкнуть галочку "Подстановочные знаки".
Идея в том, чтобы провести замену из шага 2, затем из шага 3 и т.д.
Только где у Trotill написано [^0-9] (с крышкой) надо вместо этого написать [!0-9] (с восклицательным знаком).
16.04.2012 в 15:19

Аккаунт для использования в публичных местах. Основной ник - Trotil.
--==SS==--, Microsoft всегда идёт своим путём :)

Я сейчас потестировал, еще может возникнуть проблема, что Word игнорирует перенос строки.
Как будет в случае с таблицей, понятия не имею.
Я бы временно скопировал бы данные в нормальный адекватный редактор (например Notepad++), там бы заменил, что нужно и вставил бы обратно в таблицу.
16.04.2012 в 15:54

Sanctus Satanas
Да там ещё и в документации баг. ) Как минимум, в русской версии {m,n} надо писать {m;n}, иначе синтакс еррор.
А нотепад++ разве не подавится таблицей?
Сейчас нет винды под рукой. )))
16.04.2012 в 16:28

Да кому оно нужно, это бессмертие! ##### Роланд Неистовый шел и насвистывал дырочкой в правом боку##### Фикрайтеры всех стран, объединяйтесь! Спасем героев от садистов-авторов!#####Я не Кенни! Я Эникентий Мидихлорианович!
Можно пойти более сложным путем и, выделив колонку, поменять / на ., а затем 1. на 01. и так до 9. на 09.
16.04.2012 в 16:48

Аккаунт для использования в публичных местах. Основной ник - Trotil.
Мэлис Крэш,
тогда вместо 21 появится 201.
16.04.2012 в 16:55

Да кому оно нужно, это бессмертие! ##### Роланд Неистовый шел и насвистывал дырочкой в правом боку##### Фикрайтеры всех стран, объединяйтесь! Спасем героев от садистов-авторов!#####Я не Кенни! Я Эникентий Мидихлорианович!
Trotill, пробел-цифра-точка на 0-цифра-точка. А потом, естественно, точка-цифра-точка, где месяцы. Я ж говорю, более сложный путь, но со знаками меньше шансов напутать.
16.04.2012 в 17:07

Sanctus Satanas
Мэлис Крэш, а откуда возьмётся пробел перед первой цифрой даты?
16.04.2012 в 17:16

Да кому оно нужно, это бессмертие! ##### Роланд Неистовый шел и насвистывал дырочкой в правом боку##### Фикрайтеры всех стран, объединяйтесь! Спасем героев от садистов-авторов!#####Я не Кенни! Я Эникентий Мидихлорианович!
--==SS==--, таким образом не захватывается цифра, перед которой стоит другая. Поиск в Ворде так работает.
16.04.2012 в 17:26

Sanctus Satanas
Мэлис Крэш, так это как? Поиск в Ворде учитывает пробелы и их число. Если там нет пробела — он ничего не найдёт и ничего не заменит.
16.04.2012 в 17:31

Да кому оно нужно, это бессмертие! ##### Роланд Неистовый шел и насвистывал дырочкой в правом боку##### Фикрайтеры всех стран, объединяйтесь! Спасем героев от садистов-авторов!#####Я не Кенни! Я Эникентий Мидихлорианович!
--==SS==--, а начало строчки он так не ловит разве? У меня всегда ловил.
16.04.2012 в 17:40

Sanctus Satanas
Мэлис Крэш, неа. Если есть Ворд под рукой — проверьте, мне сейчас не на чем. )
16.04.2012 в 17:44

Да кому оно нужно, это бессмертие! ##### Роланд Неистовый шел и насвистывал дырочкой в правом боку##### Фикрайтеры всех стран, объединяйтесь! Спасем героев от садистов-авторов!#####Я не Кенни! Я Эникентий Мидихлорианович!
--==SS==--, так я только что и проверила, на тексте. Начало строки ловит.

апд: упс, проверяла на тексте, который пробелами отформатирован) Меа сulpa. Видимо, надо вставлять символ начала строки, а не пробел.
16.04.2012 в 21:02

Sanctus Satanas
Мэлис Крэш, отлично. Только символа начала строки не существует. Есть, конечно, конец абзаца, но между ячейками в таблице и оного не наблюдается. )
16.04.2012 в 21:07

Да кому оно нужно, это бессмертие! ##### Роланд Неистовый шел и насвистывал дырочкой в правом боку##### Фикрайтеры всех стран, объединяйтесь! Спасем героев от садистов-авторов!#####Я не Кенни! Я Эникентий Мидихлорианович!
А что тогда в начале строки стоит, когда невидимые символы включаешь?
16.04.2012 в 21:13

The day that you stop running is the day that you arrive.
Мэлис Крэш, ничего.
16.04.2012 в 21:21

Sanctus Satanas
иа, попробую попроще изложить:

0. Не забыть сохранить копию файла на всякий случай.
1. Выделить в таблице колонку с датами. Для этого нужно кликнуть чуть выше колонки — курсор примет вид жирной стрелки, направленной вниз.
2. Нажать Ctrl-H (здесь латинская буква, если что) — откроется диалог «Найти и заменить».
3. Нажать кнопку «Больше» и поставить галочку «Подстановочные знаки».
4. В поле «Найти» ввести <([0-9][./])
5. В поле «Заменить на» ввести 0\1
6. Нажать кнопку «Заменить все».
7. Снять галочку «Подстановочные знаки».
8. В поле «Найти» ввести /
9. В поле «Заменить на» ввести точку.
10. Нажать «Заменить все».
11. Нажать кнопку «Закрыть».

Вот и всё. )

Окошко выглядит примерно так:


P.S. Achtung! В полях «Найти» и «Заменить» не должно случайно оказаться лишних пробелов и т.п., иначе чуда не произойдёт. )))