今天分享一个案例:如下兔脒巛钒图数据源,怎么求同行数据中部分数据之和?案列数据源是各个同学的学号,学号是下面其各科的成绩。怎么在相邻列对应学号同行统计出各科的成绩之和?需要用到的函数:if,len,sum,row,small,countif,offset,match,通过案例学习更容易掌握函数知识运用!
工具/原料
Excel
函数运用
案例分析:
1、我们可以看到数据源,可以得到:1.学号:唯一性,字符长度一致;2.求和:每个考生的科目不一,间隔行数不同,即求和区域有变化;3.难点:需要作出当前学号距离下个相邻学号的间距;4.联系:各个学号之间是否存在联系,比如行号。以上,我们对数据源添加三个辅助列,分步得到结果,利于学习。
2、现在对辅助列的用到函数说明:B列:需要用到的函数Len;C列:需要用到的函数If、Row;D列:需要用到的函数Iferror、If、Small、Countif;E列:需要用到的函数If、Len、Sum、Offset、Match。
案例解析
1、转化数据列字符长度在B列单元格输入:=LEN(A2),即可得到字符长度;操作如GIF动图所示!
2、转化学号所在行的行号在步骤1基础上,可以区别成绩与学号的差异;在C列单元格输入:=IF(LEN(A2)=6,ROW(),"")操作如GIF动图所示!
3、统计螽啸镥释相邻学号之间的间隔行数分解到这,可以得到“相邻学号间隔”的值,如相邻A与B,即等于B-A-1;使用small函数和countif函数组合函剞麽苍足数:1.countif函数统计当前学号长度重复个数;2.在此基础上在利用small函数取值C列对应行号;3.相减即可得到当前学号距离下个学号的间隔行数;4.if函数判断当前行是否是学号行。在D列单元格输入:=IFERROR(IF(B3=6,SMALL(C:C,COUNTIF($B$3:B3,B3)+1)-SMALL($C$3:C3,COUNTIF($B$3:B3,B3)),"")-1,"")如GIF动图所示!
4、解析步骤3的关键点1.因为学号的行号是从小到大,作为Small函数其引用区域,2.因位学号的长度重复次数是从1累计,加1即可得到下个相邻学号,作为Small函数的K值。
5、最终结果的求和使用sum和offset组合函数统计求和结果:1.offset的参数定位为:表头,即A1;2.使用match定位当前学号位置,即row(像粜杵泳)下偏移值;3.引用同行“重复间隔”,即height引用行数;4.即得到求和区域,使用Sum函数求和;5.4.if函数判断当前行是否是学号行。在E列输入公式:IF(LEN(A2)=6,SUM(OFFSET($A$1,MATCH(A2,A:A,0),,D2,)),"");如GIF动图所示!
6、解析步骤4的关键点1.Match函数的巧妙使用,利用学号的位置,解决Offset函数的Row参数,即下移参数,定位求和区域的上界标;2.使用Offset函数,前面三步主要是解决height,即引用行数,定位求和区域的下界标;;