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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2012, 06:36   #11
Snekich
Форумчанин
 
Аватар для Snekich
 
Регистрация: 19.11.2011
Сообщений: 128
По умолчанию

Цитата:
Сообщение от kyrus Посмотреть сообщение

Желательно без VBA (linux, libreoffice).
Год назад сделал универсальный файлик для расчета/проверки полного бухгалтерского учета депозитов с учетом разного рода капитализаций, налога, ставок рефинансирования, изменения сумм, процентных ставок и учета выходных и праздничных дней. И все это исключительно стандартными формулами... сейчас я ЭТО повторить не смогу, да и не за что не буду так извращаться и вам советую...
Нет ничего невозможного, главное верить в это.
Snekich вне форума Ответить с цитированием
Старый 16.01.2012, 07:14   #12
MCH
Форумчанин
 
Регистрация: 21.11.2010
Сообщений: 326
По умолчанию

Цитата:
Сообщение от kyrus Посмотреть сообщение
ps: У меня во всех ячейка, помеченных жёлтым, нули..
попробуйте в формуле
"М.ГГГГ" замените на "m.yyyy"
а "COUNT(1/" на "SUMPRODUCT(--"

=$B4/DAY(DATE($A1;$A2+1;0))*SUMPRODUCT(--(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))
MCH вне форума Ответить с цитированием
Старый 16.01.2012, 08:30   #13
MCH
Форумчанин
 
Регистрация: 21.11.2010
Сообщений: 326
По умолчанию

Если вышеуказанная формула работать не будет (а у меня в MS Excel она работает), то выкладываю еще пару вариантов
Вложения
Тип файла: rar Дата DV2.rar (2.1 Кб, 16 просмотров)
MCH вне форума Ответить с цитированием
Старый 16.01.2012, 08:50   #14
MCH
Форумчанин
 
Регистрация: 21.11.2010
Сообщений: 326
По умолчанию

Цитата:
Сообщение от kyrus Посмотреть сообщение
у меня вопросы по данной формуле:

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

...
Как работает (должна работать) формула:
1) формат 3 в weekday: пн - 0; вт - 1 ... вс - 6
совместно с массивом {1;2;3;4;5;6;7} получаем массив дат с понедельника до воскресенья на текущей неделе

2)COLUMN()/4*7-10,5
преобразует номер столбца F4(6) в 0;
J4(10) в 7 ;N4(14) в 14; R4(18) в 21; V4(22) в 28; Z4(26) в 35
тем самым определяем смещение относительно номера недели
если подстройки под ячейку не нужно, то вынесете в отдельную ячейку порядковый номер недели и ссылайтесь на нее

3. ТЕКСТ(...;"М.ГГГГ") преобразует масив дат в массив {"12.2011";"12.2011";"12.2011";"12. 2011";"12.2011";"12.2011";"1.2012"}
соответственно $A2&"."&$A1 формирует текстовую строку из месяца и года, ноходящихся в ячейках А1 и А2 в виде - "1.2012"
после чего происходит сравнения масиив и текстовой строки и в результате получаем массив {ЛОЖЬ;ЛОЖЬ;ЛОЖЬ;ЛОЖЬ;ЛОЖЬ;ЛОЖЬ;ИСТИ НА}

4) Чтобы посчитать количество ИСТИН (дат текущей недели, которые попадают в указанный месяц) необходимо преобразовать ИСТИНУ в 1 ЛОЖЬ в 0, и затем сложить.
Это можно сделать через COUNT(1/массив) или SUMPRODUCT(--массив)

Надеюсь после объяснения сможете разобратся в формуле и понять, почему она не считает (из-за английской локали, из-за не правильной работы функций дат с массивами или др.).
По крайней мере в русской локали MS Excel формула работает
MCH вне форума Ответить с цитированием
Старый 19.01.2012, 02:54   #15
kyrus
Пользователь
 
Регистрация: 15.01.2012
Сообщений: 14
Хорошо ШИКАРНО!

Цитата:
Сообщение от MCH Посмотреть сообщение
Как работает (должна работать) формула:
1) формат 3 в weekday: пн - 0; вт - 1 ... вс - 6
совместно с массивом {1;2;3;4;5;6;7} получаем массив дат с понедельника до воскресенья на текущей неделе

2)COLUMN()/4*7-10,5
преобразует номер столбца F4(6) в 0;
J4(10) в 7 ;N4(14) в 14; R4(18) в 21; V4(22) в 28; Z4(26) в 35
тем самым определяем смещение относительно номера недели
если подстройки под ячейку не нужно, то вынесете в отдельную ячейку порядковый номер недели и ссылайтесь на нее

