Страницы: Пред. 1 ... 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 След.
RSS
Избушка формулистов-3, не для вопросов, но для формульных задач
 
Цитата
Владимир написал:
Давайте выкладываться
Владимир, выкладывай, у тебя одна из самых длинных формул
 
Да, пожалуйста.
=МИН(ЕСЛИ((A1<КОНМЕСЯЦА(A1;{-1;0})+СТРОКА(1:7))*(ДЕНЬНЕД(КОНМЕСЯЦА(A1;{-1;0})+СТРОКА(1:7))=4);КОНМЕСЯЦА(A1;{-1;0})+СТРОКА(1:7)))+1
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Цитата
Владимир написал:
Да, пожалуйста.
Владимир, у меня на первой же дате (15.01.17) твоя формула возвращает 02.02.17, а должна 26.01.17
 
Я понял задачу именно так. Если A1 менее даты первого четверга, то дата первого четверга, если нет, то дата первого четверга следующего месяца.
???
<<JayBhagavan написал:
Иначе, если дата меньше даты первого четверга этого месяца, то возвращаем дату первого четверга этого месяца, иначе - дату первого четверга следующего месяца.
>>
Изменено: Владимир - 21.07.2017 14:19:51
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
=МИН(ОКРВВЕРХ(A1+1;ДАТА(ГОД(A1);МЕСЯЦ(A1)+{0;1;1};{1;-6;1})+ОСТАТ(4-ДАТА(ГОД(A1);МЕСЯЦ(A1)+{0;1;1};);7)))
105 символов
Все функции работают в Excel2003
Изменено: АlехМ - 21.07.2017 14:51:30
Алексей М.
 
67:
=1-ГПР(-A1;-ОТБР(ДАТА(ГОД(A1);МЕСЯЦ(A1)+{1;1;0};{2;-5;2})/7)*7-4;1)
Тоже должна работать в любой версии Excel
Изменено: MCH - 22.08.2017 08:15:16
 
Цитата
MCH написал:
68:
Ну вот как теперь с этим жить  :cry:
F1 творит чудеса
 
67: вместо ЦЕЛОЕ - ОТБР
 
Михаил, классное решение.
Я чувствовал, что с ВПР/ГПР можно сделать, но не хватило мозгов.  :sceptic:
Алексей М.
 
Что-то JayBhagavan (Иван) пропал.
Я думал в лоб решать эту задачу. На изящные решения мозгов пока не хватает (надеюсь что только пока).
первый чт. =A1-ДЕНЬ(A1)+7-ДЕНЬНЕД(A1-ДЕНЬ(A1)-5)
послед. чт. =КОНМЕСЯЦА(A2;0)-ОСТАТ(КОНМЕСЯЦА(A2;0)+2;7)
Ну и там их комбинировать. В одну формулу не стал переводить, т.к. вышло бы очень громоздко.
Подозреваю, что у KOLLIAK решение из этой серии.

Сижу, смотрю на формулы MCH, АlехМ, Владимир -- пытаюсь понять как к такому решению пришли...
 
Прошу прощения, формулы у MR AleexM и у MR МСН дают разные результаты
 
Akropochev, Покажите в файле-примере, при каких датах результат не совпадает.
Алексей М.
 
я тоже глянул 25-05-17 не идет. У MCH некорректно (если правильно помню задание)
 
Формулу исправил:
=1-ГПР(-A1;-ОТБР(ДАТА(ГОД(A1);МЕСЯЦ(A1)+{1;1;0};{2;-5;2})/7)*7-4;1)
Изменено: MCH - 22.08.2017 08:14:55
 
Всем привет!

помните тему: Задача по общему количеству коров, какую формулу использовать?
там было написано некоторое количество макросов, а вопрос вообще-то звучал "какую формулу использовать"?
задача провисела на форуме более 3-х месяцев, в период бурного обсуждения насобирала более 50 сообщений. считаю кому было интересно, мог поискать и найти формулу (вот эту):
Код
=ОКРУГЛ(3*(586+102*33^(1/2))^(1/3)*(1/3*((19+3*33^(1/2))^(1/3)+(19-3*33^(1/2))^(1/3)+1))^(ЦЕЛОЕ(A2/2)+1)/((586+102*33^(1/2))^(1/3)*(586+102*33^(1/2))^(1/3)-2*(586+102*33^(1/2))^(1/3)+4);0)*ЕСЛИ(И(ОСТАТ(A2;2)=1;A2<>1);2;1)
или какую-нибудь другую формулу))
как видите, в формуле есть 3 ссылка на ячейку А2, в которую следует писать год, все остальное в формуле это числа, математических операций над ними и несколько простых функций Excel
В прилагаемом файле для наглядности пара десятков первых лет и численность стада коров в эти годы
Повторю на всякий случай условия задачи, которую я решал:
на старте в стаде 1 корова. на первом году жизни она растет, на втором, четвертом, шестом году жизни рожает бычка (которые вообще не интересуют нас по условиям задачи), а на 3-м, 5-м, 7-м году жизни корова рожает корову. Корова живет ровно 7 лет (по истечении 7 лет она помирает). Все рассуждения о стартовой корове применимы ко всем остальным, которыми будет пополняться стадо. Вопрос: сколько коров будет в стаде в любом произвольно взятом году?
Решение появилось потому, что я много раз возвращался к задаче и благодаря случайному знакомству с sokol92 и его знаниям в области математики (он не решал задачу о коровах а ответил в личной переписке на один мой вопрос))
Изменено: Ігор Гончаренко - 18.10.2017 00:05:07
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ау! Вы где, мозголомы? Ладно я ленивый, а остальные? Корову никогда не видели?
 
Математически формулу Игоря можно упростить до такой:
Код
=ОКРУГЛ(0,33622811699494*1,83928675521416^ОТБР(A2/2+1);)*(ОСТАТ(A2;2)+(A2>1))

или
Код
=ОКРУГЛ(0,33622811699494*EXP(0,609377863436006*ОТБР(A2/2+1));)*(ОСТАТ(A2;2)+(A2>1))

как он вычислил данные коэффициенты - не понятно, функция ЛГРФПРИБЛ() находит немного другие величины

Данная задача легко решается динамическим программированием (в т.ч. и формулами), при этом задействуются дополнительные ячейки
Изменено: MCH - 25.10.2017 18:32:11
 
задачу эту я решил, когда заметил закономерность по количеству рождающихся коров:
см. таблицу, я сознательно пропускаю парные годы, когда рождались бычки:
Годч.№Родилось коров
111
321
532
744
957
11613
13724
15844
17981
1910149
и т.д.
а закономерность тут такая - каждое 4-е число есть сумма 3-х передыдущих. очевидно, имеем четко обозначенный ряд
видимо, о числа Фибоначчи слышали и даже знают их многие, а этот ряд известен в математике как числа трибоначчи, но лично я об этом ничего не знал.
так получилось, что вопрорс был задан Sokol92 и он сразу ответил, что это чисда трибоначчи, он это знал!!
Дальше, понятно интернет и числа трибоначчи
и формула для определения энного элемента ряда, она не такая элегантная как формула для чисел Фибоначчи, но зато есть!
я специально не выполнил оперции над числами и оставил как в оригинале в статье с Вики все эти 586, 102, 33 и пр.
в таблицу 2, которая, собственно, рассматриваети уже саму задачу (размер стада в энном году) добавлены строки с парными годами и колонка с размером стада
Годч.№Род.Размер стадаПримечания
1111
221
3212
432
5324
644
7448
857умерла самая первая корова
95714
10613умерла корова, 3-го года рождения
1161326
12724умерли коровы 5-го г.р.
1372448
14844умерли коровы 7-го г.р.
1584488
и тут уже очевидно, что в не парные годы число коров в стаде = Ч.Трибоначчи*2, в парные = Ч.Трибоначчи
осталось только перейти от № года к № числа трибоначчи
в табл.2 видно что 8-й год = 5тр., 9-й = 5тр., 10 = 6тр. и т.д.

как видите, не прошло и трех месяцев с дня публикации, как задача уже была решена)))
Изменено: Ігор Гончаренко - 27.10.2017 14:01:58
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
и снова, здравствуйте!

на форуме уже почти сутки выложена тема:
http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=100867&T...
на мой взгляд она достойна чтобы вытащить ее в избушку, возможно, мне только показалось и меня легко переубедить если выложить решение в теме, особенно если это сделать через 20-30 минут после публикации этого сообщения, или через час, или хотя бы через полдня)))

там много букв в теме попытаюсь обьяснить коротко суть задачи:
1. есть некий перечень обектов, у каждого есть характеризующий его коэффициент
2. есть некий обьем "штучных благ", который нужно распределить между обьектами пропорционально коэффициентам
3. у обьектов есть признак участвует он в распределении благ или нет "Да" / "Нет"
4. и есть колонка, в которой в ручном режиме некоторым обьектам уже распределено некоторое количество благ и они автоматически не участвуют в распределнии остатка благ - они уже получили свое.
собственно задача написана в п.2 распределить блага между обьектами пропорционально коэффициентам с учетом главного условия: блага распределяются поштучно, минимальное количество на обьек  = 3 шт. т.е. нужна формула в колонку Д.

