Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/СУММПРОИЗВ с вложенными формулами неправильно работает! - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » СУММПРОИЗВ с вложенными формулами неправильно работает! (Формулы/Formulas)
СУММПРОИЗВ с вложенными формулами неправильно работает!
Serrg Дата: Четверг, 14.08.2014, 18:49 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Подскажите, пожалуйста, возникают очень большие странности с функцией СУММПРОИЗВ и вложенной в нее МАКС и ОСТАТ:
возникает вообще бред: одна и та же формула, записанная в разных ячейках, дает разный результат! Как такое вообще может быть?
Использую вот такую формулу (в столбце F):
=СУММПРОИЗВ(МАКС($B$5:$B$14*(ОСТАТ($C$5:$C$14;3)=1)))
Она то и работает неправильно

При просмотре как вычисляется формула, обнаруживается что почему-то в ОСТАТ не берется диапазон, а берется одна текущая ячейка. Тем не менее при расчете не МАКС, а просто суммы, все считается корректно, ОСТАТ берет именно диапазон а не текущую ячейку.
Т.е. СУММПРОИЗВ не может использовать вложенные буквенные формулы? Что делать, чем пользоваться?

Прикладываю Excel, в котором все это видно.

Что самое интересное - если нажать F9 (принудительный расчет), то результат считается правильно. Может какие-то настройки Excel?
К сообщению приложен файл: 6289476.xls (40.0 Kb)


Сообщение отредактировал Serrg - Четверг, 14.08.2014, 18:52
 
Ответить
СообщениеДобрый день.
Подскажите, пожалуйста, возникают очень большие странности с функцией СУММПРОИЗВ и вложенной в нее МАКС и ОСТАТ:
возникает вообще бред: одна и та же формула, записанная в разных ячейках, дает разный результат! Как такое вообще может быть?
Использую вот такую формулу (в столбце F):
=СУММПРОИЗВ(МАКС($B$5:$B$14*(ОСТАТ($C$5:$C$14;3)=1)))
Она то и работает неправильно

При просмотре как вычисляется формула, обнаруживается что почему-то в ОСТАТ не берется диапазон, а берется одна текущая ячейка. Тем не менее при расчете не МАКС, а просто суммы, все считается корректно, ОСТАТ берет именно диапазон а не текущую ячейку.
Т.е. СУММПРОИЗВ не может использовать вложенные буквенные формулы? Что делать, чем пользоваться?

Прикладываю Excel, в котором все это видно.

Что самое интересное - если нажать F9 (принудительный расчет), то результат считается правильно. Может какие-то настройки Excel?

Автор - Serrg
Дата добавления - 14.08.2014 в 18:49
Pelena Дата: Четверг, 14.08.2014, 18:58 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19187
Репутация: 4421 ±
Замечаний: ±

Excel 365 & Mac Excel
Здравствуйте
1) Чтобы ввести формулу массива, поставьте курсор в строку формул и нажмите сочетание клавиш Ctrl+Shift+Enter
2) на мой взгляд, нет смысла в функции СУММПРОИЗВ, так как МАКС не возвращает массив, а только одно значение. Что Вы хотите посчитать этой формулой?


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗдравствуйте
1) Чтобы ввести формулу массива, поставьте курсор в строку формул и нажмите сочетание клавиш Ctrl+Shift+Enter
2) на мой взгляд, нет смысла в функции СУММПРОИЗВ, так как МАКС не возвращает массив, а только одно значение. Что Вы хотите посчитать этой формулой?

Автор - Pelena
Дата добавления - 14.08.2014 в 18:58
Serrg Дата: Четверг, 14.08.2014, 19:04 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Чтобы ввести формулу массива, поставьте курсор в строку формул и нажмите сочетание клавиш Ctrl+Shift+Enter

Да это я все знаю. Я как раз в файле и привел пример - что по формуле массива МАКС работает корректно.
Но почему некорректно работает СУММПРОИЗВ?
Тут какой-то очень тонкий нюанс, я подозреваю насчет 2-го уровня вложенности буквенных формул.
Посмотрите сами столбец F и столбец H. Формулы абсолютно одинаковы, только в одном СУММПРОИЗВ, а в другом - формула массива для МАКС.

Я естественно знаю что МАКС мне вернет одно значение - оно мне и нужно.

Ведь все нормально считается МАКС с помощью СУММПРОИЗВ, когда нет 2-х уровней вложенности. Но почему тут возникла такая проблема.

Посмотрите внимательнее - абсолютна одна и та же формула, введенная в разные ячейки, дает разный результат. Это просто уму непостижимо!! как такое может быть?
 
Ответить
Сообщение
Чтобы ввести формулу массива, поставьте курсор в строку формул и нажмите сочетание клавиш Ctrl+Shift+Enter

Да это я все знаю. Я как раз в файле и привел пример - что по формуле массива МАКС работает корректно.
Но почему некорректно работает СУММПРОИЗВ?
Тут какой-то очень тонкий нюанс, я подозреваю насчет 2-го уровня вложенности буквенных формул.
Посмотрите сами столбец F и столбец H. Формулы абсолютно одинаковы, только в одном СУММПРОИЗВ, а в другом - формула массива для МАКС.

Я естественно знаю что МАКС мне вернет одно значение - оно мне и нужно.

Ведь все нормально считается МАКС с помощью СУММПРОИЗВ, когда нет 2-х уровней вложенности. Но почему тут возникла такая проблема.

Посмотрите внимательнее - абсолютна одна и та же формула, введенная в разные ячейки, дает разный результат. Это просто уму непостижимо!! как такое может быть?

Автор - Serrg
Дата добавления - 14.08.2014 в 19:04
Pelena Дата: Четверг, 14.08.2014, 19:09 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19187
Репутация: 4421 ±
Замечаний: ±

Excel 365 & Mac Excel
Не, тут дело не в уровнях вложенности, а в этом фрагменте
Код
ОСТАТ($C$5:$C$14;3)=1

Эта часть правильно сработает только в формуле массива


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеНе, тут дело не в уровнях вложенности, а в этом фрагменте
Код
ОСТАТ($C$5:$C$14;3)=1

Эта часть правильно сработает только в формуле массива

Автор - Pelena
Дата добавления - 14.08.2014 в 19:09
ikki Дата: Четверг, 14.08.2014, 19:12 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
прежде, чем кричать "абсурд" и "мы фсе умрём", неплохо бы вдуматьсяв то, что Вам отвечают.
Ваши формулы в столбце F, будучи введёнными как формула массива, дают тот же результат, что и в G.
К сообщению приложен файл: 9600629.xls (39.0 Kb)


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениепрежде, чем кричать "абсурд" и "мы фсе умрём", неплохо бы вдуматьсяв то, что Вам отвечают.
Ваши формулы в столбце F, будучи введёнными как формула массива, дают тот же результат, что и в G.

Автор - ikki
Дата добавления - 14.08.2014 в 19:12
Serrg Дата: Четверг, 14.08.2014, 19:23 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Ваши формулы в столбце F, будучи введёнными как формула массива, дают тот же результат, что и в G.

Это я знаю, пробовал - все работает. Интересует другое - почему СУММПРОИЗВ не воспринимает ОСТАТ как массив?

Эта часть правильно сработает только в формуле массива

А почему тогда эта же часть работает абсолютно корректно (как массив) в формуле для СУММПРОИЗВ в столбце J, где я считаю просто сумму а не МАКС?
Согласны? ведь работает же корректно?
Значит не все так просто, порядок расчета ОСТАТ зависит от того, что в формуле перед ним стоит МАКС.

Тогда как определить логику, в каких формулах для СУММПРОИЗВ корректно сработает ОСТАТ, а в каких - нет?
 
Ответить
Сообщение
Ваши формулы в столбце F, будучи введёнными как формула массива, дают тот же результат, что и в G.

Это я знаю, пробовал - все работает. Интересует другое - почему СУММПРОИЗВ не воспринимает ОСТАТ как массив?