3. ТЕКСТ(...;"М.ГГГГ") преобразует масив дат в массив {"12.2011";"12.2011";"12.2011";"12. 2011";"12.2011";"12.2011";"1.2012"}
соответственно $A2&"."&$A1 формирует текстовую строку из месяца и года, ноходящихся в ячейках А1 и А2 в виде - "1.2012"
после чего происходит сравнения масиив и текстовой строки и в результате получаем массив {ЛОЖЬ;ЛОЖЬ;ЛОЖЬ;ЛОЖЬ;ЛОЖЬ;ЛОЖЬ;ИСТИ НА}

4) Чтобы посчитать количество ИСТИН (дат текущей недели, которые попадают в указанный месяц) необходимо преобразовать ИСТИНУ в 1 ЛОЖЬ в 0, и затем сложить.
Это можно сделать через COUNT(1/массив) или SUMPRODUCT(--массив)

Надеюсь после объяснения сможете разобратся в формуле и понять, почему она не считает (из-за английской локали, из-за не правильной работы функций дат с массивами или др.).
По крайней мере в русской локали MS Excel формула работает
Спасибо огромное! С пояснениями допёр (и то еле-еле)!
Для меня каждый пункт был открытием, включая даже тот, как находить общую формулу для кратного числа с привязкой к ячейкам.

С count не работает (пишет 0), с sumproduct работает.
kyrus вне форума Ответить с цитированием
Старый 19.01.2012, 05:15   #16
kyrus
Пользователь
 
Регистрация: 15.01.2012
Сообщений: 14
По умолчанию

Цитата:
Сообщение от MCH Посмотреть сообщение
Если вышеуказанная формула работать не будет (а у меня в MS Excel она работает), то выкладываю еще пару вариантов
Все работает. Подскажи ещё, пожалуйста, формулу. Как мне посчитать количество календарных недель в произвольном месяце года?
kyrus вне форума Ответить с цитированием
Старый 19.01.2012, 06:22   #17
MCH
Форумчанин
 
Регистрация: 21.11.2010
Сообщений: 326
По умолчанию

Цитата:
Сообщение от kyrus Посмотреть сообщение
Все работает. Подскажи ещё, пожалуйста, формулу. Как мне посчитать количество календарных недель в произвольном месяце года?
в A1 - год
в A2 - месяц
Код:
=ОКРУГЛВВЕРХ((ДАТА($A1;$A2+1;1)-ДАТА($A1;$A2;1)+ДЕНЬНЕД(ДАТА($A1;$A2;1);3))/7;0)
=ROUNDUP((DATE($A1;$A2+1;1)-DATE($A1;$A2;1)+WEEKDAY(DATE($A1;$A2;1);3))/7;0)
или
Код:
=-ЦЕЛОЕ((ДАТА($A1;$A2;1)-ДЕНЬНЕД(ДАТА($A1;$A2;1);3)-ДАТА($A1;$A2+1;1))/7)
=-INT((DATE($A1;$A2;1)-WEEKDAY(DATE($A1;$A2;1);3)-DATE($A1;$A2+1;1))/7)
MCH вне форума Ответить с цитированием
Старый 19.01.2012, 12:51   #18
kyrus
Пользователь
 
Регистрация: 15.01.2012
Сообщений: 14
Радость

Цитата:
Сообщение от MCH Посмотреть сообщение
в A1 - год
в A2 - месяц
Код:
=-INT((DATE($A1;$A2;1)-WEEKDAY(DATE($A1;$A2;1);3)-DATE($A1;$A2+1;1))/7)
Спасибо! Куда кинуть гамильтона?
kyrus вне форума Ответить с цитированием
Старый 19.01.2012, 13:33   #19
MCH
Форумчанин
 
Регистрация: 21.11.2010
Сообщений: 326
По умолчанию

Цитата:
Сообщение от kyrus Посмотреть сообщение
Спасибо! Куда кинуть гамильтона?
Можно и бесплатно, Excelем не зарабатываю (не получается),
но если есть непреодалимое желание отблагодарить, то пишите в личку

PS. а DV68 так и не выложил свою формулу за 175 уе.
MCH вне форума Ответить с цитированием
Старый 19.01.2012, 14:30   #20
DV68
Форумчанин
 
Регистрация: 05.08.2009
Сообщений: 465
По умолчанию

А зачем? Мне интересен сам процесс
"Все следует делать настолько простым, насколько это возможно, но не проще." Альберт Эйнштейн
DV68 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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