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

Fill a cell with the first non-empty entry in a set of columns (from left to right)

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

    1. 例子Sheet如下。

  1. 下面给出了所需的 Sheet 输出。

  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¹ function to find the first non-blank cell and pass that back into an INDEX function.

A2中的标准公式是,

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

根据需要填写。

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

您的 array 公式应该与这些中的任何一个一样工作,

=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↵完成。一旦正确输入第一个单元格,就可以像任何其他公式一样向下或向右填充或复制它们。