方法1:MAX函数
有些朋友不会此类问题,百度以后通常会出现几个常见的有表头的结果,这里介绍两个: 第一个公式=MAX(B$1:B1)+1,其含义是求B$1:B1的最大值,+1就是本单元格的结果。由于B1是文本,MAX函数如果遇到文本自动按照0计算,所以B2=0+1=1;向下填充后,由于B1是文本,B2=1,MAX函数如果遇到文本自动按照0计算,所以B4单元格是1+1=2。以此类推。 填充公式方法如视频所示: 第二个公式=COUNTA(B$1:B1),其含义是求B$1:B1的非空单元格个数。由于B$1:B1非空单元格个数是1,所以B2=1;向下填充后,由于B$1:B3非空单元格是2,所以B4=2。以此类推。 填充公式方法如视频所示: 在通常情况下,这类有表头的公式能够解决我们遇到的问题。今天我们把问题增加难度:如何在无表头的合并单元格标记序号,如下图B列所示: 这个问题看着比较困难,但实际上我们可以根据上述的两个结果改造一下就得到结果。 方法1:MAX函数 由于迭代就是为了解决自己对自己的运算而设置的,而且初值为0。故我们可以尝试开启迭代并套前文提到的第一个公式。在B1单元格输入公式=MAX(B$1:B1)+1,然后选中区域,输入公式,按Ctrl+enter后出现下面的结果: 啊?为什么会变成100呢? 这是因为我们的迭代开了100次,b1相当于从1开始自己+1加了100次,所以是101。如果我们把迭代次数改成1次,那么就能得到正确的结果。 由于这个公式自己和自己做了加法运算,所以在别的单元格有实质性操作后会按照本单元格的初值为上次迭代值再次迭代。如果大家用这个公式,那么请在最后一步再处理这个序号。 填充公式方法如视频所示: 方法2:COUNTA函数 在迭代开一次的前提下,我们可以在C1单元格输入=COUNTA(C$1:C1)(=COUNT(C$1:C1)也可以)。此公式由于没有自己对自己进行运算,所以不管对单元格怎么操作,结果都不会变化。 填充公式方法如视频所示: 方法3:COUNT+OFFSET函数 这个公式是铁匠老师提供的,公式为:=COUNT(OFFSET(D$1,,,ROW()-1),0) 下面来解析一下这个公式: 由于上述两种解法都需要开启迭代。若工作簿里迭代过多,表格会变卡。我们可以从另一个角度考虑这个问题。 因为是纯数字,我们从COUNT函数的角度来分析问题。 大家找找以下计数区域的规律: D4——D1:D3 D8——D1:D7 D9——D1:D8 D10——D1:D9 D11——D1:D10 D12——D1:D11 我相信大家都发现了,上述计数区域的最后一个单元格行数都比公式所在单元格小1。COUNT函数的参数若出现错误,就对错误不计数,仅对数字计数。根据这个特性,我们想到OFFSET函数可以批量平移且能出错。 OFFSET这个函数如果大家需要,我们可以做一个专题来介绍。这里简单介绍一下OFFSET的语法: OFFSET:以指定的引用为参照系,通过给定的偏移量、行数及列数返回一个新的引用。 OFFSET(参考系,行数,列数,高,宽) 4、5参数可省略。 如下图所示,指定参考系是AA33,第二参数的MATCH匹配了AB42在AA34到AA37的行数3,第三参数的MATCH匹配了AC42在AB33到AF33的列数4,故偏移3行4列,得到n。 介绍了OFFSET函数,我们来用OFFSET分析我们找到的规律。 D4:D1偏移3高度得到D1:D3, D8:D1偏移7高度得到D1:D7 D9:D1偏移8高度得到D1:D8 ... 以此类推,我们发现偏移的高度刚好是所在行数减一,故我们尝试在选中D4到D14单元格,输入=COUNT(OFFSET(D$1,,,ROW()-1),0),按Ctrl+enter后得到: 我们尝试把D1选中,输入=COUNT(OFFSET(D$1,,,ROW()-1),0),按Ctrl+enter后得到: 这是因为=COUNT(OFFSET(D$1,,,ROW()-1),0)中第四参数偏移0高度。在OFFSET中,若除了第一参数以外的其他参数小于等于零,会出现REF!错误,但是COUNT函数的参数若出现错误,就对错误不计数,仅对数字计数,所以对0计数就是1个了。 零值可以省略,所以最终结果为=COUNT(OFFSET(D$1,,,ROW()-1),) 填充公式方法如视频所示: 方法4:SUMPRODUCT+N+ISFORMULA函数 接下来我们介绍一个不常见的函数 ISFORMULA函数 检查是否存在包含公式的单元格引用,然后返回 TRUE 或 FALSE,如下图。 嵌套N函数结果如下: 嵌套Sumproduct函数结果如下: 完整公式如下: =SUMPRODUCT(N(ISFORMULA(B$1:B1))) |
|
来自: hercules028 > 《excel》