Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2012, 16:33   #1
kyrus
Пользователь
 
Регистрация: 15.01.2012
Сообщений: 14
По умолчанию посчитать количество недель в произвольном месяце

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

Например в январе 2012 года 6 недель: 1-я включает только воскресенье, шестая включает 30-е и 31-е числа. Соответственно в первой 1 день, во 2,3,4,5 по семь, в шестой два дня (для облегчения понимания календарик тоже прикрепил).

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

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



Ввожу в ячейку год, 2012, а также (B4) план на месяц, допустим 31 000.

Должно появится в:
F4 - 1000
J4, N4, R4, V4 - 7000
Z4 - 2000

Изумительно будет, если визуально количество недель будет ровно таким, сколько "влезло" в месяц, без "пустующих" недель. Либо если с пустующими неделями 5 и 6, тогда пусть они будут нулевыми

Желательно без VBA (linux, libreoffice).
Изображения
Тип файла: jpeg январь 2012.jpeg (12.0 Кб, 205 просмотров)
Тип файла: jpg план.jpg (25.2 Кб, 135 просмотров)

Последний раз редактировалось kyrus; 15.01.2012 в 16:37. Причина: некорректная картинка
kyrus вне форума Ответить с цитированием
Старый 15.01.2012, 17:57   #2
DV68
Форумчанин
 
Регистрация: 05.08.2009
Сообщений: 465
По умолчанию

Для формулистов:
есть протягиваемая формула (не массивная) на 175 знаков
А1 год
А2 месяц
остальное по условию
"Все следует делать настолько простым, насколько это возможно, но не проще." Альберт Эйнштейн

Последний раз редактировалось DV68; 15.01.2012 в 18:26.
DV68 вне форума Ответить с цитированием
Старый 15.01.2012, 19:37   #3
MCH
Форумчанин
 
Регистрация: 21.11.2010
Сообщений: 326
По умолчанию

Цитата:
Сообщение от DV68 Посмотреть сообщение
Для формулистов:
есть протягиваемая формула (не массивная) на 175 знаков
А1 год
А2 месяц

Ввожу в ячейку год, 2012, а также (B4) план на месяц, допустим 31 000.

Должно появится в:
F4 - 1000
J4, N4, R4, V4 - 7000
Z4 - 2000
У меня 142 получилось

Последний раз редактировалось MCH; 15.01.2012 в 20:35.
MCH вне форума Ответить с цитированием
Старый 15.01.2012, 22:12   #4
kyrus
Пользователь
 
Регистрация: 15.01.2012
Сообщений: 14
По умолчанию

Цитата:
Сообщение от MCH Посмотреть сообщение
У меня 142 получилось
это в долларах?

Как проблему-то решить?
kyrus вне форума Ответить с цитированием
Старый 15.01.2012, 23:02   #5
MCH
Форумчанин
 
Регистрация: 21.11.2010
Сообщений: 326
По умолчанию

Если ТС настаивает, то выкладываю решение (141)
Вложения
Тип файла: rar Дата DV.rar (2.0 Кб, 33 просмотров)
MCH вне форума Ответить с цитированием
Старый 15.01.2012, 23:20   #6
MCH
Форумчанин
 
Регистрация: 21.11.2010
Сообщений: 326
По умолчанию

Цитата:
Сообщение от kyrus Посмотреть сообщение
это в долларах?
от пары "Гамельтонов" не отказался бы
MCH вне форума Ответить с цитированием
Старый 16.01.2012, 03:00   #7
kyrus
Пользователь
 
Регистрация: 15.01.2012
Сообщений: 14
По умолчанию

Цитата:
Сообщение от MCH Посмотреть сообщение
Если ТС настаивает, то выкладываю решение (141)
у меня вопросы по данной формуле:

1) Почему у weekday формат 3, ведь у нас принято, что понедельник - начало. И что 3 обозначает?
2) Не понимаю математики выражения COLUMN()/4*7-10,5
номер текущей колонки делим на 4, умножаем на 7, вычитаем 10,5.
Для чего? Если для подстройки под конкретный адрес ячейки - то адрес необязателен. (видимо неправильно объяснил сначала - это чисто для примера было). Формула может стоять в любой ячейке.
3) Зачем в конце =$A2&"."&$A1)
4) Зачем 1 делить на все эти данные?

ps: У меня во всех ячейка, помеченных жёлтым, нули.
pps: 3 часа перевариваю формулу, не понимаю...
ppps: торкнуло, что может через shift+ctrl+enter вводить желтые - фиг. Везде 7000.
COUNT(1/(TEXT(DATE($A1;$A2;{1;2;3;4;5;6;7})-WEEKDAY(DATE($A1;$A2;1);3)+COLUMN()/4*7-10,5;"М.ГГГГ")=$A2&"."&$A1)) считаю количество получившихся чисел, игнорирую не числа, проверяю на ложь
1/(TEXT(DATE($A1;$A2;{1;2;3;4;5;6;7})-WEEKDAY(DATE($A1;$A2;1);3)+COLUMN()/4*7-10,5;"М.ГГГГ")=$A2&"."&$A1)) ?
TEXT(DATE($A1;$A2;{1;2;3;4;5;6;7})-WEEKDAY(DATE($A1;$A2;1);3)+COLUMN()/4*7-10,5;"M.YYYY")=$A2&"."&$A1) преобразую числа в текст формата M.YYYY, проверяю на ложь
` преобразую даты в матрицу чисел [40909 40910 40911 40912 40913 40914 40915]
40909 40910 40911 40912 40913 40914 40915
DATE($A1;$A2;{1;2;3;4;5;6;7})-WEEKDAY(DATE($A1;$A2;1);3)+COLUMN()/4*7-10,5 и почему в формате 3 40913,5 40916,25 40919 40921,75 40924,5 40927,25 40930
40976,5 41028,25 41080 41131,75 41183,5 41235,25 40930

мозг не может мой осилить, 5 часов уже не сплю...

Последний раз редактировалось kyrus; 16.01.2012 в 05:10. Причина: уточнение
kyrus вне форума Ответить с цитированием
Старый 16.01.2012, 04:14   #8
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Шаг навстречу

У меня есть элементарный "гаджет" по подсчёту воскресений в текущем (2012) году.

Можно его расширить и до ответа на ваш вопрос... но вроде как заход вообще не оттуда нужен — а просто работать с определённой неделей как-то.
Вложения
Тип файла: doc Подсчёт_воскресений_в_текущем году.doc (31.5 Кб, 31 просмотров)
Sasha_Smirnov вне форума Ответить с цитированием
Старый 16.01.2012, 05:06   #9
kyrus
Пользователь
 
Регистрация: 15.01.2012
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
У меня есть элементарный "гаджет" по подсчёту воскресений в текущем (2012) году.

Можно его расширить и до ответа на ваш вопрос... но вроде как заход вообще не оттуда нужен — а просто работать с определённой неделей как-то.
Спасибо, но у меня не работает он под либрой. Да и надо формулой (ми)
kyrus вне форума Ответить с цитированием
Старый 16.01.2012, 06:13   #10
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Прелести Linux

Ах да! Вот те и фунт изюму!
Цитата:
Сообщение от kyrus Посмотреть сообщение
Желательно без VBA (linux, libreoffice).
Sasha_Smirnov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
количество дней в месяце (январь-31) ramzan_s Microsoft Office Excel 4 29.06.2011 16:00
Посчитать количество слов OPEJI Паскаль, Turbo Pascal, PascalABC.NET 5 19.05.2011 17:58
количество рабочих дней в месяце. RKS Общие вопросы Delphi 6 30.10.2010 08:00
Узнать количество недель EugeneIsmatulin Общие вопросы Delphi 3 25.05.2009 09:32
Количество дней в месяце по диапазону дат VadimSh Microsoft Office Excel 6 26.11.2008 23:48