Страницы: 1
RSS
Почему не работает СУММ(ПРОИЗВЕД())?
 
Файл во вложении.  
Спасибо.  
 
24,5 Кб
 
ну почему не работает.... работает. Просто ПРОИЗВЕД() перемножает ВСЕ множители, и если хоть один равен нулю, то и результат - "0". Сумма нуля тоже равна нулю.
 
Или лыжи не едут...  
 
Произведения массивов дают массив - см. вложение. Если его суммировать - то ноль. Где логика?!  
 
 
11,1 Кб
 
Ну так ПРОИЗВЕД = 1*0*0*4*...
 
Ага, эксперименты? :) Мне нравится...  
Логика в массиве (содержащем нули), подсунутом функции ПРОИЗВЕД()  
Что случилось?! :)
 
Да ничего, в принципе :-)  
Просто пытаюсь понять почему СУММПРОИЗВ <> СУММ(ПРОИЗВ()).  
Хотя по идее должно быть тоже самое...
 
Не, разница таки есть.  
СУММПРОИЗВ() сначала умножает потом суммирует, а СУММ(ПРОИЗВЕД(массив*массив)) сначала умножает, потом опять умножает, а потом уже суммирует...
 
{quote}{login=kim}{date=21.03.2011 12:20}{thema=}{post}СУММ(ПРОИЗВЕД(массив*массив)) сначала умножает, потом опять умножает, а потом уже суммирует...{/post}{/quote}  
А почему умножает дважды?
 
1 раз - массив*массив=перемноженный массив.  
2 раз - ПРОИЗВЕД(перемноженный массив)
 
{quote}{login=kim}{date=21.03.2011 12:26}{thema=}{post}1 раз - массив*массив=перемноженный массив.  
2 раз - ПРОИЗВЕД(перемноженный массив){/post}{/quote}  
Эт я понял :-)  
Вопрос: Почему?  
 
И второй вопрос: Почему СУММПРОИЗВ так себя не ведёт?
 
Кста, придумал формулу для факториала. Массив, аргумент в А1  
 
=ПРОИЗВЕД(СТРОКА($I$2:ИНДЕКС(I:I;A1)))
 
Вот здесь не слишком расширенная информация, но на мой взгляд достаточная:  
http://office.microsoft.com/ru-ru/excel-help/HP010078886.aspx#BMthe_order_in_which_excel_performs_ope
 
{quote}{login=Казанский}{date=21.03.2011 12:35}{thema=}{post}Кста, придумал формулу для факториала. Массив, аргумент в А1  
 
=ПРОИЗВЕД(СТРОКА($I$2:ИНДЕКС(I:I;A1))){/post}{/quote}  
 
Норм.формула, но в отличие от встроенной =ФАКТР(A1) для значений в A1 равных 0 или 1 возвращает для первого случая (0) значение ошибки, а для второго - некорректное значение равное 2 (правильно 1).
 
> а для второго - некорректное значение равное 2 (правильно 1)  
Эт я попытался одно умножение сэкономить :(  
Вот так результат совпадает с ФАКТР (кроме вида ошибки при отрицательных)  
 
=ЕСЛИ(A1;ПРОИЗВЕД(СТРОКА($I$1:ИНДЕКС(I:I;A1)));1)
Страницы: 1
Читают тему
Наверх