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

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

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

Данная формула возвращает количество дней в году, оставшихся после наступления определенной даты, заданной в ячейке А1:

=ДАТА(Г0Д(А1);12;31)-А1

Где найти функцию РАЗНДАТs

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

Функция РАЗНДАТ была известна еще с Lotus 1-2-3 и, очевидно с целью обеспечения совместимости, Excel поддерживает работу этой функции. По определенным причинам Microsoft старается сохранить эту функцию в секрете. Интересно, что в версиях приложения ниже Excel 2000 функция РАЗНДАТ даже не упоминалась. А из интерактивной справки Excel 2002 были удалены все ссылки на эту функцию, хотя сама функция в этой версии приложения всееще доступна.

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

Код единицы измерения

Возвращаемоезначение

"у"

Количество полных лет в заданном периоде,

"т"

Количество полных месяцев в заданном периоде,

"d"

Количество дней в заданном периоде.

"md"

Разница в днях между начальной и конечной датой.

 

Месяцы и годы, в данном случае, игнорируются.

"ут"

Разница в месяцах между начальной и конечной датой.

 

Игнорируются дни и годы.

"yd"

Разница в днях между начальной и конечной датой.

 

Игнорируются годы между заданными датами.

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

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

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

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

Определение дня недели

Для определения дня недели часто применяется функция ДЕНЬНЕД. Эта функция использует в качестве аргумента дату и возвращает целое число, соответствующее дню недели, в диапазоне между 1 и 7. Обратите внимание, что, в данном случае, отсчет дней начинается с

160

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

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

=ДЕНЬНЕД(ДАТА(2002;1;1))

Утилиты для работы сдатамииз надстройки Power Utility Pak

Специально для работы с датами автором этой книги разработана надстройка Power Utility Рак, которая содержит несколько утилит, предназначенных для работы сдатами:

1.Perpetual Calendar (Вечный календарь)— позволяет отображать календарь на любой месяц, а также создавать графическое представление календаря и размещать его на рабочем листе.

2. Insert-A-Date (Вставка даты). Утилита упрощает ввод даты. Чтобы вставить дату в ячейку, достаточно просто щелкнуть на календаре и выбрать один из общих доступных форматов даты.

3.Reminder Alarm (Напоминание). Эта утилита в указанное время дня или после сигнализирует, включая звуковой сигнал, об истечении установленного временногопериода.

4.Time Tracker (Таймер) — отслеживает количество потраченного времени и имеет возможность обслуживания до шести проектов.

5.Date Report (Отчет по датам). Утилита создает сообщения обо всех датах, имеющихся в рабочей книге. Эта утилита полезна для определения потенциальной проблемы Y2K.

Функция ДЕНЬНЕД может использовать и второй необязательный аргумент, который определяет систему нумерации дней недели для выведения результата. Если в качестве второго аргумента введено значение 2, то функция возвращает значение 1 для понедельника, 2 для вторника и так далее. Если же в качестве второго аргумента ввести значение 3, то функция возвратит 0 для понедельника, 1 для вторника и далее.

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

ДДДД

Определение даты самого ближайшего воскресенья

Хотите узнать, на какую дату приходилось прошедшее воскресенье? Воспользуйтесь формулой, приведенной ниже. Но имейте в виду, если текущая дата выпадает на воскресенье, то формула возвращает текущую дату:

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

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

161

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

Вычисление дня недели, следующего за определенной датой

А эта формула возвращает день недели, следующий за определенной датой. Например, используйте эту формулу, чтобы определить дату первого понедельника после 1 июня 2001 года. Для этого предположим, что ячейка А1 содержит дату, а ячейка А2 содержит число между 1 и 7 (1 соответствует воскресенью, 2 — вторнику и так далее).

=А1+А2-ДЕНЬНЕД(А1)+(А2<ДЕНЬНЕД(А1))*7

Если ячейка А1 содержит дату 1 июня 2001 года, а ячейки А2 содержит значение 2 (понедельник), то формула возвратит дату 4 июня 2001 года. Это будет первый понедельник, следующий после пятницы 1 июня 2001 года.

Определение даты дня недели

взаданном месяце

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

=ДАТА(А1;А2;1)+А3-ДЕНЬНЕД(ДАТА(А1;А2;1))+(А4- (АЗ>=ДЕНЬНЕД(ДАТА(А1;А2;1))))*7

Для этой формулы приняты следующие условия:

1.Ячейка А1 содержит значение года.

2.Ячейка А2 содержит значение месяца.

