Страницы: 1
RSS
как получить сумму от деления одного массива на другой?
 
Имеется два столбца с данными. В одном продажи по дням в рублях, во втором курс доллара, установленный на эти дни соответственно. Задача - получить в отдельной ячейке средневзвешенный курс доллара, который расчитывается по следующей логике =(сумма продаж за период в рублях)/(сумма продаж за этот же период в долларах).    
Вариант с добавлением третьего столбца в котором бы расчитывались продажи по дням в долларах (руб/курс) не подходит!  
Подскажите, пожалуйста, как можно одной формулой получить сумму продаж в долларах за период? Есть ли функция типа СУММПРОИЗВ, которая бы находила сумму НЕ произведений, а частного от деления ячеек первого столбца на ячейки второго?
 
Пример лень выложить..?
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
=СУММПРОИЗВ(1/диапазон1;диапазон2)
 
=СУММ(A1:A10)/СУММ(B1:B10)
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
{quote}{login=Владимир}{date=29.07.2011 03:36}{thema=}{post}=СУММ(A1:A10)/СУММ(B1:B10){/post}{/quote}  
 
Сумма произведений совсем не то, что произведение сумм :)
 
<< =(сумма продаж за период в рублях)/(сумма продаж за этот же период в долларах)>>  
 
....??????
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Что то вы ребята не туда полезли. Может таки так?:  
=СУММПРОИЗВ(диапазон1/диапазон2)
 
=СУММПРОИЗВ(диапазон_курсы*диапазон_рубли/СУММ(диапазон_рубли))
 
{quote}{login=}{date=29.07.2011 03:45}{thema=}{post}Что то вы ребята не туда полезли. Может таки так?:  
=СУММПРОИЗВ(диапазон1/диапазон2){/post}{/quote}  
А я о чем? Это уже автору решать, какой из диапазонов куда поставить :)
 
или так:  
=СУММ(диапазон_рубли)/СУММПРОИЗВ(диапазон_рубли/диапазон_курсы)
 
.
 
{quote}{login=vikttur}{date=29.07.2011 03:34}{thema=}{post}=СУММПРОИЗВ(1/диапазон1;диапазон2){/post}{/quote}  
 
Точно! Самое смешное, что я именно так сначала и сделал, но получил ошибку, подумал что так нельзя и стал ломать голову, как сделать иначе ))) Оказывается ошибка была из-за того, что диапазоны содержат пустые ячейки! Теперь буду думать, как обойти пустые ячейки и вероятно "1/диапазон1" будет выдавать ошибку, если он будет содержать 0!
 
Как бы должно работать:  
СУММПРОИЗВ(диапазон1;ЕСЛИ(диапазон2;1/диапазон2;))
 
{quote}{login=vikttur}{date=29.07.2011 03:55}{thema=}{post}Как бы должно работать:  
СУММПРОИЗВ(диапазон1;ЕСЛИ(диапазон2;1/диапазон2;)){/post}{/quote}маленькая ошибка, последние ";" не нужны:  
СУММПРОИЗВ(диапазон1;ЕСЛИ(диапазон2;1/диапазон2))  
или  
СУММПРОИЗВ(диапазон1;ЕСЛИ(диапазон2;1/диапазон2;""))
 
{quote}{login=vikttur}{date=29.07.2011 03:55}{thema=}{post}Как бы должно работать:  
СУММПРОИЗВ(диапазон1;ЕСЛИ(диапазон2;1/диапазон2;)){/post}{/quote}  
будет работать, если ввести ее как формулу массива, а в таком случае СУММПРОИЗВ не нужна, можно заменить на СУММ:  
=СУММ(диапазон1*ЕСЛИ(диапазон2;1/диапазон2))  
 
ЗЫ: данная формула подсчитает сумму валюты, а в итоге вроде требовалось - "получить в отдельной ячейке средневзвешенный курс доллара"
 
{quote}{login=MCH}{date=29.07.2011 04:18}{thema=Re: }{post}{quote}{login=vikttur}{date=29.07.2011 03:55}{thema=}{post}Как бы должно работать:  
СУММПРОИЗВ(диапазон1;ЕСЛИ(диапазон2;1/диапазон2;)){/post}{/quote}  
будет работать, если ввести ее как формулу массива, а в таком случае СУММПРОИЗВ не нужна, можно заменить на СУММ:  
=СУММ(диапазон1*ЕСЛИ(диапазон2;1/диапазон2))  
 
ЗЫ: данная формула подсчитает сумму валюты, а в итоге вроде требовалось - "получить в отдельной ячейке средневзвешенный курс доллара"{/post}{/quote}  
 
Видимо надо ограничивать диапазон2 с курсом доллара таким образом, чтобы в нём не было пустот. Т.е. расчитывать средний курс, беря диапазон по текущий день.  
В прикреплённом файле попробовал реализовать выше предложенные формулы (за основу взят пример от МСН).
 
Вариант (формула массива):  
=СУММ(B2:B22)/СУММ(ЕСЛИ(C2:C22;B2:B22/C2:C22))
 
или так  
=СУММ(B2:B22)/СУММ(B2:B22/ЕСЛИ(C2:C22;C2:C22;1))  
тоже массив
 
{quote}{login=MCH}{date=29.07.2011 04:57}{thema=}{post}Вариант (формула массива):  
=СУММ(B2:B22)/СУММ(ЕСЛИ(C2:C22;B2:B22/C2:C22)){/post}{/quote}  
 
Супер! Работает! Спасибо огромное МСН, Михаилу С. и vikttur!  
 
Не сочтите за наглость, но хочется понять как работает ЕСЛИ(C2:C22;B2:B22/C2:C22) в формуле массива? Подскажите, пожалуйста, или направьте к источнику информации. Если я не понимаю как работает формула, то не смогу применять её в других задачах, и соответственно буду засорять форум очередными глупыми вопросами :)
 
"хочется понять как работает ЕСЛИ(C2:C22;B2:B22/C2:C22) в формуле массива"  
Это сокращенная формула, правилнее было бы написать:  
ЕСЛИ(C2:C22<>0;B2:B22/C2:C22;0)  
но допустимо и первый вариант.  
 
Фактически работает так:  
если ячейки C2:C22 не равны нулю (а любое числовое значение отличное от нуля в функции ЕСЛИ является ИСТИНА, поэтому можно и не писать <>0), то нужно поделить ячейки B2:B22 на C2:C22 иначе подставить 0 (выражение ";0" можно в данном случае опустить, соответственно будет подставлятся вместо нуля - ЛОЖЬ).  
т.к. формула вводится как формула массива, то сравнение с нулем и деление рублей на курс происходит построчно, после чего полученные значения деления складываются в функции СУММ (в функции СУММ ЛОЖЬ воспринимается как 0)
 
Не надо вводить как формулу массива):  
=СУММ(B2:B22)/СУММПРОИЗВ(B2:B22;(C2:C22+(C2:C22=""))^-1-(C2:C22=""))
Страницы: 1
Читают тему
Наверх