Новости:

Новая редакция правил форума: 2.4. Если вопрос или ответ содержится во вложенном файле, все-равно кратко описывайте в сообщении вопрос или суть решения. Это необходимо, чтобы тему можно было найти через поиск.

Главное меню

Количество вложений "ЕСЛИ" больше 7

Автор president, 01.09.2012, 17:56

« назад - далее »

president

Уважаемые, помогите пожалуйста, я вроде и с екселем знаком, а вот тут уперся и все тут, читал данный форум, нашел эту тему, приведенные решения для меня не подошли.

Задача: есть последовательность не повторяющихся чисел, необходимо, чтобы в каждой новой строчке сумма этих чисел всегда равнялась заданному числу (эти числа так же могут меняться, т.е. не константа) или максимально приближенно к задаваемому числу, я решил эту задачу не хитрым способом (см.пример), но у ексель кончились вложения равные 64, а мне необходимо существенно больше, так как если установить заданное число равное 1000, то 64 вложений маловато мягко говоря. Пример прикладываю.

ZORRO2005

#1
president,
1. Это я разделил темы. Можно создать свою тему, а не постить в чужую.
2. E64=900. Как вы разберетесь из каких чисел эта сумма?
Яндекс-деньги: 410011658492153

president

1. Прошу прощенья, но видите ли, на всех форумах по разному, кто-то требует не плодить новые темы, вроде как ищите похожие, моя тема вроде по теме :-) ...
2. А мне собственно не важно из каких чисел, важна сумма от текущего числа к предыдущим.


MCH

#3
Цитата: president от 01.09.2012, 17:56
но у ексель кончились вложения равные 64, а мне необходимо существенно больше, так как если установить заданное число равное 1000, то 64 вложений маловато мягко говоря. Пример прикладываю.
кол-во возможных сочетаний для 68 слагаемых - 2^68 (2,95E+20) - это очень большое число, так что суолько бы не было вложений, Вам бы все равно не хватило

1000 из данных чисел можео получить разными способами, например:
=456+389+91+56+7,4166666666664+0,5+0,0833333333327992
=388+254+235+88+35
=254+235+91+88+88+78+67+66+31+2

president

...ну возможно загнул с 1000, хоть 200 или 300... и потом в примере у Вас разные способы, нее мне последовательность нужна, т.е. вот есть текущие число, необходима сумма чисел текущего и предыдущих, последовательно начиная с текущего, равная или максимально приближенная установленному значению, т.е. как бы окно скользящее, а не выборочно суммировать числа из числового ряда для нахождения желаемого числа. У меня же в примере видите, ищется наименьшая разница, по модулю между всеми суммами последовательно, и выявляется максимально приближенное число к установленному.

Задача основная: какое необходимо кол-во чисел, чтоб получить установленное число.

p.s. виноват, возможно задачу изначально неверно поставил.

MCH

Пара вариантов, ЕСЛИ не применялась

president

спасибо большое, это высший пилотаж, для меня точно...

ZORRO2005

Еще пара вариантов во вложении.
Яндекс-деньги: 410011658492153

president

еще раз спасибо, MCH,  ZORRO2005, больше всего подошел 4-й вариант  ZORRO2005, так как ближе всего результат к задаваемому числу, ...но вот, а как узнать кол-во чисел, которые "пришлось" посчитать для получения заданного числа, можно ли в соседнем столбце вывести кол-во просуммированных чисел (ячеек) по расчету 4-го варианта, уважаемого  ZORRO2005 !

MCH


ZORRO2005

Цитата: president от 02.09.2012, 08:07
больше всего подошел 4-й вариант  ZORRO2005, так как ближе всего результат к задаваемому числу
У MCH такой же результат в варианте 2 (формат ячейки другой).
Яндекс-деньги: 410011658492153

president

спасибо огромное, все работает, но вот для проверки необходимо провести обратный расчет, т.е. полученное кол-во ячеек (чисел) просуммировать, чтоб получить сумму чисел равную той сумме которую получили в первом расчете, пример по вар.4: 1.мы рассчитали сумму чисел равную установленному значению, 2. далее мы рассчитали сумму  кол-ва чисел, сейчас необходимо провести проверку, согласно сумме чисел из 2-го расчета мы снова суммируем наш числовой ряд чтоб получить значение из первого расчета.

Прошу меня извинить за мою навязчивость, но вы, уважаемые господа, БОГИ в ексель программировании.
За ранее спасибо!

ZORRO2005

Яндекс-деньги: 410011658492153

MCH

Цитата: ZORRO2005 от 03.09.2012, 15:40
=СУММПРОИЗВ(СМЕЩ(C64;;;-N64))
Сергей, а зачем СУММПРОИЗВ? достаточно ведь просто СУММ
=СУММ(СМЕЩ(C64;;;-N64))

ZORRO2005

#14
Цитата: MCH от 03.09.2012, 15:46
Сергей, а зачем СУММПРОИЗВ? достаточно ведь просто СУММ
Извиняюсь, случай не массивный.
Яндекс-деньги: 410011658492153