Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Уокенбах Формулы в Excel

.pdf
Скачиваний:
190
Добавлен:
26.03.2016
Размер:
35.82 Mб
Скачать

июнь, 2001, приложение Excel вычислит порядковый номер 37 043,4791666667 и интерпретирует его в доступном формате даты и времени:

0 1 . 0 6 . 2 0 0 1 11:30:00

В некоторых случаях, когда вводится время, превышающее 24 часа, связанная с ним дата соответственно увеличивается. Например, если ввести в ячейку время 25:00:00, Excel увеличит ту часть, которая относится к дню, поскольку она превышает 24 часа и отобразит введенное значение как:

01.01.2000 1:00:00

То же самое происходит, если ввести одновременно и дату, и время, при этом время, превышающее 24 часа. Введенная дата при отображении будет откорректирована. Например, при вводе в ячейку 01.09.1999 25:00:00 на экране отобразится следующая информация:

02.09.1999 1:00:00

Обратите внимание, что, если вводится только время, без соответствующей даты, то максимальное время, которое можно ввести в ячейку, — 9999:59:59, то есть менее 10 000 часов. В этом случае Excel добавляет соответствующее количество дней и на экране отображается пересчитанная дата. Если же ввести время, превышающее предел 10 000 часов, то оно будет появляться как простая текстовая строка.

Форматирование даты и времени

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

ЧИСЛО

 

]

Шрифт ] Граница | Вид

j

Защита

формат ячейки, чтобы в ней отображалась только

Ijncaoabw ферматы:

 

 

Образе*

"

;

di-

определенная часть даты или времени, или только

Общий

 

 

 

Числовой

 

 

 

 

 

заданные части времени и даты одновременно.

Денежный

 

 

 

 

 

Время

 

 

.4.03.2001

 

3

Чтобы форматировать дату или время, выде-

 

 

.4 марта 2001 г

 

Процентный

 

 

 

 

лите необходимую ячейку, а затем

вызовите

Дробный

 

 

 

 

 

 

 

 

 

 

 

Экспоненциальный

 

 

 

 

zi

диалоговое окно Формат ячеек и перейдите на

Дополнительный

 

 

 

 

:тоеый

 

 

fMapOl

 

 

 

 

 

 

 

 

 

 

 

 

 

(все форматы)

 

•vi S»WK(местоположение):

 

 

вкладку Число (рис. 6.1). После этого в поле со

 

 

 

 

zJ

 

 

jрусский

 

 

 

 

 

 

списком

Числовые форматы выберите необ-

р дат служат Д

дат ивремени, представленных

ходимый

тип формата и щелкните

на кнопке

,

 

_

:форматах, я» исялочениеи помечен>ц

Числами, 9 виде дат. 8

 

 

 

яимичкайСЪпфМ

: элементов детым* меняетсяпри сиене формата

ОК. В категории Дата отображаются форматы

 

 

 

 

 

даты, поддерживаемые в Excel, а в категории

 

 

Время — встроенные форматы времени. Суще-

Рис. 6.1. Чтобы изменить текущий формат ствует также несколько форматов, которые мо-

ячейки для отображения даты ивремени, гут отображать дату и время одновременно.

вызовитедиалоговоеокно Форматячеек и перейдитена вкладкуЧисло

При создании формул, содержащих ссылку на ячейку, содержимое которой представляет собой дату или время, Excel автоматически преобразует эти формулы в формат даты или времени. В некоторых случаях,это может быть весьма кстати, в других — создает определенные неудобства и даже раздражает пользователя. К сожалению, Excel не дает никакой возможности отключать автоматическое форматирование ячейки. Тем не менее, в подобных случаях, можно воспользоваться определенной комбинацией клавиш, чтобы отменить форматирование всех чисел ячейки и вернуться к формату Общий, заданному по умолчанию. Для этого достаточно выделить ячейку и нажать комбинацию клавиш <Ctrl+Shift+~>.

150

Часть //.Использование функций вформулах

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

