Не пойму - то ли заработался, то ли что, но не могу придумать НЕмакросную функцию для простой, на первый взгляд, задачи. Есть 2 столбца: в первом повторяются ключи, во втором повторяются суммы по этим ключам. Как мне посчитать сумму по всем ID? То есть, если бы был промежуточный столбец с суммой по каждой строке, то это была бы сумма по этому столбцу, но его нет. Решение необходимо без фильтрации и доп. столбцов. НЕмассивная формула с функциями рабочего листа. Если обычными функциями никак, то как быстрее макросом? Подозреваю, что это одна из встроенных финансово-аналитических функций, но какая - не знаю
Если бы можно было сделать через дополнительный столбец, то в нём была бы формула =[@[Стоимость по ID]]/СЧЁТЕСЛИ([ID];[@ID]) и сумма по этому столбцу даст такой же результат, как сумма по 2му столбцу.
Среднего столбца из примера в оригинале нет. Сделан, чтобы показать, откуда эти суммы берутся в 3ем столбце.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
vikttur, я не понимаю, как среднего (второго) столбца - его, типа, нет
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Bema, спасибо и вам! Я почти допёр (в шапке) до варианта от V, но не догадался "обернуть" в СУММПРОИЗВ, чтобы избавиться от доп. столбца (хотя очень часто именно СУММПРОИЗВ в этом сильно помогает)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Не загнать в UDF. По-моему, это общая проблема для SUMPRODUCT. Можно ли исправить?
Код
Public Function СуммироватьБезДублей(Где_ищем, Откуда_суммируем)
On Error GoTo er
With Application.WorksheetFunction
СуммироватьБезДублей = .SumProduct(Откуда_суммируем / .CountIf(Где_ищем, Где_ищем))
End With
Exit Function
er: СуммироватьБезДублей = ""
End Function
Модераторам: отдельную тему сделать по этому вопросу или тут можно узнать?
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
vikttur, прошу прощения — оба ваших решения работают (хоть первое - и не с тем столбцом). Тупанул из-за того, что у меня стиль ссылок стоял R1C1, а я скопировал и не поменял… Спасибо вам большое!
хотел использовать не только на листе (да и не столько), но и внутри кода. Пробовал Evaluate, но это не тот случай, похоже, а FormulaArray вроде как не годится для вычислений внутри кода… Смотрел тут и тут.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Function SumID(rID As Range, rPrice As Range) As Double
Dim dSum As Double
Dim sID As String
Dim i As Long
sID = rID(1).Value: dSum = rPrice(1).Value
For i = 1 To rID.Cells.Count
If sID <> rID(i).Value Then sID = rID(i).Value: dSum = dSum + rPrice(i).Value
Next i
SumID = dSum
End Function
vikttur, я хотел бы всё-таки разобраться с СУММПРОИЗВ… Выделю время как-нибудь на этот вопрос спасибо вам за вариант! Он зависит от сортировки, к сожалению, но я напишу свою UDF, если не разберусь с СУММПРОИЗВ
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