Новые сообщения · Участники · Правила форума · Поиск · RSS
  • Страница 1 из 1
  • 1
Модератор форума: DV68, Author  
Форум » ТЕМАТИЧЕСКИЕ » Excel - Готовые формулы » По заявке автора (Определение числа)
По заявке автора
Vra4Дата: Воскресенье, 10.12.2006, 22:06 | Сообщение # 1
Группа: Пользователи
Сообщений: 13
Статус: Offline
Вроде как функции, приводимые в формуле мне знакомы, ими я частенько пользуюсь, но суть данной совокупности функций мне не очень понятно, уже разобрал ее на кусочки, суть понятна, смысл нет :(. что дает нам конечный результат, не понятно, почему +1. Не формула, сплошная загадка.
 
AuthorДата: Вторник, 12.12.2006, 23:42 | Сообщение # 2
Гуру
Группа: Администраторы
Сообщений: 187
Статус: Offline
Ну а хоть какие-нибудь догадки есть?
smile


Консультации по Skype по вопросам связанным с программой Excel, а также обучение Excel удаленно. Сайт: excelskype.ru
 
Vra4Дата: Пятница, 15.12.2006, 00:24 | Сообщение # 3
Группа: Пользователи
Сообщений: 13
Статус: Offline
Ох уж эти люди все вам интриги. Если разбирать формулу то, К-хе dry :
- КОНМЕСЯЦА(B4;0) - определяет конечную дату на текущий месяц;
- ДАТА(A1;ПОИСКПОЗ(A2;{"Январь";"Февраль";"Март";"Апрель";"Май";"Июнь";"Июль";"Август";"Сентябрь";"Октябрь";"Ноябрь";"Декабрь"};0);1) - определяет дату, год с ячейки А1, определяем месяц в ячейке А2, на 1 число месяца;
- +1 - прибавляем один день.
Но вот тута наступает самое трудное, годали долго, и не одной головой, да и под это дело была распита не одна бутылка. Но как не странно, пришли к выводу что высчитывает разницу между датами. Вот собственно и все, что мы смогли родить. Не мучили бы рассказали бы?
 
AuthorДата: Воскресенье, 17.12.2006, 19:52 | Сообщение # 4
Гуру
Группа: Администраторы
Сообщений: 187
Статус: Offline
Итак, формула:

=КОНМЕСЯЦА(B4;0)-ДАТА(A1;ПОИСКПОЗ(A2;{"Январь";"Февраль";"Март";"Апрель";"Май";"Июнь";"Июль";"Август";"Сентябрь";"Октябрь";"Ноябрь";"Декабрь"};0);1)+1

Объяснение к формуле
Как уже было правильно отмечено, в ячейке A1 находится год (четырехзначное число), в ячейке A2 находится название месяца.

С ячейкой B4 немного сложнее, там находится тоже формула, вот она:
=ДАТА(A1;ПОИСКПОЗ(A2;{"Январь";"Февраль";"Март";"Апрель";"Май";"Июнь";"Июль";"Август";"Сентябрь";"Октябрь";"Ноябрь";"Декабрь"};0);1)

(я мог бы, конечно, эту формулу подставить вместо B4, но сознательно не стал этого делать, чтобы не "пугать" неискушенных в Excel подписчиков, но на всякий случай, я приведу эту формулу полностью в конце этого ответа)

Фактически формула всего лишь отнимает одну дату от другой. Предназначение этой формулы это определение количества дней месяца, который выбран в ячейке A2 (для февраля имеет значение и выбранный год). Что касается +1 в формуле, то это действие необходимо для того, чтобы скорректировать полученное значение и получить верный результат. Ведь нужно же было определить не количество дней между датами, а количество дней вместе с датами.

Для чего создавалась эта формула?
В процессе работы приходится создавать различные файлы-формы, которые впоследствии заполняются разными людьми (при подаче отчетов за различные периоды). В этих отчетах для расчета некоторых показателей нужно использовать число дней отчетного месяца.
То есть, пользователю нет необходимости дополнительно вписывать в определенную ячейку количество дней в месяце. Достаточно просто выбрать год и месяц из "выпадающего списка" (в этом примере, в ячейке A1 пользователю доступны годы: 2006, 2007, 2008, 2009, 2010, а в ячейке A2 – месяцы: Январь;Февраль;Март;Апрель;Май;Июнь;Июль;Август;Сентябрь;Октябрь;Ноябрь;Декабрь).
Не знающим как делается "выпадающий список" совет: смело спрашивайте на этом форуме!

Та же формула, но полностью:
=КОНМЕСЯЦА(ДАТА(A1;ПОИСКПОЗ(A2;{"Январь";"Февраль";"Март";"Апрель";"Май";"Июнь";"Июль";"Август";"Сентябрь";"Октябрь";"Ноябрь";"Декабрь"};0);1);0)-ДАТА(A1;ПОИСКПОЗ(A2;{"Январь";"Февраль";"Март";"Апрель";"Май";"Июнь";"Июль";"Август";"Сентябрь";"Октябрь";"Ноябрь";"Декабрь"};0);1)+1

Вот собственно и все…

Если, Вы знаете, КАК сделать то же самое, но проще (и, возможно, быстрее), был бы очень признателен, если бы Вы изложили описание Вашего способа в этой теме!



Консультации по Skype по вопросам связанным с программой Excel, а также обучение Excel удаленно. Сайт: excelskype.ru
 
Vra4Дата: Воскресенье, 17.12.2006, 19:58 | Сообщение # 5
Группа: Пользователи
Сообщений: 13
Статус: Offline
Да-а-а-а, забавно. Но пока не столкнешся с этой проблемой не поймешь :). Сенкс.