Следующий собственный пользовательский формат особенно полезен для отображения времени:

[ч]:мм:ее

Заключение часов в квадратные скобки позволяет отображать часы за пределами 24. Использование этого формата может быть очень эффективно при добавлении более 24 часов. Пример использования этого формата мы будем рассматривать в этой главе несколько позже в разделе "Суммирование времени, превышающего24 часа".

Трудности, возникающие при использовании даты

Несмотря на всю свою эффективность, Excel все же имеет несколько проблем, возникающих при работе с датой. Большинство из них уходят далеко в прошлое. Excel была разработана много лет назад, еще раньше, чем проблема Y2K впервые потрясла мир своим существованием. Но, как мы уже говорили, во многом разработчики Excel отталкивались от Lotus 1- 2-3, с ее ограниченными возможностями работы с датой и временем. Поэтому все самые ужасные технические дефекты были непреднамеренно перенесены в Excel. Кроме того, версии самой Excel имеют между собой некоторую несовместимость в отношении того, как в них интерпретируется запись в ячейке, которая содержит год, состоящий из двух цифр. И, наконец, то, как Excel понимает запись даты в ячейке, напрямую зависит от региональных настроек, установленных на компьютере пользователя.

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

Ошибка високосного года

Високосный год, который наступает через каждые четыре года, имеет один дополнительный день — 29 февраля. Несмотря на то, что 1900 год не был таковым, Excel воспринимает его каквисокосный. Другими словами, если ввести в ячейку 29.02.1900, Excel не выдаст сообщение об ошибке, а интерпретирует это как значениедаты, соответствующее 60 дню с начала отсчета.

Однако, если ввести другую недопустимую дату 29 . 02 . 1901, Excel выдаст сообщение об ошибке. Приложение не преобразует эту запись в дату, а, скорее, воспримет ее как текстовую строку.

Возникает вопрос: как программный продукт, который ежедневно используют миллионы людей, может содержать такую очевидную ошибку? Ответ кроется в истории его создания. Исходная версия Lotus 1-2-3, на которой базировалось приложение Excel, содержала дефект, по причине которого 1900 год рассматривался как високосный. Разработчики приложения Excel знали об этой ошибке и, позднее, при выпуске приложения, специально перенесли этот дефект, чтобы обеспечить его совместимость с рабочими листами файлов Lotus.

Но почему же эта ошибка все еще существует в более поздних версиях Excel? Компания Microsoft утверждает, что недостатки, которые могут возникнуть при исправлении этой ошибки, значительно перевешивают преимущества. Если бы существующая ошибка была устранена, это привело бы в беспорядок сотни тысяч существующих рабочих книг. Кроме то-

Глава 6. Работа с данными даты ивремени

151

го, исправление этой проблемы сказалось бы на совместимости самого приложения Excel с другими программами, использующими дату. Именно поэтому, в действительности, эта ошибка влечет за собой не так уж и много проблем, как ее исправление. К тому же, большинство пользователей не использует даты, ранее 1 марта 1900 года.

Использование дат до 1900года

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

4 июль, 1776

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

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

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

 

 

 

 

 

 

 

ходимо использовать. Эти правила изменяются

 

шШшшжш

 

 

шш

 

 

в зависимости от версии Excel, которая уста-

 

 

 

Г

 

новлена в компьютере.

: f ^РгмМвпГ

вот

1

Died I

Aqe

j

j l ^ W i l l i am McKinley

1/29/1843

9/14/1901

58

 

 

 

В Excel 97 годы, обозначаемые двумя числа-

 

 

 

 

J h Franklin D. Roosevelt

1/30/1882

4/12/1945

63

 

 

ми

в диапазоне между 00 и 29, интерпретируют-

j A ^'William Henry Harrison

2/9/1773

4/4/1841

68

 

 

5 ;Abraham Lincoln

2/12/1809

4/15/1865

56

 

 

ся как принадлежащие к 21-му столетию, а даты

/8\Zachary Tayler