3.Ячейка A3 содержит значение дня (1 для воскресенья, 2 для понедельника и так далее).

4.Ячейка А4 содержит расположение буднего дня, заданного в ячейке A3, в пределах месяца.

Например, если использовать эту формулу для определения даты первой пятницы в июне 2002 года, формула возвратит дату 7 июня 2002 года.

Иногда значение, содержащееся в ячейке А4, может выпадать за пределы количества дней в указанном месяце. В таких случаях, формула возвращает дату, относящуюся к следующему месяцу. Например, если задать определение даты пятой пятницы июня 2002 года (а такой пятницы не существует), то формула возвращает дату первой пятницы июля.

Определение числа заданных дней недели вмесяце

Формула, приведенная ниже, позволяет вычислить количество определенных дней недели, выпадающих в течение заданного месяца. Предположим, что ячейка А1 содержит дату, а ячейка А2 порядковый номер дня недели (значение 1 соответствует воскресенью, 2 — поне-

162

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

дельнику и так далее). Имейте в виду, что эта формула - формула массива, поэтому чтобы ввести ее, используйте клавиши<Ctrl+Shift+Enter>.

{=СУММ((ДЕНЬНЕД(ДАТА(ГОД(А1);МЕСЯЦ(А1);СТРОКА(ДВССЫЛ("1:"&ДЕНЬ(ДАТА

(ГОД(А1)/МЕСЯЦ(А1)+1;0))))))=В1)*1)}

Если ячейка А1 содержит дату 5 января 2002 года, а ячейка В1 — значение 3, то есть вторник, формула возвращает значение 5. Это значит, что январь 2002 года содержит пять вторников.

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

{ = С У М М ( ( Д Е Н Ь Н Е Д ( Д А Т А ( А 1 ; А 2 ; С Т Р О К А ( Д В С С Ы Л ( " 1 : " & Д Е Н Ь ( Д А Т А ( A l ; A 2 + 1 ; 0 ) ) ) ) )

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

{=СУММ((ДЕНЬНЕД(ДАТА($В$2;$АЗ;СТРОКА(ДВССЫЛ("1:"&ДЕНЬ(ДАТА($В$2;$АЗ+1; 0)))))

Итоговые формулы на этом листе используют функцию СУММ. Они вычисляют общее количество дней в месяце (столбец J) и количество каждого дня недели в году (строка 15).

YEAR->

 

 

Sim

Moit

TUB

Wed

Th«

Fri

Set

1

January

 

4

4

5

5

5

4

4

2

Febwary

 

4

4

4

4

4

4

4

3

March

5

 

4

4

4

4

5

5

4

April

 

4

5

5

4

4

4

4

5

May

 

4

4

4

5

5

5

4

6

June

 

5

4

4

4

4

4

5

7

July

 

4

5

5

5

4

4

4

 

August

 

4

4

4

4

5

5

5

 

September

 

5

5

4

4

4

4

4

10

October

 

4

4

5

5

5

4

4

11

November

 

4

4

4

4

4

5

5

12

December

 

5

5

5

4

4

4

4

 

Total Days:

 

 

 

 

 

 

 

 

4 * x\sheetl/

 

 

 

 

Ы,

 

 

 

Рис. 6.5. На этом рабочем листе вычисляется число каждого дня недели вгоду

Вычисление праздничных дат

Определение дат, выпадающих на специфические праздничные дни, требует использования некоторых хитростей. Безусловно, это не касается таких дат, как Новый год или День Независимости США, поскольку это уже сами по себе даты, определенные издавна. Для них можно просто использовать функцию ДАТА, о которой мы уже говорили ранее в этой главе. Следующая формула отображает дату Нового года. Новый год всегда приходится на 1 января; требуемый год введите в ячейку А1:

=ЦАТА(А1;1;1)

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

163

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

Обратите внимание, на рис. 6.6 отображена рабочая книга Excel, где вычисляются даты десяти праздничных дней США. Все формулы содержат ссылку на ячейку А1 — год, для которого вычисляются даты. Заметьте, что несмотря на то, что такие праздники, как Новый год, День Независимости и День Ветеранов, имеют четко установленные даты, функция ДАТА все же вычисляет их даты по заданному порядковому номеру дня определенного месяца.

Ш | HOLIDAYS XLS

 

 

 

 

ых:

F

<-Enter the year

j-

-

• '

'•

 

 

 

Holiday Calculations

 

 

Holiday

 

 

Description

Date

Weekday

 

New Year's Day

1st

Day inJanuary

Январь 1,2002

вторник

 

Martin Luther King Jr Day^ 3rd

Monday inJanuary

Январь 21,2002

понедельник

 

Presidents' Day

3rd

Monday in February

Февраль 18,2002

понедельник

 

Memorial Day

Last Monday in May

Май 27,2002

понедельник

 

Independence Day

4th

Day ofJuly

Июль 4,2002

четверг

 

Labor Day

1st

Monday in September

Сентябрь 2,2002

понедельник

 

Veterans Day

11th

 

Day ofNovember

Ноябрь 11,2002

понедельник

 

Columbus Day

2nd

Monday in October

Октябрь 14,2002

понедельник

 

Thanksgiving Day

4thThursday in November

Ноябрь 28,2002

четверг

 

Christmas Day

25th Day ofDecember

Декабрь 25,2002

среда

 

7 V

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

День Мартина Лютера Кинга

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

=ДАТА(А1;1;1)+ЕСЛИ(2<ДЕНЬНЕД(ДАТА(А1;1;1));7- ДЕНЬНЕД(ДАТА(А1;1;1))+2;2-ДЕНЬНЕД(ДАТА(А1;1;1)))+((3-1)*7)

День Президентов

День Президентов празднуется в третий понедельник февраля. Следующая формула вычисляет дату этого дня в 2002 году (ячейка А1):

=ДАТА(А1;2;1)+ЕСЛИ(2<ДЕНЬНЕД(ДАТА(А1/2;1)) ,-7- ДЕНЬНЕД (ДАТА(А1; 2;1) )+2;2-ДЕНЬНЕД(ДАТА(А1;2;1)))+((3-1)*7)

День памяти павших

День памяти павших в гражданской войне в США 1861-65 гг., в испано-американской и других войнах отмечается в США в последний понедельник мая. На какую дату он придется в 2002 году, (ячейка А1) определяется с помощью следующей формулы:

=ДАТА(А1;б;1)+ЕСЛИ(2<ДЕНЬНЕД(ДАТА(А1;б;1));7- ДЕНЬНЕД(ДАТА(А1;б;1))+2;2-ДЕНЬНЕД(ДАТА(А1;б;1)))+ ((1-1)*7)-7

164

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

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

День Труда

День Труда — этопервый понедельник сентября. Формула, приведенная ниже , определяет егодату в 2002 году (ячейкаА1):

=ДАТА(А1;9;1)+ЕСЛИ(2<ДЕНЬНЕД(ДАТА(А1;9;1));7- ДЕНЬНЕД(ДАТА(А1;9;1))+2;2-ДЕНЬНЕД(ДАТА(А1;9;1)) )+ ((1-1)*7)

День Колумба

Этот праздник выпадает навторой понедельник октября. Длявычисления егодаты в 2002 году (ячейка А1) используется следующая формула:

=Д А Т А ( А 1 ; 1 0 ; 1 ) + Е С Л И ( 2 < Д Е Н Ь Н Е Д ( Д А Т А ( А 1 ; 1 0 ; 1 ) ) ; 7 -

ДЕ Н Ь Н Е Д ( Д А Т А ( А 1 ; 1 0 ; 1 ) ) + 2 ; 2 - Д Е Н Ь Н Е Д ( Д А Т А ( А 1 ; 1 0 ; 1 ) ) ) + ( ( 2 - 1 ) * 7 )

День Благодарения

День Благодарения празднуется в четвертый четверг ноября. Следующая формула вычисляет дату этого дняв 2002 году (ячейкаА1):

=ДАТА(А1;11;1)+ЕСЛИ(5<ДЕНЬНЕД(ДАТА(А1;11;1));7- ДЕНЬНЕД(ДАТА(А1;11;1))+5;5-ДЕНЬНЕД(ДАТА(А1;11;1)))+((4-1)*7)

Определение дня Пасхи

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

Однажды один изпользователей Excel, Ганс Гербер (Hans Herber) из Германии, насвоем Web-узле организовал своеобразное соревнование по созданию формулы вычисления даты Пасхи. Цель этого состязания состояла в том, чтобы создать самую, насколько это возможно, короткую формулу, которая бы правильно определяла дату Пасхи с 1900 до 2078 года.

На рассмотрение было представлено двадцать формул различной длины: от44 до 154символов. Среди этих формул есть такие, которые работают только с европейскими параметрами настройки даты. Ниже приведена самая короткая извсех представленных формул. Ее автор Томас Джансен (Thomas Jansen). Данная формула работает также с любыми параметрами настройки даты.

=РУБЛЬ((И 4/И &А1)/7+ОСТАТ(19* ОСТАТ(А1;19) - 7;30)*14%;)*7 - б

Формула возвращает дату, накоторую выпадает день Пасхи вуказанном году (ячейка А1).

И, пожалуйста, непросите объяснить эту формулу. У меня нетниединого предположения по поводу того, как она работает!

Определение даты последнего дня месяца

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

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

165

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

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

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

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

Определение високосного года?

Безусловно, для того чтобы определить, является ли високосным определенный год, можно написать формулу, которая определяет дату двадцать девятого дня февраля: 29 февраля или 1 марта. Но гораздо эффективнее воспользоваться формулой ДАТА, которая еще и откорректирует результат в том случае, если введен неправильный аргумент. Например, значение 29 для дня, в то время как в феврале этого года всего 28 дней.

Эта формула возвращает значение ИСТИНА, если дата, находящаяся в ячейке А1, относится к високосному году. В противном случае формула возвращает значение ЛОЖЬ:

=ЕСЛИ(МЕСЯЦ(ДАТА(ГОД(А1);2;29))=2;ИСТИНА;ЛОЖЬ)

Помните, что для 1900 года результат, возвращаемый данной функцией — ИСТИНА, будет неправильным. Для получения дополнительной информации см. раздел "Ошибка високосного года" ранее в этой главе.

Вычисление квартального периода

Наверное, всем знаком такой термин как квартальный отчет. Для многих финансовых работников квартальное отображение информации очень полезно. Формула, приведенная ниже, возвращает числовое значение от 1 до 4, которое соответствует календарному кварталу для даты, содержащейся в ячейке А1:

= О К Р У Г Л В В Е Р Х ( М Е С Я Ц ( А 1 ) / 3 ; 0 )

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

Отображение года римскими цифрами

Любителям старых кинофильмов наверняка понравится эта особенность Excel. Следующая формула отображает 1945 год римскими цифрами и возвращает MCMXLV.

=РИМСКОЕ(1945)

Функция РИМСКОЕ работает только тогда, когда на компьютере установлена надстройка "Пакет анализа". Но имейте в виду, что данная функция возвращает текстовую строку, поэтому ее результат нельзя использовать для проведения вычислений! Кроме того, к сожалению, Excel не имеет обратной функции, которая позволила бы преобразовать римские цифры в арабские.

166

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

Создание календаря в отдельном диапазоне ячеек

Для создания календаря, который приводится здесь в качестве примера (рис. 6.7), использована одна формула (формула массива), позволяющая отображать календарь в определенном диапазоне ячеек. Полосы прокрутки связаны с ячейками, которые указывают месяц и год. В данном случае ячейка В2 содержит месяц (назовем^ его т), а ячейка D2 содержит год (названный у). Далее введите следующую формулу массива в диапазон ячеек В6 :НИ:

(=ЕСЛИ(МЕСЯЦ(ДАТА(у;т;1))оМЕСЯЦ(ДАТА(у;т;1)-(ДЕНЬНЕД(ДАТА(у;т;1))- 1 ) + { 0 : 1 : 2 : 3 : 4 : 5 } * 7 + { 1 ; 2 ; 3 ; 4 ; 5 ; б ; 7 } - 1 ) ; " " ; Д А Т А ( у ; т ; 1 ) - ( Д Е Н Ь Н Е Д ( Д А Т А ( у ; т ; 1 ) ) - 1 ) + { 0 : 1 : 2 : 3 : 4 : 5 } * 7 + { 1 ; 2 ; 3 ; 4 ; 5 ; б ; 7 } - 1 ) }

4

т rji~~TTTjJ

Current Month |

:Июль 2001

Sun

 

 

Wed

Thu

Fri

Sat

 

\

1

 

3

4

5

6

 

7

2

 

 

8

9

10

11

12

13

 

14

'.

 

 

 

 

 

 

 

 

15

16

17

18

19

20

 

21

 

22

23

24

25

26

27

 

28

 

29

30

31

 

 

 

 

 

 

V* I T W W K * WOfraTwfflv

Н 4

"

- " ' *'••'•

ы

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

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

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

Давайте сразу систематизируем связанные со временем доступные в Excel функции (табл. 6.6). Все приведенные ниже функции можно найти в диалоговом окне Мастер функций в категории Дата и время.

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

167

| Т а б л и ц а 6 . ё ;

'

^

^

;

;

Функция

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

 

 

Ч А С

Преобразует дату вчисловом формате в часы

М И Н У Т Ы

Преобразует дату вчисловом формате в минуты

М Е С Я Ц

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

 

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

Т Д А Т А

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

С Е К У Н Д Ы

Преобразует даты вчисловом формате всекунды

В Р Е М Я

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

В Р Е М З Н А Ч

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

Отображение текущего времени

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

=ТДАТА()-СЕГОДНЯ()

Для того чтобы ввести в заданную ячейку постоянную временную отметку, нажмите комбинацию клавиш <Ctrl+Shift+:>.

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

ччгмм АМ/РМ

Время может объединяться с текстовой строкой. Следующая формула позволяет отобразить текст "Текущее время 6:28 РМ":

="Текущее время "&ТЕКСТ(ТДАТА();"ч:мм АМ/РМ")

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

Отображение времени

Ранее в этой главе, мы уже говорили о том, как вводить временные данные. Достаточно просто ввести в ячейку определенное время, используя для этого, по крайней мере, один знак : (двоеточие). Но есть и другой способ. Чтобы отобразить время, воспользуйтесь функцией ВРЕМЯ. Например, формула приведенная ниже, возвращает час, который содержит ячейка А1, минуты, введенные в ячейку В1, и секунды из ячейкиС1:

=ВРЕМЯ(А1;В1;С1)

Так же как и для функции ДАТА, для функции ВРЕМЯ могут вводиться недопустимые аргументы, которые она затем приводит в соответствие самостоятельно. Например, давайте введем в следующую формулу заведомо неправильный аргумент 80. В этом случае формула

168

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

возвратит значение 10:20:15 AM. Неверные 80 минут будут просто добавлены к заданному часу, а оставшаяся ихчасть будет отображена как 20минут.

=ВРЕМЯ(9;80;15)

Если ввести в качестве первого аргумента функции ВРЕМЯ значение, превышающее 24 часа, торезультат будет несколько иным, чем можно было ожидать. Следуя логике, можно предположить, что такая формула должна вычислять числовое значение даты ивремени равное 1,041667 (то есть один день иодин час):

=ВРЕМЯ(25;0;0)

Но, фактически, эта формула имеет тот же смысл, что иследующая формула:

=ВРЕМЯ(1;0;0)

Тем не менее, функция ДАТА может быть использована вместе с функцией ВРЕМЯ водной ячейке. Например, следующая формула вычисляет числовое значение 37 229,7708333333, которое соответствует 6:30РМ 4 декабря 2001 года:

=ДАТА(2 00 1 ; 1 2 ; 4 ) + В Р Е М Я ( 1 8 ; 3 0 ; 0 )

Следующая функция — ВРЕМЗНАЧ преобразует текстовую строку, похожую на временное значение, в числовое представление заданного времени. Приведенная ниже формула возвращает числовое значение 0,2395833333 для времени 5:45:

= В Р Е М З Н А Ч ( " 5 : 4 5 " )

Для того чтобы результат этой формулы отображался как время, необходимо применить к ячейке формат времени. Имейте в виду, чтофункция ВРЕМЗНАЧ принимает только форматы времени, поддерживаемые в приложении Excel. Например, следующая формула возвратит значение ошибки, поскольку Excel невоспринимает запись "a.m." как параметр времени:

= В Р Е М З Н А Ч ( " 5 : 4 5 a . m . " )

Суммирование времени, превышающего 24 часа

Давайте попробуем суммировать несколько значений времени, превышающих 24 часа. Вы, наверное, удивитесь, увидев, чтоExcel неможет отобразить правильную сумму всех значений. Возьмем, например, диапазон ячеек В2:В8 (рис. 6.8), в которых введено несколько значений времени, число отработанных часов и минут за каждый день недели. Формула, вычисляющая суммарноезначение времени, содержится в ячейке В9:

=СУММ(В2:В8)

Весьма очевидно, чтоформула возвращает неправильное значение (18 часов 30 минут). Ведь простой расчет показывает, что общее количество часов должно быть равным 42 часам 30 минутам. Проблема состоит в том, что, на самом деле, формула возвращает числовое значение даты и времени 1,770833,но формат ячейки не позволяет отображать часть этого значения, относящегося к дате.

Рис. 6.8. Функция СУММвычисляет общее количество отработанных часов. Однако данный ответ неверен, поскольку ячейка В9 имеет неправильный формат данных

Для того чтобы полученный результат отображался как время, превышающее 24 часа, необходимо изменить формат результирующей ячейки, а часть времени, представляющую со-

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

169