查找第一个非空白且与给定值不同的单元格

时间:2019-02-27 14:52:26

标签: excel excel-formula

问题

我搜索范围'Sheet1'!$I8:$AG8内的第一个非空白单元格,然后捕获此单元格的COLUMN,然后获取位于上面两行的单元格的值(称为date)第一个范围,使用以下数组公式:

INDEX('Sheet1'!$A$6:$AG$6;1;COLUMN('Sheet1'!$I8)-1+MATCH(FALSE;ISBLANK('Sheet1'!$I8:$AG8);0))

这很好用。

现在我想做同样的事情,但是如果date等于today(),我想搜索'Sheet1'!$I8:$AG8范围内的下一个非空白值。

要实现此目的,我将以下公式放入单元格F6中,以创建一个更新的范围字符串,该字符串从'Sheet1'!$I8:$AG8范围的第一个非空白单元格开始(注意:row()+2是必需的,因为我在其中放置值的单元格位于下面两行的单元格中的另一张纸上,并且值“ 33”与列AG相匹配:

="'Sheet1'!"&  ADDRESS(ROW()+2;COLUMN('Sheet1'!$I8)+MATCH(FALSE;ISBLANK('Sheet1'!$I8:$AG8);0))&":"&ADDRESS(ROW()+2;33)

然后,如果date等于today(),我将在数组公式中使用F6的内容,如下所示:

INDEX(
    'Sheet1'!$A$6:$AG$6;1;
    COLUMN(INDEX(Sheet1!$A$6:$AG$6;1;COLUMN(Sheet1!$I8)+MATCH(FALSE;ISBLANK(Sheet1!$I8:$AG8);0)))
    -1
    +MATCH(FALSE;ISBLANK(INDIRECT(F6));0)
)

再次这很完美,我得到了我想要的...但是我必须做多次相同的操作(这会导致多个助手列)。

我被困在哪里

我试图将上述两个数组公式组合为一个公式,以摆脱包含单元格F6的上一列。我无法使其正常工作(系统地返回新范围的第一个单元格,而不是第一个非空白单元格):

=INDEX(
    'Planning Briefs'!$A$6:$AG$6;1;
    COLUMN(INDEX(Sheet1!$A$6:$AG$6;1;COLUMN(Sheet1!$I8)+MATCH(FALSE;ISBLANK(Sheet1!$I8:$AG8);0)))
    -1
    +MATCH(FALSE;ISBLANK(INDIRECT("'Sheet1'!"& ADDRESS(ROW()+2;COLUMN(Sheet1!$I8)+MATCH(FALSE;ISBLANK(Sheet1!$I8:$AG8);0))&":"&ADDRESS(ROW()+2;33)));0)
)

问题

有没有一种方法可以使它一次通过,或者我必须将其分成两部分?

预先感谢您的帮助

0 个答案:

没有答案