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

时间:2017-12-27 11:20:44

标签: 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)=行2(年); CriteriaRange(3)=代码;标准(3)=行2(编号))

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

@Darren Bartrup-Cook。找到了我需要的解决方案。非常感谢您的帮助。这是我用来镜像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

1 个答案:

答案 0 :(得分:2)

将您的表格设置为示例表格(抱歉,无法查看图片)和 表名为MyTable,您只需执行总和(收入/数量)并按代码,月份和年份分组。

SELECT      Code
            , Group
            , lMonth
            , lYear
            , ROUND(SUM(Revenue)/SUM(Volume),2) AS Weighted_Avg
FROM        MyTable
GROUP BY    Code
            , Group
            , lMonth
            , lYear

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

注意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