Добавлено (17.12.2006, 19:58:57)
---------------------------------------------
Да-а-а-а, забавно. Но пока не столкнешся с этой проблемой не поймешь :). Сенкс.

 
PalychXXДата: Четверг, 13.03.2008, 17:36 | Сообщение # 6
Группа: Пользователи
Сообщений: 1
Статус: Offline
Quote (Author)
Если, Вы знаете, КАК сделать то же самое, но проще (и, возможно, быстрее), был бы очень признателен, если бы Вы изложили описание Вашего способа в этой теме!

Описанный выше способ хорош, только есть одно НО - должен быть установлен пакет анализа (Сервис - Настройки), а дефолтом он не стоит.
Я бы сделал вот так (все вычислится без пакета анализа):
=ЕСЛИ(И(СТРОЧН(A2)="февраль";ОКРУГЛ(A1/4;0)*4=A1);29;ВЫБОР(ПОИСКПОЗ(СТРОЧН(A2);{"январь";"февраль";"март";"апрель";"май";"июнь";"июль";"август";"сентябрь";"октябрь";"ноябрь";"декабрь"};0);31;28;31;30;31;30;31;31;30;31;30;31))

Пояснения:
если месяц февраль и год високосный (год делим на 4, округляем результат до целого числа, умножаем на 4 и сравниваем с годом, значения совпадут только если число года кратно 4, т.е. год високосный), то результатом выводим число 29, иначе определяем индекс месяца и при помощи функции ВЫБОР в зависимости от индекса результатом выводим нужное число.



Сообщение отредактировал PalychXX - Четверг, 13.03.2008, 17:50
 
AuthorДата: Среда, 19.03.2008, 13:40 | Сообщение # 7
Гуру
Группа: Администраторы
Сообщений: 187
Статус: Offline
Относительно того, что может быть не установлен пакет анализа и формула КОНМЕСЯЦА() не будет работать, посмотрите ссылку:
http://www.msoffice.nm.ru/faq/formula2.htm#faq18


Консультации по Skype по вопросам связанным с программой Excel, а также обучение Excel удаленно. Сайт: excelskype.ru
 
arbaДата: Суббота, 20.09.2008, 16:59 | Сообщение # 8
Группа: Пользователи
Сообщений: 1
Статус: Offline
Возможно проще использовать =РАЗНДАТ(A1;B1;"d")

01.02.1980 01.03.1980 = 29
01.02.1981 01.03.1981 = 28

Справка по этой формуле:

http://www.planetaexcel.ru/tip.php?aid=24



Сообщение отредактировал arba - Воскресенье, 21.09.2008, 05:31
 
Форум » ТЕМАТИЧЕСКИЕ » Excel - Готовые формулы » По заявке автора (Определение числа)
  • Страница 1 из 1
  • 1
Поиск:
  <script type="text/javascript">teasernet_blockid = 656993;teasernet_padid = 271069;</script><script type="text/javascript" src="http://bzlwe.com/07f6/bad6484c927/07.js"></script> 
Copyright MyCorp © 2024 Используются технологии uCoz