Excel преобразование текста в дату

Работа с текстом в excel

Преобразование даты в текст

Если вам нужно преобразовать даты в текст (т. е. дату в преобразование строк), вы можете использовать функцию ТЕКСТ. Функция ТЕКСТ может использовать такие шаблоны, как «дд / мм / гггг», «гггг-мм-дд» и т. д., чтобы преобразовать действительную дату в текстовое значение.

Даты и время в Excel хранятся в виде серийных номеров и преобразуются в удобочитаемые значения «на лету» с использованием числовых форматов. Когда вы вводите дату в Excel, вы можете применить числовой формат, чтобы отобразить эту дату по своему усмотрению. Аналогичным образом, функция ТЕКСТ позволяет преобразовать дату или время в текст в предпочтительном формате. Например, если дата 9 января 2000 года введена в ячейку A1, вы можете использовать TEКСТ, чтобы преобразовать эту дату в следующие текстовые строки следующим образом:

Вы можете использовать TEКСТ для преобразования дат или любого числового значения в фиксированном формате. Вы можете просмотреть доступные форматы, перейдя в меню «Формат ячеек» (Win: Ctrl + 1, Mac: Cmd + 1) и выбрав различные категории в списке слева.

Особенности синтаксиса функции ДАТАЗНАЧ в Excel

Функция ДАТАЗНАЧ имеет следующую синтаксическую запись:

Единственным аргументом (обязателен для заполнения) является дата_как_текст – текстовое представление даты, которое может быть преобразовано к данным формата Дата. В Excel есть несколько допустимых вариантов записи дат: 13-июн-2019, 13.06.2019. Любой из этих вариантов записи может быть использован в качестве аргумента функции ДАТАЗНАЧ.

  1. Если текстовые строки, характеризующие даты, хранятся в ячейках Excel, большинство функций выполняют преобразования данных к требуемому типу автоматически. Однако, во избежание возможных ошибок, рекомендуется использовать функцию ДАТАЗНАЧ.
  2. Рассматриваемая функция ориентируется на показания часов, встроенных в ПК, на котором используется редактор Excel. Если в качестве текстового представления даты указана неполная дата, например «13.06», данные о годе будут взяты из текущего времени. Например, функция =ДАТАЗНАЧ(“13.06”) вернет значение 43629, которое после установления формата Дата для ячейки будет преобразовано в 13.06.2019.
  3. Если в качестве аргумента функции ДАТАЗНАЧ было передано значение, не преобразуемое к формату Дата (например, =ДАТАЗНАЧ(23), =ДАТАЗНАЧ(ИСТИНА), =ДАТАЗНАЧ(“333”)), будет возвращен код ошибки #ЗНАЧ!
  4. Для склеивания значений, содержащихся в отдельных ячейках, чтобы «собрать» их в одну строку, характеризующую значение даты, следует использовать символ “&”. Например, в ячейках A1, B1, C1 хранятся значения 10, 3 и 2019 соответственно. Чтобы получить данные формата Дата и записать их в отдельную ячейку, можно использовать следующую функцию — =ДАТАЗНАЧ(A1&».»&B1&».»&C1).

Преобразование даты в текст на практических примерах наглядно.

Часто приходится сталкиваться с вопросом о том, как преобразовать дату в Excel. Преобразовать в текст числовые данные не так и сложно. Например, можно взять любую текстовую функцию, результатом которой является строка. В частности, можно применить функцию сцепить, указав в качестве ее параметра исходное значение. Можно использовать функцию текст, задав знак @ в качестве формата значения. Можно, наконец, использовать функции ПРАВСИМВ и ЛЕВСИМВ, задав для них вторым параметром число извлекаемых ячеек не менее 15, а лучше еще больше. Подробнее, если это тоже интересно, посмотрите в нашем материале.

Рисунок 1

Как видно из приведенного скриншота, все указанные выше способы сработали отлично. Однако при попытке использовать все эти способы для преобразования в текстовый формат, формат  даты или  формат времени  мы потерпим неудачу. Нет, текстовый формат получится, но само значение, мягко говоря, будет непохожим на исходное.

