Excel中的常见操作
1.筛选后求和、求平均值
参考:subtotal函数,SUBTOTAL function - Microsoft Support
在经过筛选后,如果使用sum()函数进行求和,选择的其实包含了被筛选掉的列。也即选中时并没有选中筛选后的列,这样求出来的和不是想要的。注:在选中筛选的内容后,excel右下角的求和是正确的。
改用subtotal函数:
1 | SUBTOTAL(function_num,ref1,[ref2],...) |
求和:
1 | SUBTOTAL(109,选中列) |
求均值:
1 | SUBTOTAL(101,选中列) |
Function_num Required. The number 1-11 or 101-111 that specifies the function to use for the subtotal. 1-11 includes manually-hidden rows, while 101-111 excludes them; filtered-out cells are always excluded. (1-11包含了hidden rows,101-111剔除了filtered-out cells)
注:且筛选内容变了后,对应的结果也会跟着变,不用把函数删掉再重写。
2.vlookup根据两列数据匹配
当两列数据确定唯一值时,例如:有数据:
季度 | 客户经理 | 接待人数 | 开户数 |
---|---|---|---|
21Q1 | A | xx | ? |
21Q2 | A | xx | |
21Q3 | A | xx | |
21Q1 | B | xx | |
21Q2 | B | xx | |
21Q3 | B | xx |
此时想根据季度与客户经理去匹配另一张表中的开户数时,有如下方法:
1 | VLOOKUP(E2&F2,IF({1,0},A1:A13&B1:B13,C1:C13),2,FALSE) |
↑在开户数这一列,写入上面的公式,其中E2与F2指季度与客户经理这两列(单元格),A1:A13与B1:B13指有开户数的那张表中的季度与客户经理两列(用&拼接起来),C1:C13为开户数那一列。
1 | IF({1,0},A1:A13&B1:B13,C1:C13) 的含义: |
倒数第二个参数2代表C1:C13开户数这列,位于选取的范围中的第2列(A1:A13&B1:B13视为第1列)
3.countif函数
1 | countif(range, criteria) |
示例1:
计算电脑的销售数量:
1 | =COUNTIF(C2:C7,"电脑") |
另:可结合通配符使用。例如统计包含”电脑“的销售数量:
1 | =COUNTIF(C2:C7,"*电脑*") |
示例2:
指定条件计数,例如统计销售额大于平均金额的个数:
1 | =COUNTIF(D2:D7,">"&AVERAGE(D2:D7)) |
条件用到了另外的一个函数,我们需要用符号“&”来作为连接符号。否则无法得到正确的结果。
4.sumif函数
1 | SUMIF(range,criteria,[sum_range]) |
示例1:
求女生成绩之和:
1 | =SUMIF(C2:D6,"女",D2:D6) |
示例2:
大于89的成绩之和:
1 | =SUMIF(D2:D6,">89") |
示例3:
李丽,李章,王程成绩之和:
1 | =SUM(SUMIF(B2:B6,{"李丽","李章","王程"},D2:D6)) |
示例4:
求前3名成绩之和:
1 | =SUMIF(D2:D6,">="&LARGE(D2:D6,3)) |
函数LARGE(RANGE,K)的作用是返回数组中第K个最大值
↑注:如果有两个第3大的值,large(range,3) 与 large(range,4) 会返回一样的值。