Эта часть правильно сработает только в формуле массива

А почему тогда эта же часть работает абсолютно корректно (как массив) в формуле для СУММПРОИЗВ в столбце J, где я считаю просто сумму а не МАКС?
Согласны? ведь работает же корректно?
Значит не все так просто, порядок расчета ОСТАТ зависит от того, что в формуле перед ним стоит МАКС.

Тогда как определить логику, в каких формулах для СУММПРОИЗВ корректно сработает ОСТАТ, а в каких - нет?

Автор - Serrg
Дата добавления - 14.08.2014 в 19:23
Serrg Дата: Четверг, 14.08.2014, 19:26 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Ну т.е. смотрите, переформулирую вопрос так:
Почему эта формула работает корректно, когда НЕ введена как массив ({}):
=СУММПРОИЗВ($B$5:$B$14*(ОСТАТ($C$5:$C$14;3)=1))

А вот эта формула уже не работает без массива:
=СУММПРОИЗВ(МАКС($B$5:$B$14*(ОСТАТ($C$5:$C$14;3)=1)))

В чем их принципиальное отличие?


Сообщение отредактировал Serrg - Четверг, 14.08.2014, 19:27
 
Ответить
СообщениеНу т.е. смотрите, переформулирую вопрос так:
Почему эта формула работает корректно, когда НЕ введена как массив ({}):
=СУММПРОИЗВ($B$5:$B$14*(ОСТАТ($C$5:$C$14;3)=1))

А вот эта формула уже не работает без массива:
=СУММПРОИЗВ(МАКС($B$5:$B$14*(ОСТАТ($C$5:$C$14;3)=1)))

В чем их принципиальное отличие?

Автор - Serrg
Дата добавления - 14.08.2014 в 19:26
Pelena Дата: Четверг, 14.08.2014, 19:32 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 19187
Репутация: 4421 ±
Замечаний: ±

Excel 365 & Mac Excel
Вот эта часть
Код
$B$5:$B$14*(ОСТАТ($C$5:$C$14;3)=1)

и в том, и в другом случае даёт массив {0;0;3;0;0;6;0;0;9;0}
Функция СУММПРОИЗВ() может с этим массивом работать, а функция МАКС - только, если ввести формулу как формулу массива.
У Вас же в столбце Н формула
Код
=МАКС($B$5:$B$14*(ОСТАТ($C$5:$C$14;3)=1))

не работает без массивного ввода


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеВот эта часть
Код
$B$5:$B$14*(ОСТАТ($C$5:$C$14;3)=1)

и в том, и в другом случае даёт массив {0;0;3;0;0;6;0;0;9;0}
Функция СУММПРОИЗВ() может с этим массивом работать, а функция МАКС - только, если ввести формулу как формулу массива.
У Вас же в столбце Н формула
Код
=МАКС($B$5:$B$14*(ОСТАТ($C$5:$C$14;3)=1))

не работает без массивного ввода

Автор - Pelena
Дата добавления - 14.08.2014 в 19:32
_Boroda_ Дата: Четверг, 14.08.2014, 19:35 | Сообщение № 9
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Смотрите:
1. кусок $B$5:$B$14*(ОСТАТ($C$5:$C$14;3)=1) дает нам массив
2. с помощью СУММПРОИЗВ мы складываем КАЖДЫЙ элемент этого массива, получаем сумму
2а. с помощью МАКС (при массивном вводе) мы выбираем ОДНО значение массива (максимальное). И как потом его не складывай, все равно получится только оно. Поэтому СУММПРОИЗВ тут избыточна (но и не мешает).


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеСмотрите:
1. кусок $B$5:$B$14*(ОСТАТ($C$5:$C$14;3)=1) дает нам массив
2. с помощью СУММПРОИЗВ мы складываем КАЖДЫЙ элемент этого массива, получаем сумму
2а. с помощью МАКС (при массивном вводе) мы выбираем ОДНО значение массива (максимальное). И как потом его не складывай, все равно получится только оно. Поэтому СУММПРОИЗВ тут избыточна (но и не мешает).

