我需要用同一行的一组列(从左到右)中的第一个非空条目填充一个单元格-类似于SQL中的coalesce()。
在以下示例表中
--------------------------------------- | | A | B | C | D | --------------------------------------- | 1 | | x | y | z | --------------------------------------- | 2 | | | y | | --------------------------------------- | 3 | | | | z | ---------------------------------------
我想在A行的每个单元格中放置一个单元格函数,这样我将得到:
--------------------------------------- | | A | B | C | D | --------------------------------------- | 1 | x | x | y | z | --------------------------------------- | 2 | y | | y | | --------------------------------------- | 3 | z | | | z | ---------------------------------------
我知道我可以使用一系列IF函数来做到这一点,但是在我的实际工作表中,我有30列可供选择,因此,如果有一种更简单的方法,我将很高兴。
=INDEX(B2:D2,MATCH(FALSE,ISBLANK(B2:D2),FALSE))
这是一个数组公式。输入公式后,按CTRL+ Shift+Enter使Excel将其评估为数组公式。这将返回给定单元格范围的第一个非空白值。对于您的示例,公式将在标题为“ a”的列中输入
CTRL
Shift
Enter
A B C D 1 x x y z 2 y y 3 z z