1、工作要求
求人员的销量合计,表格如下(格式:表1),要求按人员汇总每个人员的销量合计(格式要求:表2),公式提示:SUM,OFFSET,MATCH,VLOOKUP。下面我们往下滑看看函数的计算结果及讲解吧。
表1,数据源
表2,要求输出结果
图3,计算结果表
2、函数讲解:=IFERROR(SUM(OFFSET($B$1,MATCH($G2,A:A,0)-1,,MATCH($G3,A:A,0)-MATCH($G2,A:A,0))),VLOOKUP(G2,A:B,2,0))
①首先我们需要理解OFFSET函数的使用,利用OFFSET来实现合并单元格区间求和。(通过OFFSET的height来扩展选择单元格的行,详见3的offset函数解释及案例)
②通过MATCH函数求出当前姓名所在的单元格,以及下一个姓名所在的单元格-1,就是我们要求和的区间了。(详见4的MATCH函数解释及案例)
③最后一个单元格因为下一个单元格为空匹配结果错误,用IFERROR完美解决。
3、OFFSET函数
OFFSET(reference, rows, cols, [height], [width])
OFFSET 函数语法具有下列参数:
- Reference 必需。 要基于偏移量的引用。 引用必须引用单元格或相邻单元格区域;否则,OFFSET 返回#VALUE! 错误值。
- Rows 必需。 需要左上角单元格引用的向上或向下行数。 使用 5 作为 rows 参数,可指定引用中的左上角单元格为引用下方的 5 行。 Rows 可为正数(这意味着在起始引用的下方)或负数(这意味着在起始引用的上方)。
- Cols 必需。 需要结果的左上角单元格引用的从左到右的列数。 使用 5 作为 cols 参数,可指定引用中的左上角单元格为引用右方的 5 列。 Cols 可为正数(这意味着在起始引用的右侧)或负数(这意味着在起始引用的左侧)。
- 高度 可选。 需要返回的引用的行高。 Height 必须为正数。
- 宽度 可选。 需要返回的引用的列宽。 Width 必须为正数。
OFFSET示例说明:
公式SUM(OFFSET(C1,1,2,3,1)) 可计算 3 行 1 列区域(即单元格 C1 下方的 1 行和右侧的 2 列的 3 行 1 列区域)的总值。
C1单元格向下移动1行就是96的位置,再向右移动2行就到了39的位置,然后需要扩展高度为3,所以值为(39,86,16),宽度为1当前宽度。所以求和值为39+86+16=141。
还是不理解的地方请下方留言告诉我吧。
图4,offset示例
4、函数MATCH
MATCH 函数的作用:在范围单元格中搜索特定的项,然后返回该项在此区域中的相对位置。
MATCH(lookup_value, lookup_array, [match_type]),MATCH 函数语法具有下列参数:
- lookup_value 必需。 要在 lookup_array 中匹配的值。 例如,如果要在电话簿中查找某人的电话号码,则应该将姓名作为查找值,但实际上需要的是电话号码。
lookup_value 参数可以为值(数字、文本或逻辑值)或对数字、文本或逻辑值的单元格引用。 - lookup_array 必需。 要搜索的单元格区域。
- match_type 可选。 数字 -1、0 或 1。 match_type 参数指定 Excel 如何将 lookup_value 与 lookup_array 中的值匹配。 此参数的默认值为 1。
下表介绍该函数如何根据 match_type 参数的设置查找值。
MATCH函数示例:
农产品 | 计数 | |
香蕉 | 25 | |
橙子 | 38 | |
苹果 | 40 | |
梨 | 41 | |
公式 | 说明 | 结果 |
=MATCH(39,B2:B5,1) | 由于此处无精确匹配项,因此函数会返回单元格区域 B2:B5 中最接近的下个最小值 (38) 的位置。 | 2 |
=MATCH(41,B2:B5,0) | 单元格区域 B2:B5 中值 41 的位置。 | 4 |