如何从importrange值中返回第一个不为空的单元格?

问题描述 投票:0回答:1

我的Google Sheet Excel文档包含这样的数据

+---+---+---+---+---+---+
|   | A | B | C | D | E | 
+---+---+---+---+---+---+
| 1 |   | c |   | x |   |
+---+---+---+---+---+---+
| 2 |   | r |   | 4 |   |
+---+---+---+---+---+---+
| 3 |   |   |   | m |   |
+---+---+---+---+---+---+
| 4 |   |   |   |   |   |
+---+---+---+---+---+---+

BD包含IMPORTRANGE功能提供的数据,它们存储在不同的文件中。

而且我想用行中的第一个非空值填充列[[A,换句话说:所需的结果必须看起来像这样:

+---+---+---+---+---+---+ | | A | B | C | D | E | +---+---+---+---+---+---+ | 1 | c | c | | x | | +---+---+---+---+---+---+ | 2 | r | r | | 4 | | +---+---+---+---+---+---+ | 3 | m | | | m | | +---+---+---+---+---+---+ | 4 | | | | | | +---+---+---+---+---+---+
我尝试过ISBLANK函数,但是显然如果导入了column,即使该值为空,也不为空,因此此函数不适用于我的情况。然后,我尝试了QUERY函数的2种不同变体:

1] =QUERY({B1;D1}; "select Col1 where Col1 is not null limit 1"; 0),但是当行包含带数字的单元格时,这种情况下的结果是错误的。该查询的结果如下:

+---+---+---+---+---+---+ | | A | B | C | D | E | +---+---+---+---+---+---+ | 1 | c | c | | x | | +---+---+---+---+---+---+ | 2 | 4 | r | | 4 | | +---+---+---+---+---+---+ | 3 | m | | | m | | +---+---+---+---+---+---+ | 4 | | | | | | +---+---+---+---+---+---+

2)=QUERY({B1;D1};"select Col1 where Col1 <> '' limit 1"; 0) / =QUERY({B1;D1};"select Col1 where Col1 != '' limit 1"; 0)根本不起作用,结果始终是#N/A

[此外,我想避免使用嵌套的IFs和javascript脚本,如果可能的话,因为QUERY函数的解决方案最适合我的情况,因为它很容易扩展到另一列,而无需任何深入的编程知识。有没有办法简单地用QUERY做到这一点,而我只是缺少一些东西,或者我必须使用IF / javascript?

arrays google-sheets google-sheets-formula array-formulas google-sheets-query
1个回答
0
投票
尝试:

=ARRAYFORMULA(SUBSTITUTE(INDEX(IFERROR(SPLIT(TRIM(TRANSPOSE(QUERY( TRANSPOSE(SUBSTITUTE(B:G, " ", "♦")),,99^99))), " ")),,1), "♦", " "))

0
© www.soinside.com 2019 - 2024. All rights reserved.