用一组列中的第一个非空条目填充一个单元格(从左到右)
Fill a cell with the first non-empty entry in a set of columns (from left to right)
我正在尝试用一组列(从左到右)中的第一个非空条目填充一个单元格。
- 例子Sheet如下。
- 下面给出了所需的 Sheet 输出。
我在 A 列中应用数组公式 =INDEX(B2:D2,MATCH(FALSE,ISBLANK(B2:D2),FALSE))
并且公式在单元格 A2、A3、A4 中显示为 {=INDEX(B2:D2,MATCH(FALSE,ISBLANK(B2:D2),FALSE))}
但我得到以下结果而不是期望的结果一.
- 谁能帮忙指出我哪里错了。
使用 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↵完成。一旦正确输入第一个单元格,就可以像任何其他公式一样向下或向右填充或复制它们。
我正在尝试用一组列(从左到右)中的第一个非空条目填充一个单元格。
- 例子Sheet如下。
- 下面给出了所需的 Sheet 输出。
我在 A 列中应用数组公式
=INDEX(B2:D2,MATCH(FALSE,ISBLANK(B2:D2),FALSE))
并且公式在单元格 A2、A3、A4 中显示为{=INDEX(B2:D2,MATCH(FALSE,ISBLANK(B2:D2),FALSE))}
但我得到以下结果而不是期望的结果一.- 谁能帮忙指出我哪里错了。
使用 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↵完成。一旦正确输入第一个单元格,就可以像任何其他公式一样向下或向右填充或复制它们。