собственно текста уже не намного меньше, чем у автора темы)) но продолжу:
1. речь не идет о решении 1 формулой. речь о том, чтобы решить эту задачу. можно использовать сколько угодно дополнительных ячеек, колонок, строк, листов для решения, стандартно - в цене компактность. хотя... увидеть решение одной формулой было бы очень интересно!
2. что есть решение: решение - это когда у обьекта изменяется статус "Да" / "Нет", или в колонке с ручным распределение вставляются / удаляются значения или изменяется общее количество, которое нужно распределить, - в колонке с автоматическим распределением у определенных огбьектов должно появиться определенное количество распределяемых на него благ.

в файле видно:
лист1
Обьект, Статус, Ручное количество, Автомат. количество
лист2
Обьект, Коэффициент
на информацию о 500 - не обращаем внимания, на колонку 5, где автор вручную решил задачу - тоже не обращаем внимания
задача в колонку 4 написать формулу которая каждому обьекту присвоит какое-то целое число: 0, 3 или больше.
подставим в колонку М вместо 170 500 - получим распреление 500 щт. по обьектам с учетом уже вручную раскиданых 141 шт. в файле
подставим вместо 170 1тыс. - в колонке Д - дожны увидеть как нужно распределить 1000-141 = 859 шт. по обьектам.

всем удачи!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
 Игорь, Вчера несколько раз подступал и понял, что задача описана не полностью,  Коэффициент объекта - это только первенство в очереди, или получение в том числе большего  количества благ. Я о том случае когда надо трем, а есть 12. они все получат по 4 или первый 5, второй 4, а третий свои 3?
Выложил вариант в исходной теме.
Изменено: БМВ - 03.02.2018 14:06:05
По вопросам из тем форума, личку не читаю.
 
Цитата
2. есть некий обьем "штучных благ", который нужно распределить между обьектами пропорционально коэффициентам  
написано: пропорционально коэффициентам
ранги это очень хорошо, но принцип другой. как пропорционально весам, но то что распределяется распределяется ЦЕЛЫМИ частями и минимальное количество 3 шт.
да, в задаче не описан алгоритм, но его нет и у автора темы как решите - так и хорошо. решите только эту задачу вообще
пока не буду рассказывать как это сделал я, возможно у кого-то будут более продуктивные варианты решения (если у кого-то будут)
допустим коэфф. - это сколько автомобилей в среднем продано за несколько последних месяцев
ручное распределение - это кем-то принятое волевое решение - так надо! а все остальное нужно пропорционально раскидать между теми, кто продает согласно статистике! минимальная поставка 3 машины. так можно привязать эту задачу к чему-то осязаемому. хотя, на мой взгляд, абстрактная формулировка - ничем не хуже.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Формулами - не знаю :( . Но есть - макрос.
 
у меня была мысль предложить решить эту задачу и макросами тоже
но не осквернит-ли это "избушку формулистов" если сюда попрут с макросами)))
я лично собираюсь два решения сделать на формулах и макросом (собраться - я собрался, но не сделал еще ни одного)
господа, активнее! вроде интересная задача
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Осквернит ))
 
Цитата
Ігор Гончаренко написал:
вроде интересная задача
А нужно ли при раздвче учитывать коэффиуциенты тех объектов, кторые уже удовлетворены и в раздаче слонов не участвуют?
По вопросам из тем форума, личку не читаю.
 
нет. см. п.4 в описании задачи.
те, у кого статус Нет или уже что-то распределено вручную - не рассматриваются вообще, в этих строках формула автоматического распределения должна писать 0 и это самая простая часть задачи)
Изменено: Ігор Гончаренко - 03.02.2018 22:17:06
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал:
интересная задача
А то ! РАСПРЕДЕЛЕНИЕ БЛАГ !!!  :)
Цитата
Юрий М написал:
Осквернит
(To Юрий М: Ууууу, предатель.)  :)
 
Может быть прикрутить к этой задаче Метод Хэйра-Нимейера
Изменено: MCH - 06.02.2018 10:25:57
 
Цитата
Ігор Гончаренко написал:
но не осквернит-ли это "избушку формулистов" если сюда попрут с макросами)))
Решение на VBA выложил в исходной теме, в избушке не размещаю.
Решение происходит итерациями, поэтому формулами данный алгоритм не реализовать (по крайней мере одной формулой не реализовать)
 
У меня получилось такое решение на VBA ("оскверняющее" Избушку), см. вложение.
Ігор Гончаренко, прошу проверить адекватность решения.
без условия минимального распределения равного трем, можно реализовать формулами достаточно легко, а вот ограничение в 3 единицы необходимо решать итерациями (может и получится сделать формулами)
Изменено: MCH - 07.02.2018 11:35:54
Страницы: Пред. 1 ... 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 След.
Наверх