Функция DateDiff — Служба поддержки Майкрософт
Возвращает значение типа Variant (Long), указывающее на количество интервалов времени между двумя указанными датами.
Синтаксис
DateDiff ( интервал, дата1, дата2 [, первый_день_недели[, первая_неделя_года]] )
Функция DateDiff имеет следующие аргументы:
Совет: В Access 2010 построитель выражений включает функцию IntelliSense, которая указывает требуемые аргументы.
Аргумент |
Описание |
|
Обязательный аргумент. Строковое выражение, которое обозначает интервал времени, используемый для вычисления разницы значений дата1 и дата2. |
дата1, дата2 |
— обязательный аргумент. Variant(Date). Две даты, которые вы хотите использовать в вычислениях. |
первый_день_недели |
Необязательный аргумент. Константа, задающая первый день недели. Если не указано, предполагается воскресенье. |
первая_неделя_года |
Необязательный аргумент. Константа, задающая первую неделю года. Если не указано, первой считается неделя, на которую вы хотите 1 января. |
Параметры
Аргумент интерваларгумент имеет следующие значения:
Параметр |
Описание |
|
Год |
q |
Квартал |
m |
Месяц |
y |
День года |
d |
День |
w |
День недели |
ww |
Неделя |
h |
Часы |
n |
Минуты |
s |
Секунды |
Аргумент первый_день_недели может принимать следующие значения:
Константа |
Значение |
|
vbUseSystem |
0 |
Используются параметры API NLS. |
vbSunday |
1 |
Воскресенье (по умолчанию) |
vbMonday |
2 |
Понедельник |
vbTuesday |
3 |
Вторник |
vbWednesday |
4 |
Среда |
vbThursday |
5 |
Четверг |
vbFriday |
6 |
|
vbSaturday |
7 |
Суббота |
Константа |
Значение |
Описание |
vbUseSystem |
0 |
Используются параметры API NLS. |
vbFirstJan1 |
1 |
Начинается с недели, на которую приходится 1 января (по умолчанию). |
vbFirstFourDays |
2 |
Первой неделей считается та, которая содержит хотя бы четыре дня нового года. |
vbFirstFullWeek |
3 |
Первой неделей считается первая полная неделя года. |
Замечания
Функция DateDiff используется для определения числа интервалов времени между двумя датами. Например, DateDiff можно использовать для вычисления числа дней между двумя датами или числа недель между сегодняшним днем и концом года.
Для вычисления числа дней между аргументами дата1 и дата2 используется значение «День года» («y») или «День» («d»). Если интервал задан как «День недели» («w»), DateDiff возвращает число недель между двумя датами. Если день дата1 приходится на понедельник, DateDiff считает число понедельников до дня дата2. День, соответствующий значению аргумента дата2, учитывается, а дата1 — нет. Однако если интервал задан как «Неделя» («ww»), функция DateDiff возвращает число календарных недель между двумя датами. Для этого рассчитывается число воскресений между днями дата1 и дата2. DateDiff учитывает день дата2, если он приходится на воскресенье; день дата1 не учитывается, даже если он приходится на воскресенье.
Если значение дата1 соответствует более поздней дате, чем значение дата2, функция DateDiff возвращает отрицательное число.
Аргумент первый_день_недели влияет на вычисления, если заданы значения «w» и «ww».
Если аргумент дата1 или дата2 содержит литерал даты, указанный год становится постоянной частью этой даты. Однако если аргумент дата1 или дата2
Если при сравнении 31 декабря с 1 января следующего года указано значение «Год» («yyyy»), функция DateDiff возвращает 1, хотя прошел всего один день.
Примечание: Если в свойстве Calendar задан григорианский календарь, аргументы дата1 и дата2 следует указывать соответствующим образом. Если используется календарь Хиджра, дата должна соответствовать ему.
Примеры запросов DateDiff
Выражение |
Результаты: |
SELECT DateDiff(«yyyy»,#01/01.2010#,[DateofSale]) AS Expr1 FROM ProductSales; |
Возвращает разницу между датами «Дата2» и «Дата1» (считают дату1 самой старой, а «Дата2» — как новую) числом «Годы». Результат. Разница между значениями в поле «Датапродажи» и датой «01.01.2010» как количество лет. |
SELECT DateDiff(«q»,[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Возвращает разницу между системной датой и значением DateofSale как число «Кварталы» (на основе года) и отображает в столбце «DaysSinceSale». возвращает разницу между системной датой и значением DateofSale как число месяцев и отображает в столбце «DaysSinceSale». |
SELECT DateDiff(«y»,[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Возвращает разницу между системной датой и значением DateofSale как число «Дни» и отображает в столбце «DaysSinceSale». |
SELECT DateDiff(«d»,[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Возвращает разницу между системной датой и значением DateofSale как число «Дни» и отображает в столбце «DaysSinceSale». |
SELECT DateDiff(«w»,[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Возвращает разницу между системной датой и значением DateofSale как число рабочих дней и отображает в столбце «DaysSinceSale». Если «DateofSale» приходится на понедельник, DateDiff считает количество понедельников до системной даты. При подсчете учитываются системные даты, но не значение в «DateofSale». |
SELECT DateDiff(«ww»,[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Возвращает разницу между системной датой и значением DateofSale как число «Недели календера» и отображает в столбце «DaysSinceSale». Количество воскресеньей между датами «ДатаofSale» и «системная дата». Системная дата учитывается, если она приходится на воскресенье; но он не учитывается как «DateofSale», даже если он выпадет на воскресенье. |
SELECT DateDiff(«h»,[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Возвращает разницу между системной датой и значением даты и времени как число «Часы» и отображает в столбце «DaysSinceSale». |
SELECT DateDiff(«n»;[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Возвращает разницу между системной датой и значением даты и времени как число «Минуты» и отображает в столбце «DaysSinceSale». |
SELECT DateDiff(«s»;[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Возвращает разницу между системной датой и значением даты и времени как число «секунд» и отображает в столбце «DaysSinceSale». |
Пример выражения
Использование функции DateDiff в выражении Функцию DateDiff можно использовать везде, где можно использовать выражения. Предположим, у вас есть форма, используемая для выполнения заказов клиентов. В таблице «Заказы» есть поле ReceiveBefore, в котором указана дата получения заказа клиентом. Функцию DateDiff можно использовать вместе с текстовым полем в форме, чтобы отобразить количество дней до даты, до того как заказ должен отгрузываться.
Если предположить, что отгрузка любого заказа занимает десять дней, можно задать для свойства Данные текстового поля следующее значение:
=DateDiff(«d», Now(), [Заказы].[Срок])-10
Если открыть форму в режиме формы, то в текстовом поле отобразится количество дней, оставшихся до даты, когда необходимо отгрузить заказ. Если до даты, к которой клиенту необходимо получить заказ, осталось менее 10 дней, в текстовом поле отображается отрицательное число, указывающее, на сколько дней задержится доставка товара при условии немедленной отгрузки.
Пример VBA
Использование функции DateDiff в коде VBA
В данном примере функция DateDiff отображает число дней между указанной датой и сегодняшним днем.
Dim TheDate As Date ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg
Функция DateDiff (Visual Basic для приложений)
Twitter LinkedIn Facebook Адрес электронной почты
- Статья
Возвращает значение типа Variant (Long), указывающее на количество интервалов времени между двумя указанными датами.
Синтаксис
DateDiff(интервал, дата1, дата2, [ первый_день_недели, [ первая_неделя_года ]] )
Синтаксис функции DateDiff использует следующие именованные аргументы:
Часть | Описание |
---|---|
интервал | Обязательный аргумент. Строковое выражение, которое обозначает интервал времени, используемый для вычисления разницы значений дата1 и дата2. |
дата1, дата2 | Обязательный элемент; Variant (Date). Две даты, которые требуется использовать в расчете. |
первый_день_недели | Необязательный аргумент. Константа, задающая первый день недели. Если она не указана, им является воскресенье. |
первая_неделя_года | Необязательно. Константа, задающая первую неделю года. Если она не указана, первой неделею является неделя, начинающаяся 1 января. |
Параметры
Аргументinterval имеет следующие параметры:
Setting | Описание |
---|---|
yyyy | Год |
q | Квартал |
m | Месяц |
y | День года |
d | День |
w | День недели |
ww | Неделя |
h | Часы |
n | Минуты |
s | Секунды |
Аргумент первый_день_недели может принимать следующие значения:
Константа | Значение | Описание |
---|---|---|
vbUseSystem | 0 | Используются параметры API NLS. |
vbSunday | 1 | Воскресенье (по умолчанию) |
vbMonday | 2 | Понедельник |
vbTuesday | 3 | Вторник |
vbWednesday | 4 | Среда |
vbThursday | 5 | Четверг |
vbFriday | 6 | Пятница |
vbSaturday | 7 | Суббота |
Аргумент firstweekofyear имеет следующие параметры:
Константа | Значение | Описание |
---|---|---|
vbUseSystem | 0 | Используются параметры API NLS. |
vbFirstJan1 | 1 | Начать с недели, содержащей 1 января (по умолчанию). |
vbFirstFourDays | 2 | Первой неделей считается та, которая содержит хотя бы четыре дня нового года. |
vbFirstFullWeek | 3 | Первой неделей считается первая полная неделя года. |
Используйте функцию DateDiff для определения количества указанных интервалов времени между двумя датами. Например, DateDiff можно использовать для вычисления числа дней между двумя датами или числа недель между сегодняшним днем и концом года.
Для вычисления числа дней между аргументами дата1 и дата2 используется значение «День года» («y») или «День» («d»). Если интервал задан как «День недели» («w»), DateDiff возвращает число недель между двумя датами. Если день дата1 приходится на понедельник, DateDiff считает число понедельников до дня дата2. День, соответствующий значению аргумента дата2, учитывается, а дата1 — нет.
Однако если интервал задан как «Неделя» («ww»), функция DateDiff возвращает число календарных недель между двумя датами. Для этого рассчитывается число воскресений между днями дата1 и дата2. DateDiff учитывает день дата2, если он приходится на воскресенье; день дата1 не учитывается, даже если он приходится на воскресенье.
Если значение дата1 соответствует более поздней дате, чем значение дата2, функция DateDiff возвращает отрицательное число. Аргумент первый_день_недели влияет на вычисления, если заданы значения «w» и «ww».
Если аргумент дата1 или дата2 содержит литерал даты, указанный год становится постоянной частью этой даты. Однако если аргумент дата1 или дата2 заключен в двойные кавычки (» «), а год опущен, при каждом вычислении выражения дата1 или дата2 в код вставляется текущий год. Это позволяет писать код, который можно использовать для разных лет.
При сравнении 31 декабря с 1 января следующего года функция DateDiff для года («yyyy») возвращает значение 1, не смотря на то, что разница составляет всего один день.
Примечание.
Если в свойстве Calendar задан григорианский календарь, аргументы дата1 и дата2 следует указывать соответствующим образом. Если используется календарь Хиджра, дата должна соответствовать ему.
Пример
В данном примере функция DateDiff отображает число дней между указанной датой и сегодняшним днем.
Dim TheDate As Date ' Declare variables. Dim Msg TheDate = InputBox("Enter a date") Msg = "Days from today: " & DateDiff("d", Now, TheDate) MsgBox Msg
См. также
- Функции (Visual Basic для приложений)
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Вычислить разницу между двумя датами
Используйте функцию РАЗНДАТ, если вы хотите вычислить разницу между двумя датами. Сначала укажите дату начала в одной ячейке и дату окончания в другой. Затем введите формулу, подобную одной из следующих.
Предупреждение: Если Start_date больше, чем End_date , результатом будет #ЧИСЛО!.
Разница в днях
В этом примере начальная дата указана в ячейке D9, а дата окончания находится в E9. Формула находится в F9. «d» возвращает количество полных дней между двумя датами.
Разница в неделях
В этом примере дата начала указана в ячейке D13, а дата окончания — в ячейке E13. «d» возвращает количество дней. Но обратите внимание на /7 в конце. Это делит количество дней на 7, так как в неделе 7 дней. Обратите внимание, что этот результат также необходимо отформатировать как число. Нажмите CTRL + 1. Затем нажмите Число 9.0006 > Десятичных разрядов: 2 .
Разница в месяцах
В этом примере начальная дата находится в ячейке D5, а конечная дата — в E5. В формуле «м» возвращает количество полных месяцев между двумя днями.
Разница в годах
В этом примере начальная дата находится в ячейке D2, а конечная дата — в E2. «y» возвращает количество полных лет между двумя днями.
Рассчитать возраст в накопленных годах, месяцах и днях
Также можно рассчитать возраст или чей-то стаж. Результатом может быть что-то вроде «2 года, 4 месяца, 5 дней».
1. Используйте DATEDIF, чтобы найти общее количество лет.
В этом примере дата начала находится в ячейке D17, а дата окончания — в ячейке E17. В формуле «y» возвращает количество полных лет между двумя днями.
2. Снова используйте DATEDIF с «ym», чтобы найти месяцы.
В другой ячейке используйте формулу DATEDIF с параметром «ym» . «ym» возвращает количество оставшихся месяцев после последнего полного года.
3. Используйте другую формулу для нахождения дней.
Теперь нам нужно найти количество оставшихся дней. Мы сделаем это, написав другую формулу, показанную выше. Эта формула вычитает первый день последнего месяца (01.05.2016) из исходной даты окончания в ячейке E17 (06.05.2016). Вот как это делается: Сначала функция ДАТА создает дату 01.05.2016. Он создается с использованием года в ячейке E17 и месяца в ячейке E17. Затем 1 представляет первый день этого месяца. Результат функции ДАТА — 01.05.2016. Затем мы вычитаем это из исходной даты окончания в ячейке E17, то есть 06.05.2016. 06.05.2016 минус 01.05.2016 равно 5 дням.
Предупреждение: Мы не рекомендуем использовать аргумент РАЗНДАТ «md», поскольку он может привести к неточным результатам.
4. Необязательно: Объедините три формулы в одну.
Вы можете поместить все три вычисления в одну ячейку, как в этом примере. Используйте амперсанд, кавычки и текст. Это более длинная формула для ввода, но, по крайней мере, все в одном. Совет: Нажмите клавиши ALT+ВВОД, чтобы вставить в формулу разрывы строк. Это облегчает чтение. Кроме того, нажмите CTRL+SHIFT+U, если вы не видите всю формулу.
Загрузите наши примеры
Вы можете скачать пример книги со всеми примерами из этой статьи. Вы можете следовать инструкциям или создавать свои собственные формулы.
Скачать примеры расчета даты
Другие расчеты даты и времени
Как вы видели выше, функция РАЗНДАТ вычисляет разницу между датой начала и датой окончания. Однако вместо того, чтобы вводить конкретные даты, вы также можете использовать внутри формулы функцию СЕГОДНЯ() . Когда вы используете функцию СЕГОДНЯ(), Excel использует в качестве даты текущую дату вашего компьютера. Имейте в виду, что это изменится, когда файл снова откроется в будущем.
Обратите внимание, что на момент написания этой статьи день был 6 октября 2016 года.
Используйте функцию ЧИСТРАБДНИ.МЕЖД, если вы хотите рассчитать количество рабочих дней между двумя датами. Вы также можете исключить выходные и праздничные дни.
Прежде чем начать: Решите, хотите ли вы исключить праздничные дни. Если вы это сделаете, введите список дат праздников в отдельной области или листе. Поместите каждую дату праздника в отдельную ячейку. Затем выберите эти ячейки, выберите Formulas > Define Name . Назовите диапазон MyHolidays и нажмите OK . Затем создайте формулу, используя шаги, описанные ниже.
1. Введите дату начала и дату окончания.
В этом примере дата начала указана в ячейке D53, а дата окончания — в ячейке E53.
2. В другой ячейке введите следующую формулу:
Введите формулу, аналогичную приведенному выше примеру. 1 в формуле устанавливает субботу и воскресенье как выходные дни и исключает их из общего числа.
Примечание. В Excel 2007 нет функции ЧИСТРАБДНИ.МЕЖД. Однако у него есть ЧИСТРАБДНИ. Приведенный выше пример будет таким в Excel 2007: = ЧИСТРАБДНИ(D53,E53) . Вы не указываете 1, потому что ЧИСТРАБДНИ предполагают, что выходные приходятся на субботу и воскресенье.
3. При необходимости измените 1.
Если суббота и воскресенье не являются вашими выходными днями, измените 1 на другое число из списка IntelliSense. Например, 2 устанавливает воскресенье и понедельник как выходные дни.
Если вы используете Excel 2007, пропустите этот шаг. Функция ЧИСТРАБДНИ Excel 2007 всегда предполагает, что выходные приходятся на субботу и воскресенье.
4. Введите название диапазона праздников.
Если вы создали название диапазона праздников в разделе «Перед началом работы» выше, введите его в конце, как показано ниже. Если у вас нет праздников, вы можете не указывать запятую и MyHolidays. Если вы используете Excel 2007, приведенный выше пример будет таким: =ЧИСТРАБДНИ(D53,E53,Моипраздники) .
Совет: Если вы не хотите ссылаться на название диапазона праздников, вы также можете вместо этого ввести диапазон, например Д35:Е:39 . Или вы можете ввести каждый праздник внутри формулы. Например, если ваши праздники приходятся на 1 и 2 января 2016 года, введите их так: =ЧИСТРАБДНИ.МЕЖД(D53,E53,1,{«1/1/2016″,»2/1/2016» }) . В Excel 2007 это будет выглядеть так: =ЧИСТРАБДНИ(D53,E53,{«1/1/2016″,»1/2/2016»})
Вы можете рассчитать прошедшее время, вычитая одно время из другого. Сначала укажите время начала в одной ячейке и время окончания в другой. Обязательно введите полное время, включая часы, минуты, и пробел перед AM или PM . Вот как:
1. Введите время начала и время окончания.
В этом примере время начала указано в ячейке D80, а время окончания — в ячейке E80. Обязательно введите час, минуту, и пробел перед AM или PM .
2. Установите формат ч:мм AM/PM.
Выберите обе даты и нажмите CTRL + 1 (или + 1 на Mac). Обязательно выберите Custom > h:mm AM/PM , если он еще не установлен.
3. Вычтите два раза.
В другой ячейке вычтите ячейку времени начала из ячейки времени окончания.
4. Установите формат ч:мм.
Нажмите CTRL + 1 (или + 1 на Mac). Выберите Custom > h:mm , чтобы результат не включал AM и PM.
Чтобы вычислить время между двумя датами и временем, вы можете просто вычесть одно из другого. Однако вы должны применить форматирование к каждой ячейке, чтобы Excel вернул нужный результат.
1. Введите две полные даты и время.
В одной ячейке введите полную дату/время начала. А в другой ячейке введите полную дату/время окончания. Каждая ячейка должна иметь месяц, день, год, час, минуту, и пробел перед AM или PM.
2. Установите формат 14.03.12 13:30.
Выберите обе ячейки и нажмите CTRL + 1 (или + 1 на Mac). Затем выберите Дата > 14.03.12 13:30 . Это не дата, которую вы установите, это просто пример того, как будет выглядеть формат. Обратите внимание, что в версиях, предшествующих Excel 2016, этот формат может иметь другую дату выборки, например 14.03.9.0005 01 13:30.
3. Вычтите два.
В другой ячейке вычтите дату/время начала из даты/времени окончания. Результат, вероятно, будет выглядеть как число и десятичная дробь. Вы исправите это на следующем шаге.
4. Установите формат [ч]:мм.
Нажмите CTRL + 1 (или + 1 на Mac). Выберите Пользовательский . В поле Type введите [h]:mm .
Связанные темы
РАЗНДАТ функция
ЧИСТРАБДНИ.МЕЖДУНАРОДНАЯ функция
ЧИСТРАБДНИ
Дополнительные функции даты и времени
Вычислить разницу между двумя значениями времени
Вычислить количество недель между заданными датами
Автор: Оскар Кронквист Последнее обновление статьи: 25 апреля 2023 г.
даты.
Содержание
- Подсчет количества недель между заданными датами
- Подсчитать количество недель и дней между заданными датами
- Вычислить количество недель и дней между заданными датами — динамические текстовые значения
1. Рассчитайте количество недель между заданными датами
На изображении выше показана формула, которая вычисляет количество полных недель между двумя датами. Диапазон ячеек B3:B14 содержит даты начала, а диапазон ячеек C3:C14 содержит даты окончания.
Формула в ячейке D3:
=ОКРУГЛ ВНИЗ((C3-B3)/7)
Скопируйте ячейку D3 и вставьте в ячейки ниже, насколько это необходимо.
1.1 Объяснение формулы в ячейке D3
Эта формула работает нормально, если дата начала более поздняя, чем дата окончания, однако вы получаете знак минус перед числом.
Если вы хотите удалить знак минус, просто используйте функцию ABS для его удаления, тогда формула будет выглядеть так:
=ABS(ОКРУГЛВНИЗ((C3-B3)/7))
Шаг 1 — Вычесть даты
C3-B3
становится
35067 — 35685 равно 618 дням.
Шаг 2. Разделите на 7
В неделе семь дней, поэтому нам нужно разделить результат на 7.
Шаг 3. Округление числа в меньшую сторону
Функция ОКРУГЛВНИЗ округляет число в меньшую сторону.
ОКРУГЛВНИЗ( число , число_цифр )
ОКРУГЛВНИЗ((C3-B3)/7)
становится
ОКРУГЛВНИЗ(88.28571429) и возвращает 88.
В начало
2. Подсчет количества недель и дней между заданными датами
Эта формула возвращает общее количество недель и дней между заданными датами начала и окончания .
Формула в ячейке D3:
=INT((C3-B3)/7)&» недели «&MOD(C3-B3,7)&» дни»
2.1 Объяснение формулы
Шаг 1 — Расчет дней между датами в ячейках C3 и B3
Знак минус позволяет вычитать числа в формуле Excel.
C3-B3
становится
45339-44522
и возвращает 817.
Шаг 2. Вычисление недель
Символ деления позволяет делить числа в формуле Excel. Круглые скобки позволяют вам контролировать порядок операций, которые мы хотим вычесть, прежде чем делить.
(C3-B3)/7
становится
817/7
и возвращает прибл. 116.71
Шаг 3. Удалить десятичные дроби
Функция ЦЕЛОЕ удаляет десятичную часть из положительных чисел и возвращает целое число (целое), за исключением того, что отрицательные значения округляются в меньшую сторону до ближайшего целого числа.
INT( номер )
INT((C3-B3)/7)
становится
INT(116.71)
и возвращает 116
цеплять значения в формуле Excel. Используйте двойные кавычки с текстовыми значениями, чтобы избежать ошибки формулы #NAME.
INT((C3-B3)/7)&» недели »
становится
116&» недели»
и возвращает 116 недель.
Шаг 5. Расчет остатка
Функция ОСТАТ возвращает остаток после деления числа на делитель.
MOD( число , делитель )
MOD(C3-B3, 7)
становится
MOD(817, 7)
и возвращает 5.
Шаг 6. Объединение чисел и текстовых значений
Амперсанд объединяет значения в формуле Excel.
INT((C3-B3)/7)&» недели «&MOD(C3-B3,7)&» дни»
становится
116&» недели «&5&» дни»
и возвращает 116 недель 5 дней.
Вернуться к началу
3. Подсчет количества недель и дней между заданными датами — динамические текстовые значения
Эта формула работает только в Excel 365, она вычисляет количество недель и дней между заданными датами начала и окончания. Это также динамическое значение, означающее, что если результатом является целая неделя, количество дней не учитывается в выходных данных.
Формула Excel 365 в ячейке D3:
=LET(y,C3-B3,x,MOD(y,7),z,INT((y)/7),q,»недели»,SWITCH(TRUE( ),x=0,z&q,x=1,z&q&x&» день»,x>1,z&q&x&» дней»))
Объяснение формулы
Шаг 1. Первый аргумент
выражениеФункция ПЕРЕКЛЮЧАТЕЛЬ возвращает заданное значение, определяемое выражением и списком значений. Функция SWITCH предназначена для точного совпадения, однако существует обходной путь, позволяющий использовать символы большего и меньшего размера.
Если какой-либо из аргументов значения возвращает значение, равное аргументу выражения, возвращается соответствующий аргумент результата.
ПЕРЕКЛЮЧАТЕЛЬ( выражение 9, )
ИСТИНА и ЛОЖЬ — логические значения, они часто результат логического теста. Я собираюсь использовать TRUE в этом аргументе выражения .
Шаг 2 — второй аргумент
значение1Следующая формула вычисляет оставшиеся дни после вычитания двух дат Excel и последующего деления на семь, в одной неделе семь дней.
Функция ОСТАТ возвращает остаток после деления числа на делитель.
MOD( число , делитель )
MOD(C3-B3,7)=0
становится
MOD(44522-45334, 7)=0
становится 9000 = 0
становится
0=0
и возвращает ИСТИНА. Это значение соответствует аргументу выражения, теперь формула будет возвращать аргумент результата.
Шаг 3 — третий аргумент
результат1 Функция INT удаляет десятичную часть из положительных чисел и возвращает целое число (целое), за исключением того, что отрицательные значения округляются в меньшую сторону до ближайшего целого числа.
INT(число)
INT((C3-B3)/7)&» недели »
становится
INT((812)/7)&» недели »
становится
INT(116)&» недели «
становится
116&» неделями »
и возвращает «116 недель» в ячейке D3.
Есть еще два аргумента-значения:
MOD(C3-B3,7)=1 добавляет день к результату. Остаток один.
MOD(C3-B3,7)>1 добавляет дни к результату. Остаток больше единицы.
Шаг 4. Сократите формулу
Функция ПУСТЬ позволяет вам называть промежуточные результаты вычислений, что может значительно сократить формулы и повысить производительность.
LET( имя1 , имя_значение1 , вычисление_или_имя2 , [ имя_значение2 , вычисление_или_имя3 . ..])
SWITCH(TRUE(),MOD(C3-B3,7)=0,INT((C3-B3)/7)&» недели «,MOD(C3-B3,7)=1,INT((C3-B3) )/7)&»недели»&MOD(C3-B3,7)&»день»,MOD(C3-B3,7)>1,INT((C3-B3)/7)&»недели»&MOD(C3- B3,7)&»дни»)
Я назвал промежуточные расчеты, если они повторяются в формуле, получается более короткая формула.
y — C3-B3
x — MOD(y,7)
z — INT((y)/7)
q — «недели»
LET(y,C3-B3,x,MOD(y,7) ),z,INT((y)/7),q,»недели»,SWITCH(TRUE(),x=0,z&q,x=1,z&q&x&»день»,x>1,z&q&x&»дни»))
Основные формулы дат категории
Создать диапазон дат [Формула]
Вопрос: Я пытаюсь создать таблицу Excel с диапазоном дат. Пример: Ячейка A1 04.01.2009-10.01.2009 Ячейка B1 […]
Найти самую последнюю дату, соответствующую определенному условию
В этой статье показано, как получить самую последнюю дату на основе условия с помощью формул или сводной таблицы. […]
Формула для сопоставления даты в диапазоне дат
В этой статье показано, как сопоставить указанную дату с диапазоном дат. На изображении выше показана формула в ячейке […]
Просмотреть все статьи в категории «Основные формулы дат»
Функции в этой статье
ОКРУГЛВНИЗNABSINTLETMODSWITCHTRUE
Более 1300 формул Excel
Категории Excel
3 Последние статьи
Домашняя страницаФункции Excel
Более 300 функций Excel с подробной информацией, включая синтаксис, аргументы, возвращаемые значения и примеры для большинства функций, используемых в формулах Excel.
Формулы Excel
Более 1300 формул, организованных в подкатегории.
Таблицы Excel
Таблицы Excel упрощают работу с данными, добавляя или удаляя данные, фильтруя, суммируя, сортируя, улучшая читаемость с помощью форматирования ячеек, ссылок на ячейки, формул и многого другого.
Расширенный фильтр
Позволяет фильтровать данные на основе выбранного значения, заданного текста или других критериев. Он также позволяет фильтровать существующие данные или перемещать отфильтрованные значения в новое место.
Проверка данных
Позволяет контролировать, что пользователь может вводить в ячейку. Это позволяет вам указать условия и показать собственное сообщение, если введенные данные недействительны.
Раскрывающийся список
Позволяет пользователю работать более эффективно, отображая список, из которого пользователь может выбрать значение. Это позволяет вам контролировать то, что отображается в списке, и это быстрее, чем ввод в ячейку.
Именованные диапазоны
Позволяет назвать одну или несколько ячеек, это упрощает поиск ячеек с помощью поля Имя, чтение и понимание формул, содержащих имена вместо ссылок на ячейки.
Excel Solver
Excel Solver — это бесплатная надстройка, которая использует целевые ячейки, ограничения, основанные на формулах на листе, для выполнения анализа «что, если» и других проблем принятия решений, таких как перестановки и комбинации.
Диаграммы
Функция Excel, позволяющая визуализировать данные в виде графика.