У меня есть столбец в Excel, в котором отображается дата, но не в формате даты, а в текстовом формате, и значения для тех дат, в которых месяц или день обозначены одним символом, не содержат нуля перед ними.
Например, у нас есть 2017/1/3 или 2017/11/4, но я хочу изменить их на 2017/01/03 // 2017/11/04.
Как я могу сделать это простым способом, не используя формат даты? Вот то, что я пробовал, но это слишком долго и сложно:
- разделить дату на год, месяц и дни
- если длина месяца < 2, добавьте 0 перед месяцем
- если продолжительность дня < 2, добавьте 0 перед днем
- построен новый дата
решение1
Все даты, которые вы используете в качестве примеров, прекрасно распознаются Excel как даты. Так что если вам нужны «настоящие» даты, которые вы можете форматировать по своему желанию и которые Excel может напрямую использовать в математике:
1) Если вы хотите сохранить исходные данные и иметь форматируемые данные даты, то просто используйте формулу =A1*1 (если ваша дата находится в ячейке A1) везде, где вы хотите выполнить работу (может быть, на несколько столбцов дальше или на другой странице... как вам удобно). И форматируйте по своему усмотрению («yyyy/mm/dd» или «yyyy/dd/mm» — ваши примеры не позволяют однозначно определить, что у вас, md или dm).
[Я мог бы добавить, что, хотя это, по-видимому, не представляет для вас интереса в этой задаче, если у вас есть текстовые даты и вы просто хотите использовать их в других формулах, то, хотя обычно будет работать простая ссылка на них (например, ...A1+7..., чтобы получить дату на неделю позже) в вашей формуле, может быть, будет странный, даже уникальный случай, когда вы это сделаете, и все равно не получится. В этом случае просто выполните это умножение, так что пример выше будет ... A1*1+7...]
2) Если вы хотите заменить исходные данные на «реальные» даты, вы можете переформатировать диапазон дат из «текстового» в пользовательский формат «гггг-мм-дд», затем ввести «1» в ячейку где-нибудь, скопировать эту ячейку, снова выбрать диапазон дат и Вставить|Специальная|Умножить. Это преодолевает тот факт, что при переходе от текста к числам Excel никогда не пересчитывает с этой идеей. Для одной ячейки нажатие F2 после переформатирования, а затем Enter (сразу, без внесения изменений) сделает то же самое, не будучи обременительным, но если у вас 14 293 таких дат...
3) Вы также можете достичь результата 2) с помощью функции "Текст в столбцы". Просто выберите данные и нажмите "Текст в столбцы", затем выберите "Фиксированная ширина" и поместите маркер линии ширины на "10", затем, наконец, нажмите "Дата" в качестве формата данных столбца. Нажмите "Готово", и у вас будет столбец реальных дат, готовый к применению нужного формата.
Честно говоря, для одноразового использования 3) кажется проще, чем 2), и это происходит «на месте», так что это не нарушает вашу структуру. Но вы бы не хотели делать это каждый раз, когда кто-то добавляет дату, изо дня в день в течение многих лет. Имейте в виду, «однократное использование» может происходить снова и снова: скажем, вы очищаете свои данные и загружаете новый набор каждую неделю. Тогда 3) не будет индюшкой. И его подход был бы проще для создания небольшого записанного макроса для использования каждый раз.
Ну, короткий ответ получился слишком длинным, так что...
решение2
Поскольку ваши даты представлены в текстовом формате, я хотел бы предложить вам самый простой способ конвертировать их в даты Excel.
Сделайте следующее:
- Введите текст
0
в ячейку и скопируйте его, или вы также можете скопировать любую пустую ячейку. - Выберите диапазон дат.
- Щелкните правой кнопкой мышии в выпавшем меню нажмите кнопкуСпециальная вставказатем изОперацияварианты нажмите Добавлять& завершить с ХОРОШО.
- Теперь даты будут выглядеть как числа
43322
, т.е. - Так как даты уже выбраны, то простоЩелкните правой кнопкой мышии в меню нажмитеФормат ячейкикоманда.
- Наконец, примените
yyyy/mm/dd
форматирование и завершите с помощьюХорошо.