Как функция ДЕНЬНЕД определяет конкретные даты в Excel
Данная статья содержит несколько полезных формул, возвращающих конкретную дату.
Определение дня в году
1 января — это первый день года, а 31 декабря — последний. А как насчет остальных дней, идущих между ними? Следующая формула возвращает день года для даты, хранящемся в ячейке A1: =A1-ДАТА(ГОД(A1);1;0) . Например, если ячейка A1 содержит дату 16 февраля 2010 года, формула возвращает 47, потому что эта дата является 47-м днем в году.
Следующая формула возвращает количество дней, оставшихся в году с момента определенной даты (предполагается, что она содержится в ячейке A1): =ДАТА(ГОД(A1);12;31) .
Определение дня недели
Если вам необходимо определить день недели для даты, функция ДЕНЬНЕД справится с этой задачей. Функция принимает в качестве аргумента дату и возвращает целое число от 1 до 7, соответствующее дню недели. Следующая формула, например, возвращает 6, потому что первый день 2010 года приходится на пятницу: =ДЕНЬНЕД(ДАТА(2010;1;1)) .
Функция ДЕНЬНЕД использует еще и необязательный второй аргумент, обозначающий систему нумерации дней для результата. Если вы укажете 2 в качестве второго аргумента, то функция вернет 1 для понедельника, 2 — для вторника и т. д. Если же вы укажете 3 в качестве второго аргумента, то функция вернет 0 для понедельника, 1 — для вторника и т. д.
Вы можете также определить день недели для ячейки, содержащей дату, применяя пользовательский числовой формат. Ячейка, использующая следующий формат, выводит день недели: ДДДД. Имейте в виду, что ячейка действительно содержит полную дату, а не только номер дня.
Определение даты последнего воскресенья
Формула в этом разделе возвращает последний указанный день. Вы можете использовать следующую формулу для получения даты прошлого воскресенья. Если текущий день — воскресенье, то формула возвращает текущую дату. Результатом будет серийный номер даты (вам нужно отформатировать ячейку для отображения читабельной даты): =СЕГОДНЯ()-ОСТАТ(СЕГОДНЯ()-1;7) .
Чтобы изменить эту формулу для нахождения даты другого дня, а не воскресенья, поменяйте 1 на другое число в диапазоне от 2 (понедельник) до 7 (суббота).
Определение дня недели после даты
Следующая формула возвращает указанный день недели, который наступает после определенной даты. Например, вы можете применять эту формулу для определения даты первой пятницы после 4 июля 2010 года. Формула предполагает, что ячейка А1 содержит дату, а ячейка А2 — число от 1 до 7 (1 соответствует воскресенью, 2 — понедельнику и т. д.): =A1+A2-ДЕНЬНЕД(A1)+(А2 .
Если ячейка А1 содержит 4 июля. 2010, а ячейка А2 содержит б (что обозначает пятницу), то формула возвращает 9 июля, 2010. Это первая пятница после 4 июля 2010 года (дня, который приходится на воскресенье).
Нахождение n-го определенного дня недели в месяце
Вам может понадобиться формула для нахождения даты определенного по счету дня недели. Предположим, что день выплаты зарплаты в вашей компании приходится на вторую пятницу каждого месяца и вам нужно определить эти дни выплат для каждого месяца года. Следующая формула выполнит требуемый расчет: =ДАТА(А1;А2;1)+А3-ДЕНЬНЕД(ДАТА(А1;А2;1))+(А4-(А3>=ДЕНЬНЕД(ДАТА(А1;А2;1))))*7
Эта формула предполагает, что:
- ячейка А1 содержит год;
- ячейка А2 содержит месяц;
- ячейка A3 содержит номер дня (1 — воскресенье, 2 — понедельник и т. д.);
- ячейка А4 содержит число — например 2, указывающее второе появление дня недели, заданного в ячейке A3.
При использовании этой формулы для определения даты второй пятницы в июне 2010 года результатом будет 11 июня, 2010.
Определение последнего дня месяца
Чтобы определить дату, которой соответствует последний день месяца, вы можете использовать функцию ДАТА. Однако вам нужно увеличивать месяц на 1 и указывать в качестве значения дня 0. Другими словами, «0-й» день следующего месяца — это последний день текущего месяца.
Следующая формула предполагает, что дата хранится в ячейке А1. Формула возвращает дату, которой соответствует последний день месяца: =ДАТА(ГОД(А1);МЕСЯЦ(А1)+1;0) .
Вы можете модифицировать эту формулу, чтобы определить, сколько дней включает в себя указанный месяц. Следующая формула возвращает целое число, которое соответствует количеству дней в месяце для даты из ячейки А1 (убедитесь, что вы отформатировали ячейку как число, а не как дату): =ДЕНЬ(ДАТА(ГОД(А1);МЕСЯЦ(А1)+1;0))
Определение квартала даты
Для финансовых отчетов может оказаться полезным представление информации по кварталам. Следующая формула возвращает целое число от 1 до 4, которое соответствует календарному кварталу для даты в ячейке А1: =ОКРУГЛ ВВЕРХ(МЕСЯЦ(A1)/3;0) . Эта формула делит номер месяца на 3, а затем округляет результат.
Исправление записей с двузначными годами.
Современные версии Microsoft Excel достаточно умны, чтобы обнаружить некоторые очевидные ошибки в ваших данных, или, точнее, сказать, что Эксель считает ошибкой. Когда это произойдет, вы увидите индикатор ошибки (маленький зеленый треугольник) в верхнем левом углу клетки, и, когда вы выделите её, появится восклицательный знак.При нажатии на восклицательный знак отобразятся несколько параметров, относящихся к вашим данным. В случае двухзначного года программа спросит, хотите ли вы преобразовать его в 19XX или 20XX.
Если у вас имеется несколько записей этого типа, вы можете исправить их все одним махом — выделите все ячейки с ошибками, затем нажмите на восклицательный знак и выберите соответствующую опцию.
Переводим дату в текстовый формат с помощью копирования и вставки
Выделите ячейки с датами, которые нужно преобразовать, и скопируйте их;
Откройте обычный блокнот и вставьте наши данные туда, как только вы это сделаете, данные сразу же потеряют формат, т.е. станут обычным текстом (потому что в блокноте нет никаких форматов данных, кроме текста);
Выделите ячейки, куда вы будете вставлять даты и поменяйте их формат на «Текстовый»;
А теперь, заново скопируйте даты из блокнота, а затем вставьте их в Excel.
Excel сохраняет даты в виде порядковых номеров. Человеку невозможно их читать и понимать, но, таким образом, можно использовать их в функциях расчета, к примеру добавить к дате или времени какое-то количество времени (день, год и так далее).
Но, довольно часто, вам может быть нужно использовать даты в одних ячейках с текстом, так сказать, объединять.
На картинке пример объединения даты с текстом в одной ячейке. Видите как выглядит наша дата? Это формат порядкового номера Excel.
Об этой статье
Эту страницу просматривали 9386 раз.
Wikimedia Foundation. 2010.
Как прибавить (вычесть) несколько недель к дате
Когда требуется прибавить (вычесть) несколько недель к определенной дате, Вы можете воспользоваться теми же формулами, что и раньше. Просто нужно умножить количество недель на 7:
-
Прибавляем N недель к дате в Excel:
= A2 + N недель * 7
Например, чтобы прибавить 3 недели к дате в ячейке А2, используйте следующую формулу:
=A2+3*7
-
Вычитаем N недель из даты в Excel:
= А2 – N недель * 7
Чтобы вычесть 2 недели из сегодняшней даты, используйте эту формулу:
=СЕГОДНЯ()-2*7=TODAY()-2*7
Спортивный
Календарная арифметика – это дисциплина на чемпионатах мира по ментальной арифметике , которые проводятся каждые два года с 2004 года . Максимальное количество дней недели для дат с 16:00 до 21:00 должно быть определено в течение одной минуты. Оценивается лучшая из двух попыток.
год | Фамилия | страна | Результат |
---|---|---|---|
2004 г. | Маттиас Кессельшлегер | Германия | 33 |
2006 г. | Маттиас Кессельшлегер | Германия | 35 год |
2008 г. | Ян ван Конингсвельд | Германия | 40 |
2010 г. | Юсниер Виера | Куба | 48 |
2012 г. | Мягмарсурен Тууруул | Монголия | 57 год |
2014 г. | Марк Джорнет Санс | Испания | 64 |
2016 г. | Георгий Георгиев | Болгария | 66 |
2018 г. | Марк Джорнет Санс | Испания | 71 |
Мировой рекорд со скоростью 140 данных в минуту был установлен в 2018 году Юсниером Виерой из США (ранее Куба).
Индивидуальные доказательства
- ↑ См. Кристиан Целлер: Основные задачи календарного расчета решены по-новому и упрощенно. В: Württembergische Vierteljahrshefte für Landesgeschichte 5 (1882), 314f.
- ↑ Дитмар Херрманн: Algorithmen Arbeitsbuch, 1-е издание, 1992 г., Addison-Wesley, ISBN 3-89319-481-9
- ↑ Георг Глезер: Математический инструментарий. Приложения в природе и технике. 3. Издание. Elsevier, Мюнхен, 2008 г., ISBN 3-8274-1618-3 , см. Стр. 408
- ↑ Льюис Кэрролл, «Чтобы найти день недели для любой заданной даты», в Nature, том 35, 31 марта 1887 г., стр. 517
- ↑ Мартин Гарднер: Математический карнавал, Глава: «Уловки быстрого калькулятора»
- ↑ https://stat.ethz.ch/R-manual/R-devel/library/base/html/as.POSIXlt.html
- ↑ https://support.microsoft.com/en-us/office/date-systems-in-excel-e7fe7167-48a9-4b96-bb53-5612a800b487
- ↑ https://docs.microsoft.com/en-us/office/troubleshoot/excel/wrongly-assumes-1900-is-leap-year
- ↑ https://support.sas.com/publishing/pubcat/chaps/59411.pdf
- ↑ https://www.sas.com/de_ch/training/home/expertentipps/expertentipp-berechnen-von-datumswerte-in-vergangenheit-und-zukunft.html
- ↑ http://www.recordholder.org/de/events/worldcup/
- ↑ http://www.recordholder.org/en/records/dates.html
Как отличить обычные даты Excel от «текстовых дат»
Импортированные данные (или данные, введенные неправильно) могут выглядеть как обычные даты Excel, но они не ведут себя так, как выглядят. Microsoft Excel обрабатывает такие записи как текст. Поэтому вы не сможете правильно отсортировать таблицу в хронологическом порядке, а также использовать эти «неправильные даты» в формулах, сводных таблицах, диаграммах или любом другом инструменте Excel, который работает с временем.
Сначала давайте изучим несколько признаков, которые могут помочь определить, записана в ячейке датировка либо текст.
Даты |
Текстовые значения |
· Выровнено по правому краю. · Указан формат даты в поле «Числовой формат» на вкладке «Главная » — «Число» . |
· По левому краю по умолчанию. · Общий формат отображается в поле «Число» на вкладке «Главная» — «Число». ·В строке формул может быть виден апостроф перед содержимым ячейки. |
Их можно легко распознать, немного расширив столбцы, выделив один из них, выбрав команду Формат ► Ячейки ► Выравнивание (Format ► Cells ► Alignment) и для параметра По горизонтали (Horizontal) выбрав значение Общий (General) (это вид ячеек по умолчанию). Щелкните кнопку ОК и внимательно просмотрите на таблицу. Если какие-либо значения не выровнены по правому краю, значит Excel не считает их датами.
Формат «Дата – Время».
Если нужно показать и дату, и время, вы можете просто объединить в единое целое те форматы, о которых мы говорили выше.
На скриншоте ниже вы видите несколько вариантов, как могут выглядеть ваши значения:
Ничего сложного: сначала описываем дату, затем – время.
Преобразование даты текста дд/мм/гг в мм/дд/гг
Чтобы преобразовать даты в текстовом формате дд/мм /гг в истинную дату в формате мм/дд/гг, вы можете использовать формулу, основанную на функции ДАТА. В показанном примере формула в C5:
Который преобразует текстовое значение в B5 «29/02/16» в правильную дату Excel.
Ядром этой формулы является функция ДАТА, которая используется для сборки правильного значения даты Excel. Функция ДАТА требует действительных значений года, месяца и дня, поэтому они анализируются из исходной текстовой строки следующим образом:
Значение года извлекается с помощью функции ПРАВСИМВ:
ПРАВСИМВ получает по крайней мере 2 символа от исходного значения. Число 2000 добавлено к результату, чтобы создать действительный год. Это число переходит в ДАТА в качестве аргумента год.
Значение месяца извлекается с помощью:
ПСТР извлекает символы 4-5. Результат переходит в ДАТА в качестве аргумента месяц.
Значение дня извлекается с помощью:
ЛЕВСИМВ захватывает последние 2 символа исходного текстового значения, которое переходит в ДАТА в качестве аргумента дня.
Три значения, извлеченные выше, входят в ДАТУ следующим образом:
Хотя месяц и день предоставляются в виде текста, функция ДАТА автоматически преобразуется в числа и возвращает действительную дату.
Примечание: значение 2016 года автоматически было преобразовано в число при добавлении 2000.
Если исходное текстовое значение содержит дополнительные начальные или конечные символы пробела, вы можете добавить функцию СЖПРОБЕЛЫ для удаления:
Как превратить текстовые строки с пользовательскими разделителями в даты
Если запись содержит какой-либо разделитель, отличный от косой черты (/) или тире (-), функции Excel не смогут распознать их как даты и вернут ошибку #ЗНАЧ!. Чаще всего такие «неправильные» разделители – это пробел и запятая.
Чтобы это исправить, вы можете запустить инструмент поиска и замены, чтобы заменить этот неподходящий разделитель, к примеру, косой чертой (/):
- Выберите все ячейки, которые вы хотите превратить в даты.
- Нажмите Ctrl + H, чтобы открыть диалоговое окно «Найти и заменить».
- Введите свой пользовательский разделитель (запятую, к примеру) в поле Найти и косую черту в Заменить.
- Нажмите Заменить все.
Теперь у ДАТАЗНАЧ или ЗНАЧЕН должно быть проблем с конвертацией текстовых строк в даты. Таким же образом вы можете исправить записи, содержащие любой другой разделитель, например, пробел или обратную косую черту.
Если вы предпочитаете решение на основе формул, вы можете использовать функцию ПОДСТАВИТЬ (SUBSTITUTE в английской версии), как это мы делали на одном из скриншотов ранее:
И текстовые строки преобразуются в даты, все при помощи одной формулы.
Как видите, функции ДАТАЗНАЧ или ЗНАЧЕН довольно мощные, но они, к сожалению, имеют свои ограничения. Например, если вы пытаетесь работать со сложными конструкциями, такими как четверг, 01 января 2015 г., ни одна из них не сможет помочь.
К счастью, есть решение без формул, которое может справиться с этой задачей, и следующий раздел даст нам пошаговое руководство.
Как в Excel преобразовать дату в год и месяц
В этом учебном материале по Excel мы рассмотрим примеры того как преобразовать дату в год и месяц
Описание
Чтобы преобразовать обычную дату Excel в формат ГГГГММ (например, 1 апреля 2021 г. -> 202104), вы можете использовать функцию ТЕКСТ. В показанном примере формула в C6:
Пояснение
Функция ТЕКСТ применяет указанный вами числовой формат к числовому значению и возвращает результат в виде текста. В этом случае представлен числовой формат «ГГГГММ», который объединяет 4-значное значение года и 2-значное значение месяца.
Параметр «Только отображение»
Если вы хотите отображать дату только с годом и месяцем, вы можете просто применить произвольный числовой формат «ГГГГММ» к дате (датам). Это заставит Excel отображать год и месяц вместе, но не изменит базовую дату.
Как увеличить шрифт при печати на принтере?
Чтобы решить данную задачу в первую очередь откройте документ, который предстоит распечатать при помощи любого текстового редактора, к примеру, большой популярностью в наши дни пользуется Word.
Обратите внимание на размер шрифта, который вы видите на мониторе – он будет соответствовать тому, что получится при распечатке документа только при условии, что масштаб отображения текста в данном программном обеспечении равен 100 процентам.
Чтобы привести масштаб к оптимальному значению, т.е. 100 процентам, покрутите колесико мышки, одновременно нажав на клавишу Ctrl
Кроме того, решить такую небольшую задачку можно и с помощью специального ползунка, расположенного на панели инструментов текстового редактора. Успешно решив проблему масштабирования отображаемого на мониторе текста, перейдите к следующим шагам.
Выделите нужный участок текстового документа, который вы хотите увеличить в размерах или просто нажмите на сочетание клавиш Ctrl+A, чтобы выделить весь открытый текст. Далее откройте контекстное меню, щелкнув по выделенному фрагменту правой кнопкой мышки, и среди списка всевозможных настроек кликните на «Шрифт…» — рядом находится большая буква «А».
В открывшемся окне настроек вам следует определиться со стилем шрифта, начертанием (обычный, курсив, полужирный, полужирный курсив), выбрать размер, определить цвет текста и т.п. Конкретно в данном случае нужно лишь изменить значение размера выделенного текста.
Решив проблему увеличения шрифта, откройте окно печати с помощью сочетания клавиш Ctrl+P и убедитесь в том, что в выпадающем меню, которое расположено рядом с пунктом «по размеру страницы» было выбрано значение «текущий».
Кликните на кнопку, открывающую свойства принтера. Содержимое нового окна будет напрямую зависеть от того, какие драйвера девайса были использованы для установки на вашем ПК.
Если в окне настроек присутствуют поля «Масштаб вручную» и «Выходной размер», то убедитесь в том, что установленные в них значения не способствуют уменьшению текущего текста.
Если все нормально и настройки полностью вас удовлетворяют, воспользуйтесь опцией предварительного просмотра, после чего кликните на кнопку, запускающую процесс печати, и дождитесь результата.
Как увеличить область печати в эксель. Эксель не так прост, как Ворд, поэтому многие его не понимают, и не любят работать в нем. Взять хотя бы такой пример. Вам необходимо распечатать таблицу, но на выходе получается страница с такими мелкими данными, что рассмотреть их можно только с помощью лупы. Одно время наши сотрудники меня просто замучили этим вопросом. Что они только не пытались делать, и раздвигали колонки вручную, и изменяли масштаб таблицы, и изменяли размер шрифта, но при выходе листа из принтера все равно выходило одно и тоже.
Использование текста в столбцах для преобразования в формат даты
Если ваши даты отформатированы в виде строки чисел, а формат ячейки установлен в текст, текст в столбцы может помочь вам преобразовать эту строку чисел в более узнаваемый формат даты.
-
Выберите ячейки, для которых вы хотите изменить формат даты.
-
Убедитесь, что они отформатированы как текст. (Нажмите Ctrl + 1, чтобы проверить их формат).
-
Выберите вкладку « Данные
-
В группе «Инструменты данных» выберите « Текст в столбцы» .
-
Выберите «С разделителями» или « Фиксированная ширина» , затем нажмите « Далее» .
Большую часть времени следует выбирать с разделителями, так как длина даты может колебаться.
-
Снимите флажки со всех разделителей и выберите Далее .
-
В области « Формат данных столбца» выберите « Дата» , выберите формат строки даты в раскрывающемся меню, затем нажмите « Готово» .
Переводим дату в текстовый формат
Когда нам нужно привести дату в определенный формат (к примеру, 16-08-2016), мы можем вызвать функцию ТЕКСТ.
Итак, как она работает.
Она принимает два аргумента:
Значение — в нашем случае это дата, которую вы хотите преобразовать в текст нужного формата. Это может быть просто дата, ссылка на ячейку с датой, или результат формулы.
Формат_текста — формат, в котором нужно показать нашу дату. Формат должен быть указан в двойных кавычках.
Какие есть форматы и разделители?
Формат дат состоит из 4 составляющих:
Ниже приведены форматы, которые можно использовать для каждой части:
- Д — день будет отображаться без нуля, т.е. 1 будет отображаться как 1, а 12 как 12.
- ДД — день будет отображаться с нулем, т.е. 1 будет 01, а 12 как 12.
- ДДД — будет отображаться день недели(сокращенно), т.е. «Пятница» будет «Пят».
- ДДДД — будет отображаться день недели(полностью), т.е. «Пятница» будет «Пятница».
- М — месяц будет отображаться без нуля, т.е. 1 будет отображаться как 1, а 12 как 12.
- ММ — месяц будет отображаться с нулем, т.е. 1 будет 01, а 12 как 12.
- МММ — месяц будет отображаться с сокращенным названием, т.е. «Сентябрь» будет «Сен».
М — месяц будет отображаться без нуля, т.е. 1 будет отображаться как 1, а 12 как 12.ММ — месяц будет отображаться с нулем, т.е. 1 будет 01, а 12 как 12.МММ — месяц будет отображаться с сокращенным названием, т.е. «Сентябрь» будет «Сен».ММММ — месяц будет отображаться с полным названием, т.е. «Сентябрь» будет «Сентябрь».
- ГГ — год будет отображаться как 2 цифры, т.е. 2019 будет 19.
- ГГГГ — год будет отображаться полностью, т.е. 2019 будет 2019.
- «/» : это просто разделитель между цифрами в дате, т.е. отображаться будет как 01/01/2019.
- «-»: такой же разделитель между цифрами, т.е. отображаться будет как 01-01-2019.
- Пробелы и запятые: тут немного посложней, вы можете комбинировать и создавать свои форматы отображения, например, 01 января, 2019 года.
Итак, разберем примеры.
Как преобразовать дату в текст в Excel
В Excel каждой дате соответствует определенное число дней, прошедших с принятой точки отсчета – 1 января 1900 года. Функция ДАТАЗНАЧ возвращает число, соответствующее числовому представлению даты, которая указана в виде текста, с учетом указанной выше особенности хранения дат в Excel. Формат возвращаемого значения зависит от настроек формата ячейки, в которой будет выведен результат вычислений.
Зачастую даты в Excel записывают без использования функции ДАТА. Табличный редактор определяет такие значения как обычные текстовые строки. Поэтому процедуры форматирования, сортировки по дате, а также различные вычисления (например, разница дат) приводят к некорректным результатам или появлению ошибок. Поэтому функция ДАТАЗНАЧ полезна для преобразования текстовых значений к данным формата Дата.
Пример 1. В таблице Excel находится столбец, в котором хранятся даты как текстовые строки, при этом записи имеют вид: «28 сентября 2018 года». Преобразовать эти значения в данные формата Дата.
Вид таблицы данных:
Для получения даты в формате, поддерживаемом Excel, используем следующую функцию:
Единственный аргумент состоит из подстрок, склеенных амперсандами (&):
Функция ЛЕВСИМВ возвращает номер дня (первые два символа строки, содержащейся в ячейке A2)
Очень важно, чтобы однозначные номера дней (например, 8 апреля) записывались как 08 апреля (имели нуль в начале), иначе будет возникать ошибка.
Комбинация функций ПСТР и ЛЕВСИМВ выделяет из строки три первых символа названия месяца и возвращает их.
Комбинация функций ПСТР и ПРАВСИМВ выделяет 4 символа, соответствующие числовому представлению года.. Растянем формулу вниз по столбцу, чтобы рассчитать остальные значения:
Растянем формулу вниз по столбцу, чтобы рассчитать остальные значения:
Таким образом мы преобразовали текстовые строки в формат даты, которые теперь можно использовать для вычислений в формулах.
Часто задаваемые вопросы
Можно ли восстановить несохраненный или перезаписанный файл Microsoft Excel при помощи встроенных средств?
Да. Чтобы восстановить нужный Excel файл можно использовать функцию автосохранения. Более детально как это сделать читайте на нашем сайте.
Сначала пройдите процесс регистрации на сайте One Drive, а затем войдите в ваш One Drive аккаунт в программе Microsoft Excel. Более детально читайте на нашем сайте.
Воспользуйтесь программой RS Office Recovery. Программа обладает интуитивно понятным интерфейсом, благодаря чему вы сможете восстановить ваш файл независимо от уровня владения компьютером.
Microsoft Excel сохраняет все версии файла, соответственно вы можете вернуть исходный файл. Откройте меню Файл – Сведения – Управление книгой и выберите нужную версию файла.
Преобразовать дату в Юлианский формат
= ГОД (дата) и ТЕКСТ (дата-ДАТА (ГОД (дата); 1;0); «000»)
Если вам нужно преобразовать дату в формат даты в Юлиане в Excel, вы можете сделать это, построив формулу, в которой используются функции ТЕКСТ, ГОД и ДАТА.
«Формат даты в Юлиане» относится к формату, в котором значение года для даты комбинируется с «порядковым днем для этого года» (т. Е. 14-й день, 100-й день и т. д.) для формирования штампа даты.
Есть несколько вариантов. Дата в этом формате может включать в себя 4-значный год (гггг) или год с двумя цифрами (гг), а номер дня может быть заполнен нулями или может быть не дополнен тремя цифрами. Например, на дату 21 января 2017 года вы можете увидеть:
Для двухзначного года + число дня без дополнения используйте:
Для двузначного года + число дня, дополненное нулями до 3-х мест:
Для четырехзначного года + число дня, дополненное нулями до 3-х мест:
Эта формула строит окончательный результат в 2 частях, объединенных конъюнкцией с оператором амперсанда (&).
Слева от амперсанда мы генерируем значение года. Чтобы извлечь 2-значный год, мы можем использовать функцию ТЕКСТ, которая может применять числовой формат внутри формулы:
Чтобы извлечь полный год, используйте функцию ГОД:
С правой стороны амперсанда нам нужно определить день года. Мы делаем это, вычитая последний день предыдущего года с того дня, с которым мы работаем. Поскольку даты — это просто серийные номера, это даст нам «n» день года.
Чтобы получить последний день года предыдущего года, мы используем функцию ДАТА. Когда вы даете ДАТА значение года и месяца и ноль на день, вы получаете последний день предыдущего месяца. Так:
B5-ДАТА(ГОД (B5); 1;0)
Дает нам последний день предыдущего года, который на примере 31 декабря 2015 года.
Теперь нам нужно заполнить значение дня нулями. Опять же, мы можем использовать функцию ТЕКСТ:
ТЕКСТ (B5-ДАТА (ГОД (B5); 1;0); «000»)
Если вам нужно преобразовать юлианскую дату назад к обычной дате, вы можете использовать формулу, которая анализирует юлианскую дату и пробегает ее через функцию даты с месяцем 1 и днем, равным «n-му» дню. Например, это создаст дату с Юлианской датой ггггддд, например, 1999143.
= ДАТА(ЛЕВСИМВ(A1;4); 1; ПРАВСИМВ(A1;3)) // для ггггддд
Если у вас есть только номер дня (например, 100, 153 и т. д.), вы можете жестко закодировать год и вставить следующий день:
Где A1 содержит номер дня. Это работает, потому что функция ДАТА умеет настраивать значения вне диапазона.
Строка Excel VBA на дату
В Vba есть метод, с помощью которого мы можем преобразовать заданную строку в дату, и этот метод известен как функция CDATE в vba, это встроенная функция в VBA, и части, необходимые для этой функции, должны сначала преобразовать строку в число, а затем мы преобразуем данное число в дату. Формат результата зависит только от формата системной даты.
Одна из распространенных проблем, с которыми мы все сталкиваемся при работе с Excel, — это «Дата и время», которые часто сохраняются в виде текстовых значений и изначально остаются незамеченными. Но когда им потребуется использовать это время, мы узнаем, что эти значения хранятся в виде текста, и мы вообще не знаем, что с ними делать. «Дата и время» — это две объединенные вещи в одном элементе, но после того, как эти значения сохраняются в виде текстовых значений, работать с ними становится сложно.
Как преобразовать строковые значения в дату?
Пример # 1
После объявления переменной VBA и присвоения ей значения String все, что присвоено этой переменной, будет рассматриваться только как строка. Для примера посмотрите приведенный ниже код.
Код:
Sub String_To_Date () Dim k As String k = "10-21" MsgBox k End Sub
В приведенном выше коде переменная «k» определена как тип данных «String», и для этой переменной мы присвоили значение «10-21».
Хорошо, давайте запустим код и посмотрим, что мы получим в окне сообщения в VBA.
Мы получили только значение 10-21, но обычно эти значения представляют собой дату, а не строковые значения. Таким образом, даже несмотря на то, что назначенным типом данных является «Строка», мы все равно можем преобразовать данные на текущий момент, используя функцию преобразования типа данных CDATE VBA.
Код:
Sub String_To_Date () Dim k As String k = "10-21" MsgBox CDate (k) End Sub
В приведенном выше примере, прежде чем мы покажем результат переменной «k» в окне сообщения, мы назначили функцию CDATE. Сделана небольшая корректировка, давайте посмотрим, насколько большое влияние это окажет.
Теперь мы увидим результат как «Дата», а не как «Строку».
Пример # 2
Теперь посмотрите на приведенный ниже код для примера.
Код:
Sub String_To_Date () Dim k As String k = 43599 MsgBox k End Sub
В этот момент приведенный выше код покажет результат как «43599», как мы назначили выше.
Но как только мы используем функцию CDATE, она преобразуется в значение даты.
Код:
Sub String_To_Date () Dim k As String k = 43599 MsgBox CDate (k) End Sub
Результат после применения функции CDATE будет следующим.
Поскольку в Excel дата хранится в виде серийных номеров, присвоенный нами серийный номер 43599 равен дате 14.05.2019, когда применяется формат даты.
Мы также можем применить к дате формат «ДД-МММ-ГГГГ» для точного чтения даты.
Код:
Sub String_To_Date1 () Dim k As String Dim DateValue As Date k = 43599 DateValue = CDate (k) Формат MsgBox (DateValue, «DD-MMM-YYYY») End Sub
Выше я объявил одну дополнительную переменную для хранения результата. Для этой переменной я применил функцию преобразования CDATE.
Затем я использовал функцию FORMAT для применения формата «ДД-МММ-ГГГГ», и результат будет таким, как показано ниже.
Благодаря этому мы можем четко прочитать часть дня и месяц. Это также зависит от формата вашей системной даты в Excel, поскольку мой формат системной даты был «ММ-ДД-ГГГГ», он отображался таким образом, но это не должно быть препятствием для форматирования.
Пример # 3
Теперь посмотрим, как даты форматируются как текстовые значения в ячейках листа. Ниже представлены даты, хранящиеся в виде текста на листе.
В столбце A от A2 до A12 у нас есть значения для поиска по дате, но когда мы смотрим на вкладку формата, он показывает формат «Текст». Теперь нам нужно преобразовать эти значения из текста в дату.
Ниже приведен код, который я написал для преобразования значений даты в текстовом формате в фактические даты.
Код:
Sub String_To_Date2 () Dim k As Long 'Данные находятся в более чем одной ячейке, поэтому необходимо пройти через каждую ячейку' Open For Loop For k = 2 to 12 'Данные начинаются со 2-й строки и заканчиваются на 12-й строке, поэтому от 2 до 12 Cells (k, 2) .Value = CDate (Cells (k, 1) .Value) Next k End Sub
Если вы запустите код, он даст нам результат ниже.
- CDATE — это функция преобразования типа данных, но ее можно использовать для преобразования сохраненной даты строки VBA в фактические значения даты.
- Результат формата функции CDATE зависит только от формата системной даты.
- Даты хранятся в Excel как серийные номера, поэтому для их отображения в виде дат требуется форматирование.