没想到要学SUBTOTAL函数的粉丝挺多的,那就来个全面的讲解吧。当了那么多年的配角,今天终于当回主角。 1。汇总行的妙用 选择区域,插入表格,点设计,勾选汇总行。 汇总行,除了可以求和,还可以下拉选择计数,最大值等。 当然,插入表格和勾选汇总行这些步骤也可以省略,直接写公式也行。 求和就用: SUBTOTAL(109,D2:D11) SUBTOTAL(9,D2:D11) 计数就用: SUBTOTAL(103,D2:D11) SUBTOTAL(3,D2:D11) SUBTOTAL一共可以代表11个函数,不过平常用得最多的是计数COUNTA和求和SUM。 2。筛选的时获取连续序号 正常情况下,用ROW、COUNTIF之类获取的序号,只要进行筛选就乱了。而SUBTOTAL刚好能解决这个问题。 SUBTOTAL(3,B2:B2)1 区域采用混合引用,下拉的时候就逐渐变大,从而起到累计的作用。后面1的作用,是防止最后一行当成汇总,导致筛选的时候出错。不加不一定会错,加了肯定没错。 现在筛选的时候,序号就是连续的,最后一行的汇总也跟着改变数据。 3。对筛选的结果进行条件求和、计数 正常情况下,SUMIFS、COUNTIFS不管有没筛选结果都一样,不能直接对筛选的结果进行判断。 不过可以利用SUBTOTAL可以对可见单元格生成序号。 SUBTOTAL(3,D2) 现在要求大于200元的班级个数,就可以用这样的公式: COUNTIFS(F:F,1,D:D,200) 对价格进行筛选,统计结果会自动改变。 同理,统计金额大于200元的班级的总金额,就可以这样设置公式。 SUMIFS(D:D,F:F,1,D:D,200) 核心点就是利用SUBTOTAL作为辅助列,生成数字1,再根据辅助列作为新的条件进行判断。 4。将筛选的结果合并在一个单元格内 这个跟案例3一样,也是用辅助列生成数字1,再借助这个判断。 输入公式,按CtrlShiftEnter结束。IF部分的作用是让符合F列为1,D列大于200的,返回C列的值,否则返回空,再用TEXTJOIN将内容合并起来。 TEXTJOIN(、,1,IF((F2:F111)(D2:D11200),C2:C11,)) 要将SUBTOTAL用好,还得学会很多函数才行。 推荐:VLOOKUP与LOOKUP的1,0详解 上篇:VLOOKUP与LOOKUP的1,0详解(通俗版) 还想知道什么用法? 作者:卢子,清华畅销书作者,《Excel效率手册早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)