Автор - _Boroda_
Дата добавления - 14.08.2014 в 19:35
Serrg Дата: Четверг, 14.08.2014, 19:37 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
и в том, и в другом случае даёт массив {0;0;3;0;0;6;0;0;9;0}
Функция СУММПРОИЗВ() может с этим массивом работать, а функция МАКС - только, если ввести формулу как формулу массива.
У Вас же в столбце Н формула


На самом деле МАКС работает нормально с массивами, когда она под СУММПРОИЗВ, без формул массива.

Тогда посмотрите столбец G. Формула записана в виде:
=СУММПРОИЗВ(МАКС($B$5:$B$14*($E$5:$E$14)))
без всяких формул массива.
И в ней функция МАКС принимает на вход тот же самый массив {0;0;3;0;0;6;0;0;9;0}
И все работает без формул массива. Но тут отличие в том что массив был вычислен по отдельному столбцу.


Сообщение отредактировал Serrg - Четверг, 14.08.2014, 19:39
 
Ответить
Сообщение
и в том, и в другом случае даёт массив {0;0;3;0;0;6;0;0;9;0}
Функция СУММПРОИЗВ() может с этим массивом работать, а функция МАКС - только, если ввести формулу как формулу массива.
У Вас же в столбце Н формула


На самом деле МАКС работает нормально с массивами, когда она под СУММПРОИЗВ, без формул массива.

Тогда посмотрите столбец G. Формула записана в виде:
=СУММПРОИЗВ(МАКС($B$5:$B$14*($E$5:$E$14)))
без всяких формул массива.
И в ней функция МАКС принимает на вход тот же самый массив {0;0;3;0;0;6;0;0;9;0}
И все работает без формул массива. Но тут отличие в том что массив был вычислен по отдельному столбцу.

Автор - Serrg
Дата добавления - 14.08.2014 в 19:37
Serrg Дата: Четверг, 14.08.2014, 19:43 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
кусок $B$5:$B$14*(ОСТАТ($C$5:$C$14;3)=1) дает нам массив

Да вот нет к сожалению, часть (ОСТАТ($C$5:$C$14;3)=1) не дает массив, она вычисляет не диапазон, а текущую ячейку.

Тогда как вы объясните что в разных ячейках одна и та же формула дает разный результат?
Как???
Потому что из вашей логики она бы давала один и тот же результат в каждой ячейке.
Посмотрите столбец F - одна и та же формула в разных ячейках дает разный результат.
 
Ответить
Сообщение
кусок $B$5:$B$14*(ОСТАТ($C$5:$C$14;3)=1) дает нам массив

Да вот нет к сожалению, часть (ОСТАТ($C$5:$C$14;3)=1) не дает массив, она вычисляет не диапазон, а текущую ячейку.

Тогда как вы объясните что в разных ячейках одна и та же формула дает разный результат?
Как???
Потому что из вашей логики она бы давала один и тот же результат в каждой ячейке.
Посмотрите столбец F - одна и та же формула в разных ячейках дает разный результат.

Автор - Serrg
Дата добавления - 14.08.2014 в 19:43
_Boroda_ Дата: Четверг, 14.08.2014, 19:46 | Сообщение № 12
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Давайте еще раз: МАКС с массивом работает нормально, а вот МАКС в сочетании с ОСТАТ (как и с большинством остальных функций, например, с ЕСЛИ) с массивом без массивного ввода НЕ РАБОТАЕТ!


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеДавайте еще раз: МАКС с массивом работает нормально, а вот МАКС в сочетании с ОСТАТ (как и с большинством остальных функций, например, с ЕСЛИ) с массивом без массивного ввода НЕ РАБОТАЕТ!

Автор - _Boroda_
Дата добавления - 14.08.2014 в 19:46
_Boroda_ Дата: Четверг, 14.08.2014, 19:48 | Сообщение № 13
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Да вот нет к сожалению, часть (ОСТАТ($C$5:$C$14;3)=1) не дает массив