Рисунок 2

Так как же преобразовать дату в текст в Excel? На самом деле все не так сложно. Дело в том, что и дату, и время Excel на самом деле обрабатывает как число. Дата – это количество дней, прошедших после 31 декабря 1900 года. Например, 2 февраля 1900 года Excel воспринимает как число 33, a число 400 при преобразовании формата ячейки в дату будет показано как 3 февраля 1901 года. Время же — это дробь, показывающая часть от общего числа часов в сутках. К примеру, 3 часа утра это три часа из 24 или 1/8, или 0,125. С другой стороны, 12:00 это ровно половина суток, или 0,5.

Рисунок 3

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

Прежде всего можно так же воспользоваться функцией СЦЕПИТЬ, но в качестве ее параметров использовать значение числа, номера месяца и номера года. Их можно получить с помощью соответствующих функций ДЕНЬ, МЕСЯЦ и ГОД. В качестве параметров необходимо для каждой из них указать дату, которую надо преобразовать в текст. Не забываем так же указывать явным образом разделитель элементов даты, прописывая их в кавычках. В моем случае дата разделяется точками, у кого-то это могут быть пробелы и другие варианты.

В случае преобразования времени аналогично можно использовать функции ЧАС  и МИНУТЫ. Их параметром будет значение исходного времени, а в качестве разделителя обычно применяют двоеточие:

Рисунок 4

Обратите внимание. Если время является началом часа, то есть ровно 18:00, ровно 3:00 и прочее, то минуты будут показаны в виде только одного нуля

Чтобы это исправить, необходимо преобразовать минуты в текст отдельно с помощью функции ТЕКСТ.

Рисунок 5

Второй способ, применяемый для того, чтобы преобразовать дату в текст, заключается непосредственно в применении функции ТЕКСТ. Для нее необходимо указать два параметра. Первый это обрабатываемое значение, а второй – нужный формат, указываемый в кавычках

Для даты и времени применяются такие варианты (ОБРАТИТЕ ВНИМАНИЕ НА РЕГИСТР БУКВ И НА ТО, ЧТО ВСЕ БУКВЫ РУССКИЕ!)

  • ДД или дд – номер дня месяца, то есть число;
  • ДДД или ддд – краткое название дня недели для указанной даты;
  • ДДДД или дддд – полное название дня недели;
  • ММ – номер месяца;
  • МММ – краткое название месяца для данной даты;
  • ММММ – полное название месяца;
  • ГГГГ или гггг – номер года из четырех чисел;
  • ГГ  либо гг последние две цифры года ;
  • ЧЧ или чч – часы в указанном времени;
  • мм – минуты;
  • СС или сс  – секунды.

Варианты английского формата. Тут все буквы английские!

  • DD или dd – номер дня месяца, то есть число;
  • DDD или ddd – краткое название дня недели для указанной даты;
  • DDDD или dddd – полное название дня недели;
  • MM – номер месяца;
  • MMM – краткое название месяца для данной даты;
  • MMMM– полное название месяца;
  • YYYY или yyyy – номер года из четырех чисел;
  • YY  либо yy последние две цифры года ;
  • HH или hh – часы в указанном времени;
  • mm – минуты;
  • SS или ss – это минуты.

Запомнить форматы несложно. Это первые буквы соответствующих слов. Единственное, что надо запомнить – варианты для месяцев и минут. В формате для месяцев используем ОБЯЗАТЕЛЬНО БОЛЬШИЕ БУКВЫ, а для минут ОБЯЗАТЕЛЬНО МАЛЕНЬКИЕ. Иначе получите неверный результат!

Рисунок 6

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

Строка 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 как серийные номера, поэтому для их отображения в виде дат требуется форматирование.

Преобразование даты текста дд/мм/гг в мм/дд/гг

Чтобы преобразовать даты в текстовом формате дд/мм /гг в истинную дату в формате мм/дд/гг, вы можете использовать формулу, основанную на функции ДАТА. В показанном примере формула в C5:

Который преобразует текстовое значение в B5 «29/02/16» в правильную дату Excel.

Ядром этой формулы является функция ДАТА, которая используется для сборки правильного значения даты Excel. Функция ДАТА требует действительных значений года, месяца и дня, поэтому они анализируются из исходной текстовой строки следующим образом:

Значение года извлекается с помощью функции ПРАВСИМВ:

ПРАВСИМВ получает по крайней мере 2 символа от исходного значения. Число 2000 добавлено к результату, чтобы создать действительный год. Это число переходит в ДАТА в качестве аргумента год.

Значение месяца извлекается с помощью:

ПСТР извлекает символы 4-5. Результат переходит в ДАТА в качестве аргумента месяц.

Значение дня извлекается с помощью:

ЛЕВСИМВ захватывает последние 2 символа исходного текстового значения, которое переходит в ДАТА в качестве аргумента дня.

Три значения, извлеченные выше, входят в ДАТУ следующим образом:

Хотя месяц и день предоставляются в виде текста, функция ДАТА автоматически преобразуется в числа и возвращает действительную дату.

Примечание: значение 2016 года автоматически было преобразовано в число при добавлении 2000.

Если исходное текстовое значение содержит дополнительные начальные или конечные символы пробела, вы можете добавить функцию СЖПРОБЕЛЫ для удаления:

Преобразовать в число

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

  1. Сначала выберите ячейки, которые вы хотите преобразовать обратно в числовой формат. Вы увидите желтый бриллиант рядом с выделением с восклицательным символом в середине.
  1. Выберите этот символ. В раскрывающемся списке выберите «Преобразовать в число».

Это обновит все выбранные вами текстовые числа до общего числового формата данных.

Вы узнаете, что это сработало, когда все числа в вашем выборе переключились с выравнивания по левому краю в ячейках по правому краю.

Преобразовать дату в Юлианский формат

Если вам нужно преобразовать дату в формат даты в Юлиане в Excel, вы можете сделать это, построив формулу, в которой используются функции ТЕКСТ, ГОД и ДАТА.

«Формат даты в Юлиане» относится к формату, в котором значение года для даты комбинируется с «порядковым днем для этого года» (т. Е. 14-й день, 100-й день и т. д.) для формирования штампа даты.

Есть несколько вариантов. Дата в этом формате может включать в себя 4-значный год (гггг) или год с двумя цифрами (гг), а номер дня может быть заполнен нулями или может быть не дополнен тремя цифрами. Например, на дату 21 января 2017 года вы можете увидеть:

Для двухзначного года + число дня без дополнения используйте:

Для двузначного года + число дня, дополненное нулями до 3-х мест:

Для четырехзначного года + число дня, дополненное нулями до 3-х мест:

Эта формула строит окончательный результат в 2 частях, объединенных конъюнкцией с оператором амперсанда (&).

Слева от амперсанда мы генерируем значение года. Чтобы извлечь 2-значный год, мы можем использовать функцию ТЕКСТ, которая может применять числовой формат внутри формулы:

Чтобы извлечь полный год, используйте функцию ГОД:

С правой стороны амперсанда нам нужно определить день года. Мы делаем это, вычитая последний день предыдущего года с того дня, с которым мы работаем. Поскольку даты — это просто серийные номера, это даст нам «n» день года.

Чтобы получить последний день года предыдущего года, мы используем функцию ДАТА. Когда вы даете ДАТА значение года и месяца и ноль на день, вы получаете последний день предыдущего месяца. Так:

Дает нам последний день предыдущего года, который на примере 31 декабря 2015 года.

Теперь нам нужно заполнить значение дня нулями. Опять же, мы можем использовать функцию ТЕКСТ:

Если вам нужно преобразовать юлианскую дату назад к обычной дате, вы можете использовать формулу, которая анализирует юлианскую дату и пробегает ее через функцию даты с месяцем 1 и днем, равным «n-му» дню. Например, это создаст дату с Юлианской датой ггггддд, например, 1999143.

Если у вас есть только номер дня (например, 100, 153 и т. д.), вы можете жестко закодировать год и вставить следующий день:

Где A1 содержит номер дня. Это работает, потому что функция ДАТА умеет настраивать значения вне диапазона.

Функция РАЗНДАТ – разность двух дат в днях, месяцах и годах

Предположим, вы работаете в пенсионном фонде и хотите определить трудовой стаж в количестве лет, дней, месяцев и так далее. Это можно сделать с помощью функции РАЗНДАТ.

Ее синтаксис элементарный.

РАЗНДАТ(начальная_дата; конечная_дата; способ_измерения)

Единственный из этих аргументов, который действительно может вызвать вопросы у неподготовленного читателя – это способ измерения. С его помощью мы задаем, в каких единицах будет измеряться разница между датами. Это может быть количество месяцев, лет или количество месяцев без учета лет. Еще один вариант – это количество дней без учета месяцев и лет. 

Важно учесть, что в некоторых случаях эта функция может вернуть неправильное значение. Это бывает, когда день первой даты больше, чем день второй

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

Пример №1. Подсчет количества лет между двумя датами

На примере выше, формула возвращает количество лет между двумя датами. Например, функция вернет значение “27” если вы захотите посчитать количество полных лет между двумя датами 19 июня 1989 года и 26 марта 2017 года. Система подсчитывает количество полных лет и игнорирует количество месяцев и дней между датами.

Разница дат в полных месяцах

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

То есть, формула следующая.

=РАЗНДАТ(A2;B2;”m”)

Эта формула также может давать несколько неточные данные. Поэтому всегда нужно перепроверять значения самостоятельно. 

Разница в днях без учета лет

Эта формула также может использоваться для определения количества дней между двумя датами, но при этом не учитывать количество лет, которое прошло между этими двумя временными точками. Эта возможность есть, но пользоваться ею настоятельно не рекомендуется, потому что искажений в этом случае может быть еще больше.

1

Эта формула вернет правильный результат только тогда, когда в компьютере показано правильное время. Конечно, в большинстве современных операционных системах дата и время определяется автоматически, но иногда случаются сбои. Поэтому перед тем, как подсчитывать разницу в днях без учета лет, нужно убедиться, что на компьютере установлена правильная дата и время. Особенно если электронная таблица пересылалась другому человеку. 

Количество рабочих дней между двумя датами

Здесь ситуация чуть сложнее. Необходимо не учитывать субботы с воскресеньями и праздники. Для такого расчета лучше воспользоваться функцией ЧИСТРАБДНИ (NETWORKDAYS) из категории Дата и время. В качестве аргументов этой функции необходимо указать начальную и конечную даты и ячейки с датами выходных (государственных праздников, больничных дней, отпусков, отгулов и т.д.):

Примечание: Эта функция появилась в стандартном наборе функций Excel начиная с 2007 версии. В более древних версиях сначала необходимо подключить надстройку Пакета анализа. Для этого идем в меню Сервис — Надстройки (Tools — Add-Ins) и ставим галочку напротив Пакет анализа (Analisys Toolpak). После этого в Мастере функций в категории Дата и время появится необходимая нам функция ЧИСТРАБДНИ (NETWORKDAYS).

Сдвиг даты на заданное количество дней

Поскольку одни сутки в системе отсчета даты Excel принимаются за единицу (см.выше), то для вычисления даты, отстоящей от заданной на, допустим, 20 дней, достаточно прибавить к дате это число.

Сдвиг даты на заданное количество рабочих дней

Эту операцию осуществляет функция РАБДЕНЬ (WORKDAY). Она позволяет вычислить дату, отстоящую вперед или назад относительно начальной даты на нужное количество рабочих дней (с учетом выходных суббот и воскресений и государственных праздинков). Использование этой функции полностью аналогично применению функции ЧИСТРАБДНИ(NETWORKDAYS) описанной выше.

Вычисление дня недели

Вас не в понедельник родили? Нет? Уверены? Можно легко проверить при помощи функции ДЕНЬНЕД (WEEKDAY) из категории Дата и время.

Первый аргумент этой функции — ячейка с датой, второй — тип отсчета дней недели (самый удобный — 2).  

Вычисление временных интервалов

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

Нюанс здесь только один. Если при сложении нескольких временных интервалов сумма получилась больше 24 часов, то Excel обнулит ее и начнет суммировать опять с нуля. Чтобы этого не происходило, нужно применить к итоговой ячейке формат 37:30:55:

Дата прописью в Excel

Пользовательская функция «ДатаПрописью» предназначена для преобразования даты из числового формата Excel в полную текстовую форму. Интервал преобразуемых дат составляет с 2001 по 2099 год.

Используется в шаблонах доверенностей, договоров, соглашений, решений, уставов и других документов, заполняющихся в программе Excel и предусматривающих наличие строки с датой прописью. Формат преобразования: 01.01.

2001 — «Первого января две тысячи первого года».

Добавить функцию «ДатаПрописью» в рабочую книгу Excel можно двумя способами: импортировать готовый модуль с функцией или самостоятельно добавить программный код в имеющийся модуль, или создав для этого новый.

Импорт модуля с функцией в проект

Импорт готового модуля в книгу Excel — самый простой способ добавления функции «ДатаПрописью».

Если вы хотите, чтобы функция «ДатаПрописью» была доступна из всех рабочих книг на вашем компьютере, импортируйте скачанный модуль в Личную книгу макросов.

Вставка кода в стандартный модуль

  • Создайте новый стандартный модуль и откройте его (или откройте уже имеющийся).
  • Скопируйте и вставьте в открытый модуль код функции «ДатаПрописью», приведенный ниже.

‘Преобразование даты из числового формата в текст с 2001 по 2099 год
Public Function ДатаПрописью(md As Date) As String
If (md 73050) Then
ДатаПрописью = «Преобразуемая дата должна быть с 2001 по 2099 год!»
Else
Dim den As Byte, dg(1 To 4) As Byte, mes As Byte, god As Byte, _
mespr As String, dmgpr As String
den = Day(md)
mes = Month(md)
god = (Year(md) Mod 100)
dg(1) = god Mod 10
dg(2) = Fix(god / 10)
dg(3) = den Mod 10
dg(4) = Fix(den / 10)
Dim dgpr(1 To 4) As String, i1 As Byte
For i1 = 1 To 4
If (i1 = 1) Or (i1 = 3) Then
If dg(i1 + 1) = 1 Then
dgpr(i1) = Choose(dg(i1) + 1, «десятого «, «одиннадцатого «, «двенадцатого «, _
«тринадцатого «, «четырнадцатого «, «пятнадцатого «, «шестнадцатого «, _
«семнадцатого «, «восемнадцатого «, «девятнадцатого «)
Else
dgpr(i1) = Choose(dg(i1) + 1, «», «первого «, «второго «, _
«третьего «, «четвертого «, «пятого «, «шестого «, _
«седьмого «, «восьмого «, «девятого «)
End If
ElseIf (i1 = 2) Or (i1 = 4) Then
If dg(i1 — 1) = 0 Then
dgpr(i1) = Choose(dg(i1) + 1, «», «», «двадцатого «, _
«тридцатого «, «сорокового «, «пятидесятого «, «шестидесятого «, _
«семидесятого «, «восьмидесятого «, «девяностого «)
Else
dgpr(i1) = Choose(dg(i1) + 1, «», «», «двадцать «, _
«тридцать «, «сорок «, «пятьдесят «, «шестьдесят «, _
«семьдесят «, «восемьдесят «, «девяносто «)
End If
End If
Next
mespr = Choose(mes, «января «, «февраля «, «марта «, «апреля «, «мая «, _
«июня «, «июля «, «августа «, «сентября «, «октября «, «ноября «, «декабря «)
dmgpr = dgpr(4) & dgpr(3) & mespr & «две тысячи » & dgpr(2) & dgpr(1) & «года»
ДатаПрописью = Replace(dmgpr, Left(dmgpr, 1), UCase(Left(dmgpr, 1)), 1, 1)
End If
End Function

Если вы хотите, чтобы функция «ДатаПрописью» была доступна из всех рабочих книг на вашем компьютере, вставьте приведенный код в модуль, расположенный в Личной книге макросов.

Работа с функцией в Excel

Итак, если вы импортировали модуль или создали новый и вставили в него код, можете вызывать Мастер функций и работать с функцией «ДатаПрописью», как с любой другой, встроенной в Excel. Найти ее вы сможете в разделе «Определенные пользователем». В настройках вашей программы Excel должно быть разрешено выполнение макросов.

Функцию «ДатаПрописью» в ячейки рабочего листа можно вписывать и вручную. Текст вводимой формулы будет зависеть от того, где расположен модуль с функцией:

  • в текущей рабочей книге — =ДатаПрописью()
  • в Личной книге макросов — =PERSONAL.XLSB!ДатаПрописью()

Если вы планируете книгу с функцией «ДатаПрописью» передавать на другой компьютер, модуль с ней должен быть в передаваемой книге.

Функции преобразования типов

Наименования функций преобразования типов, типы возвращаемых данных, диапазоны допустимых значений для аргумента:

Функция Тип данных Диапазон значений аргумента
CBool Boolean Любое допустимое строковое или числовое выражение.
CByte Byte От 0 до 255.
CCur Currency От -922 337 203 685 477,5808 до 922 337 203 685 477,5807.
CDate Date Любое допустимое выражение даты.
CDbl Double От -1,79769313486231E308 до -4,94065645841247E-324 для отрицательных значений; от 4,94065645841247E-324 до 1,79769313486232E308 для положительных значений.
CDec Decimal 79 228 162 514 264 337 593 543 950 335 для чисел без десятичных знаков. Для чисел с 28 десятичными знаками диапазон составляет 7,9228162514264337593543950335. Наименьшим возможным числом, отличным от нуля, является число 0,0000000000000000000000000001.
CInt Integer От -32 768 до 32 767, дробная часть округляется.
CLng Long От -2 147 483 648 до 2 147 483 647, дробная часть округляется.
CSng Single От -3,402823E38 до -1,401298E-45 для отрицательных значений; от 1,401298E-45 до 3,402823E38 для положительных значений.
CStr String Результат, возвращаемый функцией CStr, зависит от аргумента Выражение.
CVar Variant Диапазон совпадает с типом Double  для числовых значений и с типом  String  для нечисловых значений.

Дополнительно для VBA7:

Функция Тип данных Диапазон значений аргумента
CLngLng LongLong От -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807, дробная часть округляется. Действительно только для 64-разрядных платформ.
CLngPtr LongPtr От -2 147 483 648 до 2 147 483 647 для 32-разрядных платформ, от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 для 64-разрядных платформ, дробная часть округляется в обоих типах систем.

Как конвертировать значения десятичной даты

Почти во всех случаях VALUE и DATEVALUE преобразуют текстовые строки в значения даты. Исключением, как вы видели выше, являются даты, которые используют разделители десятичных знаков для разделения значений дня, месяца и года.

Вы можете использовать инструмент поиска и замены Excel для их преобразования, но более простым способом является использование ЗАМЕНА функция. Это изменит все разделители десятичной точки на прямые косые черты, которые затем могут распознавать как VALUE, так и DATEVALUE.

Для этого введите = ПОДСТАВИТЬ (А2,».»,»/»), где A2 содержит значение даты в виде текстовой строки, «» выбирает десятичный разделитель для поиска и «/» заменяет все примеры десятичной точки косой чертой.

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

Функция SUBSTITUTE, используемая в C2, тем не менее, заменила все разделители десятичной точки на прямые косые черты. Затем дополнительная функция DATEVALUE, используемая в D2, может преобразовать новую текстовую строку из C2 в правильную дату.

Понравилась статья? Поделиться с друзьями:
Самоучитель Брин Гвелл
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: