计算每个产品的加权平均值

我有一个与ms-access计算有关的问题。所以要清楚,我上传了Excel表,在那里我做了计算。我对加权平均值感兴趣,基本上如何做我在excel中访问的计算。计算每个产品的加权平均值

我在Excel中的公式看起来像这样:=SUMIFS($I:$I;$G:$G;G2;$H:$H;H2;$B:$B;B2;$C:$C;C2)/SUMIFS($F:$F;$G:$G;G2;$H:$H;H2;$B:$B;B2;$C:$C;C2) 我为每个代码(产品),每个组,每个月,每年获得正确的销售量和销售量数字。

我有相同的数据库在Excel中,我得到所有额外的计算领域与收入,月和年的值在Excel中。然而,我不得不知道如何重现我的Excel访问公式。

图片上加权的每件商品包含上述公式。我需要找到一种方法将这种计算包括在访问中,其中数据是相同的。

Code Group  Price per t Volume MONTH YEAR Revenue   Weighted 

13753 avangard 12 818,84 108,85 1 2008 1 395 330,73 13 826,51

13755 super 11 488,83 26,76 1 2008 307 441,09 15 726,96

14899 super 11 607,86 64,39 1 2008 747 430,11 15 591,86

13747 super 11 892,57 62,96 1 2008 748 756,21 16 199,30

13753 avangard 18 134,69 94,65 1 2008 1 716 448,41 13 826,51

如何应该计算值= SUMIFS(收入; CriteriaRange(1)=月;标准(1)=行2(月); CriteriaRange(2)=年份;标准(2)=行2(年) ; CriteriaRange(3)=代码;标准(3)=行2(编号))/ SUMIFS(音量; CriteriaRange(1)=月;标准(1)=行2(月); CriteriaRange(2)=年份;条件(2 )= Row2(Year); CriteriaRange(3)= Code; Criteria(3)= Row2(Code))

如果我们将自己与表格样本中的计算加权分开,仅基于所提供的数据, 13753 =(1 395 330,73 + 1 716 448,41)/(108,85 + 94,65)= 15 291,30

@Darren Bartr上库克。找到我需要的解决方案。非常感谢您的帮助。这是我用来镜像SUMIFS函数的最终SQL代码。

SELECT Data.Code, 

Справочник_групп_продукции.Group,

Month([Dated]) AS LMonth,

Year([Dated]) AS LYear,

SUM([Price per t] * [Volume])/SUM([Volume]) AS Wght_Avg

FROM Справочник_групп_продукции INNER JOIN Data ON Справочник_групп_продукции.[Code] = Data.[Code]

GROUP BY Data.Code,

Month([Dated]),

Year([Dated]),

Справочник_групп_продукции.Group;

https://imgur.com/DyMYnEC

回答:

随着你的表设置为示例表(抱歉,不能看到图片)和 表名作为MyTable你只需要执行的总和(收入/音量)并按代码,月份和年份分组。

SELECT  Code 

, Group

, lMonth

, lYear

, ROUND(SUM(Revenue)/SUM(Volume),2) AS Weighted_Avg

FROM MyTable

GROUP BY Code

, Group

, lMonth

, lYear

注:我已经更新了MonthYear字段的名称lMonthlYear避免保留字冲突。
我可能会改变我的设计使用真实日期,而不是月份和年份数字,但。

NB 2:我也想移动Group使用Code作为该表中的主键另一个表和外键在主表。这将消除组名中的任何拼写错误。
新的查询是:

SELECT  MyTable.Code 

, Group

, lMonth

, lYear

, ROUND(SUM(Revenue)/SUM(Volume),2) AS Weighted_Avg

FROM MyTable LEFT JOIN GroupTable ON MyTable.Code = GroupTable.Code

GROUP BY MyTable.Code

, Group

, lMonth

, lYear

编辑:

纵观SQL你张贴了这个更新SQL应该工作:

SELECT  Format(Dated,"mmm-yyyy") AS Month_Year 

, Group

, Data.Code

, [Price per t]*volume AS Revenue

, ROUND(SUM([Price per t]*[Volume])/SUM(Volume),2) AS Weighted_Avg

FROM Справочник_групп_продукции INNER JOIN Data ON Справочник_групп_продукции.Code = Data.Code

GROUP BY Format(Dated,"mmm-yyyy")

, Group

, Data.Code

, [Price per t]*volume

以上是 计算每个产品的加权平均值 的全部内容, 来源链接: utcz.com/qa/264539.html

回到顶部