3/29/1790

7/9/1850

60

 

 

 

 

между 30 и 99 — как даты 20-го столетия. К

J7J Warren G Harding

11/2/1865

8/2/1923

57

 

 

I P j a m e s A. Garfield

11/19/1831

9/19/1881

49

 

 

примеру, если ввести в ячейку запись 5 .12 . 28,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

то Excel интерпретирует ее как 5 декабря 2028

Рис. 6.2. Надстройка Extended

Date

Function

года. Но, если ввести дату 5 .12 . 30, Excel вос-

позволяет работать с датами до 1900 года

 

примет ее как 5 декабря 1930 года. В Excel 2000

 

 

 

 

 

 

 

или

более поздней версии, работающей под

управлением Windows 98 и выше, в качестве граничного года, заданного по умолчанию, используется 2029 год. Но пользователь может самостоятельно установить граничный год. Для этого воспользуйтесь папкой Панель управления. Откройте диалоговое окно Язык и региональные стандарты, щелкните на кнопке Настройка и перейдите на вкладку Дата.

В более ранних версиях приложения Excel, начиная с Excel 3 и до Excel 95, временные периоды сдвинуты еще дальше. Годы, отображенные с помощью двух чисел в пре-

делах между 00 и 19, интерпретируются как даты 21-ого столетия, а годы между

20 и

99 — как даты 20-го столетия. Если в этих версиях Excel

пользователь вводит

дату

05.12.19, то Excel воспринимает ее как 5 декабря 2019

года, но, если ввести дату

05 .12 . 2 0, то Excel воспримет ее уже как 5 декабря 1920 года.

Если же пользователь, по какой-либо причине до сих пор использует Excel 2, то ввод любой даты с двумя числами в качестве года всегда интерпретируется как дата 20-го столетия. В табл. 6.4 сведены все отличия, встречающиеся в различных версиях приложения Excel.

152

Часть II. Использованиефункций в формулах

Таблица 6.4. Интерпретация года, представленж

|вй&амй4|№

Версия Excel

Годы 20-го столетия

Годы 21-гостолетия

2

00-99

н/д

3,4,5,7,(95)

20-99

00-19

8(97), 9(2000),10(2002)

30-99

00-29

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

Функции управления датами

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

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

Таблица 6.5.Функции,связанные сдатой

Функция

Описание функции

ДАТА

Возвращает дату в числовом формате Microsoft Excel для заданной даты

ДАТАЗНАЧ

Преобразует дату из текстового формата в числовой в коде Excel

ДЕНЬ

Преобразует дату в день месяца (число от 1 до 31)

ДНЕЙ3 60

Вычисляет количество дней между двумя датами на основе 360-дневного года

 

(двенадцать месяцев по 30 дней)

Д А Т А М Е С *

Возвращает дату в числовом формате, отстоящую на заданное число месяцев впе-

 

ред или назад от начальной даты

КОНМЕСЯЦА*

Возвращает дату в числовом формате для последнего дня месяца, отстоящего впе-

 

ред или назад на заданное число месяцев

МЕСЯЦ

Возвращает номер месяца (число в диапазоне от 1 до 12), соответствующий вве-

 

денному порядковому номеру даты

Ч И С Т Р А Б Д Н И *

Возвращает количество рабочих дней, расположенных между двумя датами

Т Д А Т А

Возвращает текущую дату и время в числовом формате

С Е Г О Д Н Я

Возвращает текущую дату в виде даты в числовом формате

Д Е Н Ь Н Е Д

Преобразует дату в числовом формате в номер дня недели (число от 1 до 7)

Н О М Н Е Д Е Л И *

Возвращает номер недели в году

Р А Б Д Е Н Ь *

Возвращает дату в числовом формате, отстоящую вперед или назад на заданное

 

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

г о д

Преобразует дату в числовом формате в год (целое число в диапазон от 1900 до 9999)

Д О Л Я Г О Д А *

Возвращает долю года, которая составляет количество дней между начальной и ко-

 

