Средневзвешенное значение с несколькими параметрами
sashhv
Дата: Пятница, 11.12.2015, 13:11 |
Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Добрый день! Необходимо посчитать средневзвешенное значение с несколькими параметрами (файл примера в приложении). В файле приложен пример таблицы из которой нужно сформировать сводную и пример того, что должно получится (способ очень трудоемкий). Просьба помочь в формировании сводной таблицы (если это можно сделать с помощью нее), либо подсказать формулы/алгоритм, которые облегчат решение задачи. Заранее благодарю за ответ.
Добрый день! Необходимо посчитать средневзвешенное значение с несколькими параметрами (файл примера в приложении). В файле приложен пример таблицы из которой нужно сформировать сводную и пример того, что должно получится (способ очень трудоемкий). Просьба помочь в формировании сводной таблицы (если это можно сделать с помощью нее), либо подсказать формулы/алгоритм, которые облегчат решение задачи. Заранее благодарю за ответ. sashhv
К сообщению приложен файл:
_--.xlsx
(17.2 Kb)
Сообщение отредактировал sashhv - Пятница, 11.12.2015, 13:16
Ответить
Сообщение Добрый день! Необходимо посчитать средневзвешенное значение с несколькими параметрами (файл примера в приложении). В файле приложен пример таблицы из которой нужно сформировать сводную и пример того, что должно получится (способ очень трудоемкий). Просьба помочь в формировании сводной таблицы (если это можно сделать с помощью нее), либо подсказать формулы/алгоритм, которые облегчат решение задачи. Заранее благодарю за ответ. Автор - sashhv Дата добавления - 11.12.2015 в 13:11
китин
Дата: Пятница, 11.12.2015, 13:35 |
Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7035
Репутация:
1079
±
Замечаний:
0% ±
Excel 2007;2010;2016
в ячейку L3 Код
=СУММПРОИЗВ($H$3:$H$49*$E$3:$E$49*($A$3:$A$49=$J3)*($K3=$G$3:$G$49))/СУММПРОИЗВ($H$3:$H$49*($A$3:$A$49=$J3)*($K3=$G$3:$G$49))
в ячейку L3 Код
=СУММПРОИЗВ($H$3:$H$49*$E$3:$E$49*($A$3:$A$49=$J3)*($K3=$G$3:$G$49))/СУММПРОИЗВ($H$3:$H$49*($A$3:$A$49=$J3)*($K3=$G$3:$G$49))
китин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
Сообщение отредактировал китин - Пятница, 11.12.2015, 13:36
Ответить
Сообщение в ячейку L3 Код
=СУММПРОИЗВ($H$3:$H$49*$E$3:$E$49*($A$3:$A$49=$J3)*($K3=$G$3:$G$49))/СУММПРОИЗВ($H$3:$H$49*($A$3:$A$49=$J3)*($K3=$G$3:$G$49))
Автор - китин Дата добавления - 11.12.2015 в 13:35
sashhv
Дата: Пятница, 11.12.2015, 13:59 |
Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
китин, поясните, пожалуйста, формулу. Правильно ли я поняла, что массивы с равенством "$A$3:$A$49=$J3" работают как условие?
китин, поясните, пожалуйста, формулу. Правильно ли я поняла, что массивы с равенством "$A$3:$A$49=$J3" работают как условие? sashhv
Ответить
Сообщение китин, поясните, пожалуйста, формулу. Правильно ли я поняла, что массивы с равенством "$A$3:$A$49=$J3" работают как условие? Автор - sashhv Дата добавления - 11.12.2015 в 13:59
YouGreed
Дата: Пятница, 11.12.2015, 14:06 |
Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 589
Репутация:
123
±
Замечаний:
0% ±
Excel 2010
sashhv, Все верно. И формируют массив состоящий из Код
{ЛОЖЬ:ИСТИНА:ЛОЖЬ:.....}
sashhv, Все верно. И формируют массив состоящий из Код
{ЛОЖЬ:ИСТИНА:ЛОЖЬ:.....}
YouGreed
Сообщение отредактировал YouGreed - Пятница, 11.12.2015, 14:06
Ответить
Сообщение sashhv, Все верно. И формируют массив состоящий из Код
{ЛОЖЬ:ИСТИНА:ЛОЖЬ:.....}
Автор - YouGreed Дата добавления - 11.12.2015 в 14:06
Gustav
Дата: Пятница, 11.12.2015, 14:37 |
Сообщение № 5
Группа: Админы
Ранг: Участник клуба
Сообщений: 2843
Репутация:
1194
±
Замечаний:
±
начинал с Excel 4.0, видел 2.1
Решение макросом с запросом SQL. Список используемых уникальных сочетаний "клиент-валюта" формируется автоматически. Результат помещается в диапазон "О3:R...".
[vba]
Код
Sub selectData() Dim cnn As Object Dim rst As Object Dim sql As String Set cnn = CreateObject("ADODB.Connection") Set rst = CreateObject("ADODB.Recordset") cnn.Open _ "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=" & ThisWorkbook.FullName & ";" & _ "Extended Properties='Excel 12.0;HDR=Yes'" 'создаем SQL-запрос sql = sql & "SELECT Клиент, [Валюта договора], " sql = sql & "Round(Sum([Сумма сделки в валюте договора]*[Срочность сделки 1])/Sum([Сумма сделки в валюте договора]),0), " sql = sql & "Round(Sum([Сумма сделки в валюте договора]*[Срочность сделки 2])/Sum([Сумма сделки в валюте договора]),0) " sql = sql & "FROM [пример$A2:H65000] " sql = sql & "GROUP BY Клиент, [Валюта договора]" rst.Open sql, cnn Worksheets("пример").Range("O3:R" & Rows.Count).ClearContents Worksheets("пример").Range("O3").CopyFromRecordset rst rst.Close Set rst = Nothing Set cnn = Nothing End Sub
[/vba]
Решение макросом с запросом SQL. Список используемых уникальных сочетаний "клиент-валюта" формируется автоматически. Результат помещается в диапазон "О3:R...".
[vba]
Код
Sub selectData() Dim cnn As Object Dim rst As Object Dim sql As String Set cnn = CreateObject("ADODB.Connection") Set rst = CreateObject("ADODB.Recordset") cnn.Open _ "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=" & ThisWorkbook.FullName & ";" & _ "Extended Properties='Excel 12.0;HDR=Yes'" 'создаем SQL-запрос sql = sql & "SELECT Клиент, [Валюта договора], " sql = sql & "Round(Sum([Сумма сделки в валюте договора]*[Срочность сделки 1])/Sum([Сумма сделки в валюте договора]),0), " sql = sql & "Round(Sum([Сумма сделки в валюте договора]*[Срочность сделки 2])/Sum([Сумма сделки в валюте договора]),0) " sql = sql & "FROM [пример$A2:H65000] " sql = sql & "GROUP BY Клиент, [Валюта договора]" rst.Open sql, cnn Worksheets("пример").Range("O3:R" & Rows.Count).ClearContents Worksheets("пример").Range("O3").CopyFromRecordset rst rst.Close Set rst = Nothing Set cnn = Nothing End Sub
[/vba]
Gustav
МОИ: Ник , Tip box: 41001663842605
Ответить
Сообщение Решение макросом с запросом SQL. Список используемых уникальных сочетаний "клиент-валюта" формируется автоматически. Результат помещается в диапазон "О3:R...".
[vba]
Код
Sub selectData() Dim cnn As Object Dim rst As Object Dim sql As String Set cnn = CreateObject("ADODB.Connection") Set rst = CreateObject("ADODB.Recordset") cnn.Open _ "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=" & ThisWorkbook.FullName & ";" & _ "Extended Properties='Excel 12.0;HDR=Yes'" 'создаем SQL-запрос sql = sql & "SELECT Клиент, [Валюта договора], " sql = sql & "Round(Sum([Сумма сделки в валюте договора]*[Срочность сделки 1])/Sum([Сумма сделки в валюте договора]),0), " sql = sql & "Round(Sum([Сумма сделки в валюте договора]*[Срочность сделки 2])/Sum([Сумма сделки в валюте договора]),0) " sql = sql & "FROM [пример$A2:H65000] " sql = sql & "GROUP BY Клиент, [Валюта договора]" rst.Open sql, cnn Worksheets("пример").Range("O3:R" & Rows.Count).ClearContents Worksheets("пример").Range("O3").CopyFromRecordset rst rst.Close Set rst = Nothing Set cnn = Nothing End Sub
[/vba]
Автор - Gustav Дата добавления - 11.12.2015 в 14:37