|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.01.2012, 16:33 | #1 |
Пользователь
Регистрация: 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). Последний раз редактировалось kyrus; 15.01.2012 в 16:37. Причина: некорректная картинка |
15.01.2012, 17:57 | #2 |
Форумчанин
Регистрация: 05.08.2009
Сообщений: 465
|
Для формулистов:
есть протягиваемая формула (не массивная) на 175 знаков А1 год А2 месяц остальное по условию
"Все следует делать настолько простым, насколько это возможно, но не проще." Альберт Эйнштейн
Последний раз редактировалось DV68; 15.01.2012 в 18:26. |
15.01.2012, 19:37 | #3 |
Форумчанин
Регистрация: 21.11.2010
Сообщений: 326
|
У меня 142 получилось
Последний раз редактировалось MCH; 15.01.2012 в 20:35. |
15.01.2012, 22:12 | #4 |
Пользователь
Регистрация: 15.01.2012
Сообщений: 14
|
|
15.01.2012, 23:02 | #5 |
Форумчанин
Регистрация: 21.11.2010
Сообщений: 326
|
Если ТС настаивает, то выкладываю решение (141)
|
15.01.2012, 23:20 | #6 |
Форумчанин
Регистрация: 21.11.2010
Сообщений: 326
|
|
16.01.2012, 03:00 | #7 |
Пользователь
Регистрация: 15.01.2012
Сообщений: 14
|
у меня вопросы по данной формуле:
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. Причина: уточнение |
16.01.2012, 04:14 | #8 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
Шаг навстречу
У меня есть элементарный "гаджет" по подсчёту воскресений в текущем (2012) году.
Можно его расширить и до ответа на ваш вопрос... но вроде как заход вообще не оттуда нужен — а просто работать с определённой неделей как-то.
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
|
16.01.2012, 05:06 | #9 |
Пользователь
Регистрация: 15.01.2012
Сообщений: 14
|
Спасибо, но у меня не работает он под либрой. Да и надо формулой (ми)
|
16.01.2012, 06:13 | #10 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
Прелести Linux
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
количество дней в месяце (январь-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 |