美文网首页韩老师讲Office工具癖
Excel224 | 不断扩展的动态区域中查找指定数据,OFFS

Excel224 | 不断扩展的动态区域中查找指定数据,OFFS

作者: bitterfleabane | 来源:发表于2017-11-25 21:28 被阅读26次

    上一篇韩老师讲Excel223 | OFFSET函数使用示例:大量数据中查找指定数据,查找公式中,表示区域的方法是:OFFSET(D5,0,0,500,500),表示以D5为起始单元格的500行500列的区域。

    有位朋友马上提出问题:

    如果区域不是500行500列,而是不断扩大的动态区域怎么办?

    解决方法

    公式实现

    只要在昨天的公式的基础上,把OFFSET函数的第四个和第五个参数,即表示区域行高和列宽的参数,改成动态的就好了。

    公式变为:

    =IF(COUNTIF(OFFSET($D$6,0,0,COUNTA($D:$D),COUNTA($6:$6)),A4)<>0,"有","无")

    公式解释

    OFFSET($D$6,0,0,COUNTA($D:$D),COUNTA($6:$6)):

    以D6为基准点,向下偏移0行,向右偏移0列,再取高为COUNTA($D:$D)、宽为COUNTA($6:$6)的区域。

    COUNTA($D:$D)指D列的数据个数,COUNTA($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($6:$6)),A4)<>0,"有","无"):

    如果查找到的A4单元格中的ID个数不为零,则返回“有”,否则返回“无”。

    另一直观例子

    再举一个很容易看到结果的例子:

    如下数据:

    在B4单元格输入公式:

    =COUNTIF(OFFSET($D$6,0,0,COUNTA($D:$D),COUNTA($6:$6)),A4)

    计算出以D6为起始单元格动态区域中1的个数,往下填充,计算出2的个数,然后,继续在数据区域输入数值,1、2出现的个数也随着改变。

    如下动图:

    相关文章

      网友评论

        本文标题:Excel224 | 不断扩展的动态区域中查找指定数据,OFFS

        本文链接:https://www.haomeiwen.com/subject/wlqhbxtx.html