нечной датами

* Функции доступны только в том случае, если установлена надстройка "Пакет анализа"

Глава 6.Работа сданными даты ивремени

153

Отображение текущей даты

Функция, приведенная ниже, отображает в ячейке текущую дату:

=СЕГОДНЯ()

Можно отображать не только одну лишь текущую дату, но и объединять ее с любым текстом. Например, следующая формула будет выводить на экран текст: Сегодня понедельник, 9 Апрель, 2001.

="Сегодня "& ТЕКСТ(СЕГОДНЯ();"дддд, д ММММ, гггг")

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

Чтобы ввести в ячейку дату как временную отметку, которая не будет изменяться каждый последующий день, воспользуйтесь комбинацией клавиш <Ctrl+;>. Текущая дата будет просто введена в ячейку без использования формулы, поэтому она не будет изменяться.

Отображение различных дат

Как мы уже говорили ранее в этой главе, дату можно добавить в ячейку, непосредственно введя ее в любом формате, поддерживаемом в приложении Excel. Дату также можно создать, воспользовавшись функцией ДАТА. Эта функция использует три аргумента: год, месяц и день. Например, приведенная ниже формула возвращает дату, состоящую из года, взятого из ячейки А1, месяца, взятого из ячейки В1, и дня — из ячейкиС1.

=ДАТА(А1;В1;С1)

Обратите внимание, что функция ДАТА принимает также и недопустимые аргументы и приводит результат в соответствие. Например, следующая формула использует число 13 какаргумент месяца и возвращает 1 Январь, 2 002. Аргумент месяца автоматически преобразуется в первый месяц следующего года.

=ДАТА(2001;13;1)

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

=ДАТА(ГОД(СЕГОДНЯ());7;4)

Следующая функция— ДАТАЗНАЧ преобразует текстовую строку, представляющую собой дату, в порядковый номер даты. Следующая формула возвращает значение порядкового номера даты 22 Август, 2002 — 37 490:

= Д А Т А З Н А Ч ( " 2 2 . 8 . 2 0 0 2 " )

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

154

Часть //. Использование функций вформул

Будьте очень внимательны при использовании функции ДАТАЗНАЧ. Текстовая строка, которая может быть использована какдата в одной стране, совершенно не подходит для ввода даты в другой стране. Предыдущий пример работает прекрасно в том случае, если система отрегулирована для форматов даты России/Украины. Однако при использовании других региональных форматов даты, формула может возвращать ошибку, поскольку приложение Excel будет искать восьмой день двадцать второго месяца!

Создание ряда последовательныхдат

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

Самый эффективный способ ввода ряда последовательных дат не требует никаких формул. Просто воспользуйтесь компонентом, встроенным в Excel, —Автозаполнение. Для этого введите в ячейку первую дату, а затем, удерживая нажатой правую кнопку мыши, перетащите в нужном направлении маркер выделения. Отпустите правую кнопку мыши и выберите из контекстного меню команду Заполнить по дням (рис. 6.3).

l" H ':i | J j К I L i M i ^

'э'

j

4

 

6

 

JL

 

,10-

12J

13*

Ж

17

18

19

20"

23

24

25

26

копироватьячейки

Заполнить Заполнить только форматы

Заполнить только значения Заполнить по днам Заполнить по рабочимдням Заполнить по месяцам Заполнить по год.ан

Просрессия...

h e e t l / .Ill .„„.„ МГ?;

Рис. 6.3. Использование средства автозаполнения позволяет создавать в Excel ряд последовательных дат

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

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

Эта формула позволяет создать ряд последовательных дат, следующих одна за другой с интервалом в семь дней:

=А1+7

Глава6.Работа сданными даты и времени

155

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

=ДАТА(ГОД(А1);МЕСЯЦ(А1)+1;ДЕНЬ(А1))

Формула, приведенная ниже, возвращает даты, следующие одна за другой через год:

=ДАТА(ГОД(А1)+1;МЕСЯЦ(А1);ДЕНЬ(А1))

Чтобы создать ряд, состоящий из дат, относящихся только к рабочим дням, исключая субботы и воскресенья, воспользуйтесь приведенной ниже формулой. Имейте в виду, что эта формула предполагает, что дата, введенная в ячейку А1, рабочий день.

=ЕСЛИ(ДЕНЬНЕД(А1)=6;Al+3;A1+1)

Преобразование вдату строки, не означающей дату

Даты, импортируемые как текстовые строки, также можно преобразовать в дату. К примеру, возьмем текстовую строку, которая в действительности представляет собой дату 21 августа 2001 года. Этот текст состоит из четырех знаков, относящихся к году, двух знаков месяца и двух знаков дня:

20010821

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

=ДАТА(ЛЕВСИМВ(А1;4);ПСТР(А1;5;2);ПРАВСИМВ(А1;2))

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

Для

получения дополнительной информации об использовании формул управле-

ния

текстом, обратитесь к главе 5.

Вычисление количества дней между двумя датами

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

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

=А1-В1

156

Часть //. Использование функций вформул

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

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

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

Чтобы рассмотреть эту ситуацию применительно к некоторому диапазону дат, возьмем для примера кампанию по продвижению на рынке определенного товара. Предположим, что начальная дата кампании по продвижению товара — 1 февраля, а завершающая дата — 9 февраля. Просто вычитая одну цифру из другой, мы получим ответ: восемь дней. Но в действительности срок продвижения товара — девять дней. В этом случае, чтобы получить правильный ответ, необходимо считать дни "включительно", а не определять количество дней между датами. Ниже приведена формула, позволяющая вычислить длительность кампании по продвижению товара (предположим, что мы имеем ячейки соответствующие этимназваниям):

=ПоследнийДень-НачальныйДень+1

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

Вычисление количества дней между двумя датами — это еще не все возможности, которыми обладает Excel. В зависимости от необходимости пользователь может исключать из числа этих дней выходные и праздничные дни. Например, определим, сколько рабочих дней выпадает на ноябрь месяц. Для этого необходимо исключить из расчета субботы, воскресенья и праздничные дни, если таковые имеются. Это можно сделать с помощью функции ЧИСТРАБ ДНИ. (Как мы уже говорили, эта функция доступна, если установлена надстройка "Пакет анализа".)

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

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

Обратите внимание, на рис. 6.4 отображен рабочий лист, на которым вычисляется количество рабочих дней между определенными датами. В диапазоне А2 :All содержится пере-

Глава 6. Работа с данными даты ивремени

157

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

=ЧИСТРАБДНИ(А15;В15;А2:А11)

j

'.

А

ШШШШШШШШШШтШШШ

 

в

 

i

Т

(7~ '. Pate

 

Holldav

 

 

2

 

01 01 2002

New Year's Day

 

 

3

 

21 01 2002

Martin Luther King Jr Day

 

4

 

1802.2002

Presidents' Day

 

 

5

'

27.05 2002

Memorial Day

 

 

6

 

04.07.2002

Independence Day

 

 

7

 

02.09.2002

Labor Day

 

 

8

 

11.11.2002

Veterans Day

 

 

9

 

14.10.2002

Columbus Day

 

 

10

 

28.11.2002

Thanksgiving Day

 

 

11

 

25.12.2002

Christmas Day

 

 

12

 

 

 

 

 

 

13"

 

 

 

 

 

 

14 1

«retDay

 

L a * Da*

WortdmiDav*

15

 

вторник 1.1.2002

понедельник 1.7.2002

4

16

 

вторник 1.1 2002

вторник 12 31

2002

251

1?

 

 

 

 

 

 

2\'

 

 

"

"

Ill

]

 

 

 

Cs

1

J

Рис. 6.4. Чтобыопределить количество рабочих дней в промежуткемежду двумязаданными датами, воспользуйтесь функцией ЧИСТРАБДНИ

Формула возвращает значение 4. Это означает, что семидневный период, начинающийсяс 1 января, состоит из четырех рабочих дней. Другими словами, при расчете исключаются один праздничный день, один субботний и один воскресный день. Ячейка С16 содержит формулу, которая вычисляет общее количество рабочих дней в году.

Вычисление даты по графику рабочих дней

Следующая функция— РАБ ДЕНЬ — также доступна только в том случае, если установлена надстройка Excel "Пакет анализа", и является логичным продолжением функции ЧИСТРАБДНИ. Например, при запуске в работу определенного проекта, требующего на выполнение десять дней, функция вычисляет дату окончания проекта.

 

В приведенной ниже формуле с помощью функции РАБ ДЕНЬ определяется дата, следую-

щая

через десять рабочих дней после 4 января 2001 года. Рабочими днями считаются будние

дни

недели (с понедельника по пятницу).

=РАБДЕНЬ("04.01.2001";10)

Формула возвращает значение 18 января 2001 года (между 4 и 18 января выпадает четыре

выходных дня).

Имейте в виду, что результат, возвращаемый данной формулой, полностью зависит от региональных настроек даты. В других регионах жестко установленная дата может интерпретироваться как 1 апреля 2001 года. Чтобы избежать этого, используйте следующую формулу:

=РАБДЕНЬ(ДАТА(2001;1;4);10)

158

Часть II. Использование функций вформулах

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

Вычисление количества лет между двумя датами

Следующая формула вычисляет количество лет между двумя датами. Здесь предполагается, что обе ячейки: иА1, иВ1 содержат определенные даты.

=ГОД(А1)-ГОД(В1)

Для извлечения года из каждой заданной даты вэтой формуле используется функция ГОД, после чего один год вычитается из другого. Имейте в виду, что, если В1 содержит более близкий к текущей дате год, чем дата вячейке А1, результат будет отрицательным.

Обратите внимание, данная функция не вычисляет часть года. Например, если ячейкаА1 содержит дату 31.12.2001, аячейка В1 дату 01.01.2002, тоформула возвратит разницу водин год, несмотря на то, что эти даты отличаются всего лишь на один день.

Определение возраста человека

Возраст человека — это число полных лет, которые человек уже прожил. Формула, приведенная длявычисления количества лет между двумя датами в предыдущем разделе, не сможет корректно определить это значение. Тем неменее, мы можем использовать две другие формулы, позволяющие правильно вычислить возраст человека.

Следующая формула возвращает возраст человека, дата рождения которого содержится в ячейке А1. Эта формула использует функцию ДОЛЯГОДА, которая доступна только при подключении надстройки "Пакет анализа".

=ЦЕЛОЕ(ДОЛЯГОДА(СЕГОДНЯ();А1;1))

Ниже приведена формула, которая уже не использует функции надстройки "Пакет анализа", а применяет для вычисления возраста функцию РАЗЫДАТ (см. врезку "Где найти функцию РАЗНДАТ?"):

= Р А З Н Д А Т ( А 1 ; С Е Г О Д Н Я ( ) ; " у ")

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

= Р А З Н Д А Т ( А 1 ; С Е Г О Д Н Я ( ) ; " у " ) & " л е т " & Р А З Н Д А Т ( А 1 ; С Е Г О Д Н Я ( ) ; " у т " ) & " м е с , 11 & Р А З Н Д А Т ( А 1 ; С Е Г О Д Н Я ( ) ; " m d " ) & " д н . "

Данная формула возвратит текстовую строку: 49 лет, 3мес, 29 дн.

Вычисление дня года

Всем понятно, что 1января — это первый день года, а 31 декабря — последний. Как определить, какой по счету день приходится на произвольно взятую дату втечение года? Следующая ниже формула возвращает порядковый номер дня года для даты, содержащейся вячейке А1:

=А1 - ДАТА(ГОД(А1);1;0)

Иногда порядковый номер дня года может упоминаться как дата по Юлианскому календарю.

Глава 6. Работа сданнымидаты ивремени

159