Да вот да, к счастью. Выделите этот кусок в строке формул и нажмите клавишу F9 - Вы увидите массив


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Да вот нет к сожалению, часть (ОСТАТ($C$5:$C$14;3)=1) не дает массив

Да вот да, к счастью. Выделите этот кусок в строке формул и нажмите клавишу F9 - Вы увидите массив

Автор - _Boroda_
Дата добавления - 14.08.2014 в 19:48
Serrg Дата: Четверг, 14.08.2014, 19:51 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
а вот МАКС в сочетании с ОСТАТ (как и с большинством остальных функций, например, с ЕСЛИ) с массивом без массивного ввода НЕ РАБОТАЕТ!

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

Тогда так сформулировать вопрос - какие функции не могут работать с другими, а с какими могут? Как составить такое соответствие и на чем оно будет основано?
Например я выяснил что не только МАКС не работает с вложенными функциями, но и СУММ и МИН.
Может и какие-то другие есть.
Но только как определить что и с чем сочетается? Потому что можно написать много функций, а потом выяснить, что оказывается что-то с чем-то не сочетается. Причем Excel-то никакую ошибку не показывает, просто цифра неправильная и все. А это только вручную проверять на калькуляторе.
 
Ответить
Сообщение
а вот МАКС в сочетании с ОСТАТ (как и с большинством остальных функций, например, с ЕСЛИ) с массивом без массивного ввода НЕ РАБОТАЕТ!

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

Тогда так сформулировать вопрос - какие функции не могут работать с другими, а с какими могут? Как составить такое соответствие и на чем оно будет основано?
Например я выяснил что не только МАКС не работает с вложенными функциями, но и СУММ и МИН.
Может и какие-то другие есть.
Но только как определить что и с чем сочетается? Потому что можно написать много функций, а потом выяснить, что оказывается что-то с чем-то не сочетается. Причем Excel-то никакую ошибку не показывает, просто цифра неправильная и все. А это только вручную проверять на калькуляторе.

Автор - Serrg
Дата добавления - 14.08.2014 в 19:51
Serrg Дата: Четверг, 14.08.2014, 19:54 | Сообщение № 15
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Выделите этот кусок в строке формул и нажмите клавишу F9 - Вы увидите массив

А вот если нажать "вычислить формулу" и посмотреть этапы вычисления, то можно увидеть, что при вычислении ОСТАТ($C$5:$C$14;3) по непонятной причине подставляется не указанный диапазон, а только текущая ячейка, соответствующая той строке, в которой мы находимся.

Так что в этом-то и проблема - что в сочетании с МАКС формула ОСТАТ не генерирует массив, а Excel зачем-то подставляет только одну текущую ячейку. Бред!
 
Ответить
Сообщение
Выделите этот кусок в строке формул и нажмите клавишу F9 - Вы увидите массив

А вот если нажать "вычислить формулу" и посмотреть этапы вычисления, то можно увидеть, что при вычислении ОСТАТ($C$5:$C$14;3) по непонятной причине подставляется не указанный диапазон, а только текущая ячейка, соответствующая той строке, в которой мы находимся.

Так что в этом-то и проблема - что в сочетании с МАКС формула ОСТАТ не генерирует массив, а Excel зачем-то подставляет только одну текущую ячейку. Бред!

Автор - Serrg
Дата добавления - 14.08.2014 в 19:54
Serrg Дата: Четверг, 14.08.2014, 19:57 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Да и вообще, как объяснить, когда нажимаешь F9 в ячейке, результат оказывается правильный.
А если не нажимать F9, то результат неправильный
 
Ответить
СообщениеДа и вообще, как объяснить, когда нажимаешь F9 в ячейке, результат оказывается правильный.
А если не нажимать F9, то результат неправильный

Автор - Serrg
Дата добавления - 14.08.2014 в 19:57
Мир MS Excel » Вопросы и решения » Вопросы по Excel » СУММПРОИЗВ с вложенными формулами неправильно работает! (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!