一个学生问我,如何从左侧的表,制作右侧的表?

这是两个条件下的加权平均值计算问题:一个条件是工厂,一个条件是供应商,有人说,直接使用SUMIFS函数计算出采购总额,计算出采购数量,将两个数相除不就行了吗?先生,想得太简单了,这个计算出来的不是加权平均,是算术平均。
为了计算指定工厂、指定供应商的加权平均,就需要将该工厂、该供应商的几次采购金额合计及采购数量进行计算,然后才能将两个数值相除,得出加权平均值来,这里就有了两个条件判断问题:将该工厂和该供应商的数据取出来,才能相乘相加再相除。
在不添加辅助列(采购金额)的情况下,我们可以使用条件表达式来处理,然后再使用SUMPRODUCT函数进行计算,计算公式如下:
/SUMPRODUCT(($A$2:$A$20=H3)*($D$2:$D$20=I3),$C$2:$C$20)
公式中,下面的表达式就是判断指定工厂、指定供应商的:
($A$2:$A$20=H3)*($D$2:$D$20=I3)
这个表达式的结果是由1和0组成的数组:
{1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0}
$B$2:$B$20是获取采购单价的,是单价数组:
{2.585;2.62;2.81;2.81;2.523;2.585;2.45;2.45;2.45;2.45;2.45;2.113;2.295;2.415;2.465;2.446;2.48;2.58;2.43}
$C$2:$C$20是获取采购数量,是数量数组:
{120;0.28;32.37;33.2;33.2;30;30.637;30.6;20.677;10;30.657;1.67763;1.85954;59.76;29.88;89.64;29.88;96;64}
那么,将这三个数组的各个数字相乘相加,就是指定工厂、指定供应商的采购总金额:
SUMPRODUCT(($A$2:$A$20=H3)*($D$2:$D$20=I3),$B$2:$B$20,$C$2:$C$20)
将第一个数组与第三个数组组的各个数字相乘相加,就是指定工厂、指定供应商的采购总数量:
SUMPRODUCT(($A$2:$A$20=H3)*($D$2:$D$20=I3),$C$2:$C$20)
最后就是将这两个SUMPRODUCT函数的结果相除,就是我们需要的加权平均单价了。
----------------------
本文不难,逻辑也很简单,但要了解条件表达式的基本概念和规则,构建满足条件数组的基本技能,以及SUMPRODUCT函数的基本用法。
仔细阅读本文,你会有不一样的收获。
近期文章:
-
一个看似简单的例子,隐藏着许多Excel规则 -
两个维度的饼图:双层嵌套饼图(附详细制作步骤) -
巧妙删除不同行的相同数据:函数很简单,逻辑强大 -
转换表格结构,方法很多,函数最能训练逻辑思维
-
LOOKUP函数大显神威:直接从号码区间匹配名称(LOOKUP函数的详细用法) -
TEXT函数:格式函数中的战斗机(本文较长,绝对收藏)
-
牛叉的 SUMPRODUCT 和 DATEDIF,直接根据出生日期制作年龄分布报告(HR收藏)
-
三年营收对比,怎么可视化?
-
从一张表,看医院的收入构成
-
一个例子及其延伸,就在考核你是否能够灵活应用MATCH、INDEX、VLOOKUP,以及数组公式、自动排序 -
查看前N大客户的动态排名分析模板:考核你的数据分析逻辑思维和函数综合应用能力
-
无意哪些小技巧,只为数据分析的逻辑思路(一个更复杂的例子,提供源文件) -
数据分析,是层层挖掘数据,展示分析结果,发现存在问题 -
不讲武德,为什么我每次介绍的案例都是这么难? -
复杂问题简单化,才是真功夫(从业务出发,问题很简单) -
判断单元格是否有指定关键词的几种实用方法 -
不入流财务做计算,一流财务做什么?

