用一组列中的第一个非空条目(从左到右)填充单元格,

  1. 我正在尝试用一组列中的第一个非空条目(从左到右)填充单元格。

    1. 示例表如下。

原始表

  1. 所需的工作表输出如下。

所需的工作表输出

  1. 我在列A中应用数组公式=INDEX(B2:D2,MATCH(FALSE,ISBLANK(B2:D2),FALSE)) ,在单元格A2,A3,A4中将公式视为{=INDEX(B2:D2,MATCH(FALSE,ISBLANK(B2:D2),FALSE))}但我得到以下结果,而不是所需的一个。

    公式后应用

  2. 有人可以帮忙指出我哪里错了。

使用AGGREGATE¹函数查找第一个非空白单元格,并将其传递回INDEX函数 。

找到第一个非空白

A2中的标准公式是,

 =INDEX($B2:$Z2, AGGREGATE(15, 6, COLUMN(A:Z)/SIGN(LEN($B2:$Z2)), 1)) 

根据需要填写。

¹AGGREGATEfunction是在Excel 2010中引入的。它在早期版本中不可用。

你的数组公式应该可以像任何这些一样工作,

 =INDEX(B2:D2,MATCH(1, SIGN(LEN(B2:D2)), 0)) =INDEX(B2:D2,MATCH(0, --ISBLANK(B2:D2), 0)) =INDEX(B2:D2,MATCH(FALSE, ISBLANK(B2:D2), 0)) 

数组公式需要用Ctrl + Shift + Enter 来完成。 一旦正确input第一个单元格,就可以像任何其他公式一样向下或向右填充或复制它们。

Interesting Posts