У меня есть столбец в Excel, который показывает дату, но не в формате даты, он в текстовом формате, и значения для тех дат, которые имеют один символ для месяца или дня, не содержат ноль перед ними.

Например, у нас 2017/1/3 или 2017/11/4, но я хочу изменить их на 2017/01/03 // 2017/11/04.

Как я могу сделать это простым способом без использования формата даты? Вот что я попробовал, это слишком долго и сложно:

  1. разделить дату на год, месяц и дни
  2. если длина месяца <2, добавьте 0 до месяца
  3. если длина дня <2, добавьте 0 до дня
  4. построил новую дату

2 ответа2

1

Все даты, которые вы используете в качестве примеров, отлично распознаются Excel как даты. Поэтому, если вам нужны "настоящие" даты, которые вы можете форматировать по своему усмотрению и которые Excel может напрямую использовать в математике:

1) Если вы хотите, чтобы исходные данные сохранялись и чтобы были доступны данные о форматируемой дате, просто используйте формулу = A1 * 1 (если ваша дата находится в ячейке A1), где бы вы ни хотели выполнить работу (возможно, через несколько столбцов, или на другой странице ... все, что подходит вашей схеме). И форматируйте по своему усмотрению («гггг / мм / дд» или «гггг / дд / мм» - ваши примеры не дают однозначного выражения, которое, мд или дм, у вас есть).

[Я мог бы добавить, что, хотя это не кажется вам интересным для этой проблемы, что если у вас есть текстовые даты и вы просто хотите использовать их в других формулах, в то время как обычно будет полезно просто ссылаться на них (как в ...А1+7 ... чтобы получить дату через неделю) в вашей формуле, может быть, будет странный, даже уникальный случай, когда вы сделаете это, и все равно не получится. В этом случае просто сделайте это умножение, чтобы пример выше был ... A1 * 1+7 ...]

2) Если вы хотите заменить исходные данные "реальными" датами, вы можете переформатировать диапазон дат от "текстового" до пользовательского формата «гггг-мм-дд», а затем ввести "1" в ячейку где-нибудь, скопируйте эту ячейку, снова выберите диапазон дат и вставьте | Special | Multiply. Это преодолевает тот факт, что при переходе от текста к числам Excel никогда не переоценивает эту идею. Для отдельной ячейки, нажав F2 после переформатирования, затем Enter (немедленно, без изменений) сделает то же самое, не обременительно, но если у вас есть 14 293 из этих дат ...

3) Вы также можете получить результат 2) с помощью функции "Текст в столбцы". Просто выберите данные и нажмите "Текст в столбцы", затем выберите "Фиксированная ширина" и поместите маркер ширины линии на "10", а затем, наконец, нажмите "Дата" в качестве формата данных столбца. Нажмите "Готово", и у вас будет готов столбец реальных дат для применения желаемого формата.

Честно говоря, для одноразового использования 3) кажется проще, чем 2), и это происходит "на месте", поэтому оно не нарушает вашу структуру. Но вы не хотели бы делать это каждый раз, когда кто-то добавляет дату, изо дня в день на протяжении многих лет. Имейте в виду, "одноразовое использование" может происходить снова и снова: скажем, вы очищаете свои данные и загружаете новый набор каждую неделю. Тогда 3) не будет индейкой. И его подход будет легче сделать каждый раз записанным небольшим макросом для использования.

Ну, маленький ответ стал крошечным, так что ...

1

Поскольку ваша Дата в формате TEXT, поэтому я хотел бы предложить вам самый простой способ конвертировать их в Excel Date.

Сделайте следующее:

  1. Введите 0 в ячейке и скопируйте, или вы также можете скопировать любую пустую ячейку.
  2. Выберите диапазон дат.
  3. Щелкните правой кнопкой мыши и во всплывающем меню выберите « Специальная вставка», затем в опциях « Операция» нажмите « Добавить» и нажмите « ОК».
  4. Теперь даты будут выглядеть как числа, т.е. 43322 .
  5. Поскольку даты уже выбраны, просто щелкните правой кнопкой мыши и в меню выберите команду Форматировать ячейку.
  6. Наконец примените формат yyyy/mm/dd и закончите с помощью ОК.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .