Как в эксель вернуть число из даты

Обновлено: 07.07.2024

Я получил документ Excel, который был выгружен из какой-то информационной системы типа 1С. Там цифры Excel заменил автоформатом на даты. А исходника в txt или csv нет. Я пытаюсь восстановить оригинальные значения, преобразованные экселем.

Задача оказалась интересной.

Например, я вижу дату 01.08.2014. Точно число было не 1,8.

Покопал данный форум и нашел такое возможное решение:

То есть из цифрового кода даты (количество дней с 1900 г.) вытаскиваются сначала 2 числа в середине, а в дробной части идут два числа сначала. Почему сделано так я не понимаю. Получается что-то вроде 41,85 - но это как раз похоже на правду (я вижу соседние значения из этой области, которые остались числами).

Попытки поменять знак разделитель дробной части на "." не приводят к обратному восстановлению числа - так как в экселе уже забиты серийные номера дат.

Подскажите, ПОЖАЛУЙСТА, можно ли вернуть исходные числа? Алгоритм можно восстановить?

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

Не работает мышка и клавиатура после того,как вернул компьютер в исходное состояние
Здравствуйте.Сегодня после того,как попробовал вернуть компьютер в исходное состояние,у меня.

Не работает SD карточка после того,как сделал её загрузочной
Всем привет! Недавно столкнулся с такой проблемой. В общем,на старом компьютере полетела винда,и.

Можно ли восстановить данные после того, как операционка полетела дважды
Всем привет ! Произошла неприятность, полетела операционка на ноутбуке Lenovo, попыталась.

Прикладываю часть файла.

Если применить приведенную выше формулу, то вот что получается

Но это сделал и я сам. Я уже изучил полученные значения.

Мой вопрос был - данный алгоритм восстановления чисел верен или нет? И знаете ли вы формулу по которой можно восстановить гарантированно правильные числа? Я вообще не понимаю, почему эта формула делает это и какова логика за ней.

Добавлено через 45 минут
Моя собственная (без использования чужих формул) догадка такова: если дата 01.08.2014, то Excel переводит в такую дату, например, такое число: 8.2014. НО такое число никак не клеится с логикой, которую я вижу в соседних числах. Там даже округление строго задано до 2 знаков после запятой, а нужно ввести 4 знака, чтобы получить эту дату. В общем, я уже в ауте. Как сделать не пойму.

Для работы с датами в Excel в разделе с функциями определена категория «Дата и время». Рассмотрим наиболее распространенные функции в этой категории.

Как Excel обрабатывает время

Программа Excel «воспринимает» дату и время как обычное число. Электронная таблица преобразует подобные данные, приравнивая сутки к единице. В результате значение времени представляет собой долю от единицы. К примеру, 12.00 – это 0,5.

Значение даты электронная таблица преобразует в число, равное количеству дней от 1 января 1900 года (так решили разработчики) до заданной даты. Например, при преобразовании даты 13.04.1987 получается число 31880. То есть от 1.01.1900 прошло 31 880 дней.

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

Пример функции ДАТА

Построение значение даты, составляя его из отдельных элементов-чисел.

Синтаксис: год; месяц, день.

Все аргументы обязательные. Их можно задать числами или ссылками на ячейки с соответствующими числовыми данными: для года – от 1900 до 9999; для месяца – от 1 до 12; для дня – от 1 до 31.

Если для аргумента «День» задать большее число (чем количество дней в указанном месяце), то лишние дни перейдут на следующий месяц. Например, указав для декабря 32 дня, получим в результате 1 января.

Пример использования функции:

ДАТА.

Зададим большее количество дней для июня:

Большее количество дней.

Примеры использования в качестве аргументов ссылок на ячейки:

Ссылки в аргументах.

Функция РАЗНДАТ в Excel

Возвращает разницу между двумя датами.

  • начальная дата;
  • конечная дата;
  • код, обозначающий единицы подсчета (дни, месяцы, годы и др.).

Способы измерения интервалов между заданными датами:

  • для отображения результата в днях – «d»;
  • в месяцах – «m»;
  • в годах – «y»;
  • в месяцах без учета лет – «ym»;
  • в днях без учета месяцев и лет – «md»;
  • в днях без учета лет – «yd».

В некоторых версиях Excel при использовании последних двух аргументов («md», «yd») функция может выдать ошибочное значение. Лучше применять альтернативные формулы.

Примеры действия функции РАЗНДАТ:

РАЗНДАТ.

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

Функция ГОД в Excel

Возвращает год как целое число (от 1900 до 9999), который соответствует заданной дате. В структуре функции только один аргумент – дата в числовом формате. Аргумент должен быть введен посредством функции ДАТА или представлять результат вычисления других формул.

Пример использования функции ГОД:

ГОД.

Функция МЕСЯЦ в Excel: пример

Возвращает месяц как целое число (от 1 до 12) для заданной в числовом формате даты. Аргумент – дата месяца, который необходимо отобразить, в числовом формате. Даты в текстовом формате функция обрабатывает неправильно.

Примеры использования функции МЕСЯЦ:

МЕСЯЦ.

Примеры функций ДЕНЬ, ДЕНЬНЕД и НОМНЕДЕЛИ в Excel

Возвращает день как целое число (от 1 до 31) для заданной в числовом формате даты. Аргумент – дата дня, который нужно найти, в числовом формате.

ДЕНЬ.

Чтобы вернуть порядковый номер дня недели для указанной даты, можно применить функцию ДЕНЬНЕД:

ДЕНЬНЕД.

По умолчанию функция считает воскресенье первым днем недели.

Для отображения порядкового номера недели для указанной даты применяется функция НОМНЕДЕЛИ:

НОМНЕДЕЛИ.

Дата 24.05.2015 приходится на 22 неделю в году. Неделя начинается с воскресенья (по умолчанию).

С понедельника.

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

Для указания текущей даты используется функция СЕГОДНЯ (не имеет аргументов). Чтобы отобразить текущее время и дату, применяется функция ТДАТА ().

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

Примеры использования функций для обработки даты в Excel

Таблицы Excel хранят даты, которые представлены в качестве последовательности числовых значений. Начинается она с 1 января 1900 года. Этой дате будет соответствовать число 1. При этом 1 января 2009 года заложено в таблицах, как число 39813. Именно такое количество дней между двумя обозначенными датами.

Функция ГОД используется аналогично смежным:

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

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

=ГОД(адрес ячейки с датой в числовом формате)

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

Пример: Есть таблица с перечнем дат и в каждой из них необходимо отделить значение только года.

Введем исходные данные в Excel.

исходные данные в Excel.

Для решения поставленной задачи, необходимо в ячейки столбца B ввести формулу:

=ГОД (адрес ячейки, из даты которой нужно вычленить значение года)

ГОД.

В результате мы извлекаем года из каждой даты.

Аналогичный пример работы функции МЕСЯЦ в Excel:

МЕСЯЦ.

Пример работы c функциями ДЕНЬ и ДЕНЬНЕД. Функция ДЕНЬ получает вычислить из даты число любого дня:

ДЕНЬ.

Функция ДЕНЬНЕД возвращает номер дня недели (1-понедельник, 2-второник… и т.д.) для любой даты:

ДЕНЬНЕД.

Во втором опциональном аргументе функции ДЕНЬНЕД следует указать число 2 для нашего формата отсчета дня недели (с понедельника-1 по восркесенье-7):

Во втором опциональном аргументе.

Если пропустить второй необязательный для заполнения аргумент, тогда будет использоваться формат по умолчанию (английский с воскресенья-1 по суботу-7).

Создадим формулу из комбинаций функций ИНДЕКС и ДЕНЬНЕД:

ИНДЕКС и ДЕНЬНЕД.

Получим более понятный вид реализации данной функции.

Примеры практического применения функций для работы с датами

Эти примитивные функции очень полезны при группировки данных по: годам, месяцам, дням недели и конкретным дням.

