在搜索公式中,表示区域的方法是OFFSET(D5,0,0,500,500),这意味着区域有500行和500列,以D5为起始单元格。
一个朋友马上问了这个问题:
如果面积不是500行500列,而是一个不断扩大的动态区域呢?
求解公式实现。
在昨天公式的基础上,把OFFSET函数的第四个和第五个参数,也就是表示区域行高和列宽的参数改成动态的就好了。
公式变为:
=if (countif (offset ($ d $6,0,0,counta ($ d: $ d),counta ($63360 $6)),a4) 0,“yes”,“no”)。
公式解释
OFFSET(6,0,0美元D,COUNTA(D :美元D),COUNTA(6:美元6)):
以D6为参考点,向下偏移0行,向右偏移0列,然后取COUNTA高度($D:$D)和COUNTA宽度($6:$6)的区域。
COUNTA($D:$D)指的是D列的数据数量,counta ($63360 $6)指的是第6行的数据数量。随着数据行数和列数的增加,面积不断扩大。
在这一部分中,我们得到了以D6为起始单元的动态区域。
COUNTIF(OFFSET(D $ 6,0,0,COUNTA(D :美元D),COUNTA(6:美元6)),A4:
在上面的动态区域,找到A4单元格的ID。
=if (countif (offset ($ d $6,0,0,counta ($ d: $ d),counta ($63360 $6)),a4) 0,“yes”,“no”):
如果A4单元格中的身份证号不为零,则返回“是”;否则,返回“无”。
另一个直观的例子。
让我们再举一个容易看到结果的例子:
以下数据:
在B4单元格中输入公式:
=COUNTIF(OFFSET(D $ 6,0,0,COUNTA(D : $ D),COUNTA(6: $ 6)),A4)
计算以D6为起始单元格的动态区域中的1s数,填充下来,计算2s数。然后,继续在数据区输入数值,1s和2s的个数也会发生变化。
以下动画: