我需要合并两个电子表格中的数据,并在每一行添加带有文件ID的列。
电子表格1列=> A B C D
电子表格2列=> O P Q R
Spreadsheet merged Columns => ' X' A B C D O P Q R
已编辑:其中列X包含电子表格的ID。
......其中' X'不是电子表格1或电子表格2中的列,但它是合并的新电子表格中的新列,并包含电子表格的文本/ ID,其中是行的原点。
我现在使用这段代码......
=ARRAYFORMULA({
QUERY(importrange("spreadsheet1-ID"; "'Sheet'!A:D");"SELECT * WHERE Col1!=''");
QUERY(importrange("spreadsheet2-ID"; "'Sheet'!O:R");"SELECT * WHERE Col1!=''")
})
......我得到了:
A1 B1 C1 D1
A2 B2 C2 D2
O1 P1 Q1 R1
O2 P2 Q2 R2
但我需要:
spreadsheet1-ID A1 B1 C1 D1
spreadsheet1-ID A2 B2 C2 D2
spreadsheet2-ID O1 P1 Q1 R1
spreadsheet2-ID O2 P2 Q2 R2
我可以使用这样的东西在QUERY中添加带ID的固定列吗?
=ARRAYFORMULA({
QUERY(importrange("spreadsheet1-ID"; "'Sheet'!A:D");"SELECT 'ID1', * WHERE Col1!=''");
QUERY(importrange("spreadsheet2-ID"; "'Sheet'!O:R");"SELECT 'ID1', * WHERE Col1!=''")
})
答案 0 :(得分:1)
此公式是否符合您的要求:
={QUERY(importrange("spreadsheet1-ID", "'Sheet'!A:X"),"SELECT Col24,Col1,Col2,Col3,Col4 WHERE Col1!=''");QUERY(importrange("spreadsheet2-ID", "'Sheet'!O:X"),"SELECT Col10,Col1,Col2,Col3,Col4 WHERE Col1!=''")}
要添加工作表本身不存在的ID,请尝试以下公式:
=ArrayFormula({IF(SIGN(row(INDIRECT("1:"&ROWS(QUERY(importrange("key1", "'Sheet'!A:D"),"WHERE Col1!=''"))))),"ID1",),QUERY(importrange("key1", "'Sheet'!A:D"),"WHERE Col1!=''");IF(SIGN(row(INDIRECT("1:"&ROWS(QUERY(importrange("key2", "'Sheet'!O:R"),"WHERE Col1!=''"))))),"ID2",),QUERY(importrange("key2", "'Sheet'!O:R"),"WHERE Col1!=''")})
您可以在此示例表中看到它:https://docs.google.com/spreadsheets/d/1sSHP0sekUc5PxnubpnieWthD2H_9s4P2JWqmtxM906o/edit?usp=sharing