Допустим у нас имеется простой отчет по продажам:

простой отчет.

Нам нужно быстро организовать данные для визуального анализа без использования сводных таблиц. Для этого приведем отчет в таблицу где можно удобно и быстро группировать данные по годам месяцам и дням недели:

организовать данные для визуального анализа.

Теперь у нас есть инструмент для работы с этим отчетом по продажам. Мы можем фильтровать и сегментировать данные по определенным критериям времени:

инструмент для работы с отчетом.

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

составить гистограмму.

В таком виде очень удобно сегментировать отчеты по продажам за длительные, средние и короткие периоды времени.

Стоит сразу отметить что для того чтобы получить разницу между двумя датами нам не поможет ни одна из выше описанных функций. Для данной задачи следует воспользоваться специально предназначенной функцией РАЗНДАТ:

РАЗНДАТ.

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

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

Как вырезать отдельную часть даты в Excel и получить ГОД, МЕСЯЦ и ДЕНЬ?

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

  1. ГОД – возвращает год из указанной даты.
  2. МЕСЯЦ – выбирает месяц из исходной даты.
  3. ДЕНЬ – позволяет получить число дня в месяце.
  4. ДЕНЬНЕД – функция возвращает номер дня недели по дате.
  5. НОМНЕДЕЛИ – позволяет получить номер недели в году для указанной даты.

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

вырезать отдельную часть даты.

Выше описанные функции абсолютно просты в использовании и применении.

Функция ГОД возвращает четырехзначное число определяющее год.

МЕСЯЦ – возвращает число от 1-го и до 12-ти, которое является номером месяца в году.

ДЕНЬ - так же возвращает число, только на этот раз от 1-го и до 31-го. Так определяется номер дня в месяце.

ДЕНЬНЕД – недели аналогично вернет нам номер дня в неделе от 1-го и до 7-ми. Важно отметить, что по умолчанию данная функция возвращает номера дней недели начиная с воскресенья и до субботы. То есть если это число 1 – это воскресенье, а если 2 – понедельник и т.д. Данная функция имеет еще опциональный аргумент для заполнения – «Тип_возвр:». С помощью него можно указать функции который день должен считаться первым днем недели. Поэтому во втором аргументе примера была использована цифра 2. Потому как по умолчанию для функции считается первым днем недели – воскресенье, так как в английском языке считаются дни: Sunday, Monday, Tuesday… В момент заполнения второго аргумента для функции ДЕНЬНЕД вручную, автоматически высвечивается подсказка с кодами возможных вариаций возможных значений для заполнения:

ДЕНЬНЕД.

Примечание. Обратите внимание на рисунок и на значение числа 3 для второго аргумента. Можно указать чтобы дни недели считались от 0 – понедельник и до 6 – воскресенье. Такой метод возвращения чисел часто используется в программировании, где в 90% случаев нумерация начинается с нуля, а не с единицы.

Для некоторых специфических задач в Excel – это тоже может быть полезно, следует помнить о такой возможности функции ДЕНЬНЕД.

И наконец функция НОМНЕДЕЛИ возвращает номер недели для исходной даты. Например, високосный год где 366 дней (одни раз в четыре года) и невисокосный, обычный год (где 365) имеют одинаковое количество полных недель в году – 52.

номер недели для исходной даты.

Так как номер считается и для неполных недель следует отнимать единицу в формуле. Начало января чаще всего является последней неделей предыдущего года.

Поэтому могут следует воспользоваться такой формулой:

начало года припадает на субботу високосную.

НОМНЕДЕЛИ так же имеет второй необязательны для затопления аргумент со своим списком годов:

НОМНЕДЕЛИ.

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

Интересный факт. Каждый невисокосный год начинается и заканчивается в один и тот же день. Например: 01.01.2018 и 31.12.2018 это понедельники. А каждый високосный год начинается в один, а заканчивается в следующий. Например: 01.01.2020 – среда, а 31.12.2020 – четверг.

Читайте также: