Как вернуть первую непустую ячейку из значений importrange? - PullRequest
1 голос
/ 30 апреля 2020

В моем документе Google лист Excel содержатся данные, подобные этим

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

Столбец B и D содержат данные, предоставленные функцией IMPORTRANGE, которые хранятся в разные файлы.

И я хотел бы заполнить столбец A первым непустым значением в строке, другими словами: желаемый результат должен выглядеть следующим образом:

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

Я попробовал ISBLANK функцию, но, к сожалению, если столбец импортирован, то, даже если значение пустое, не пусто, поэтому эта функция не работает для моего случая. Затем я попробовал 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, и я просто что-то упустил, или я должен использовать IFs / javascript?

1 Ответ

1 голос
/ 01 мая 2020

try:

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

0


выборочные столбцы:

0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...