2016-05-11 18 views
1

2つのスプレッドシートからデータを結合し、各行にファイルIDの列を追加する必要があります。カラムXは、スプレッドシートのIDが含まを:インポートされたデータに固定値の列を追加する方法Googleスプレッドシート


スプレッドシートの1列=> ABCD

スプレッドシートの2列=> OPQR

スプレッドシート=> 'X' ABCDOPQR

編集列のマージ。

... '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!=''") 
}) 

答えて

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

+0

私のせいで申し訳ありません。私はそれをはっきりと書きませんでした。 'X'はスプレッドシート1またはスプレッドシート2の列ではありませんが、マージされた新しいスプレッドシートの新しい列であり、スプレッドシートのテキスト/ IDを含みます。 –

+0

ああ私は - 私は上記の修正された数式を掲載しました。必要に応じて 'ID1'と 'ID2'の値を変更することができます。 –

+0

うわー、これは単なる純粋な魔法です。あなたのソリューションのロジックは魅力的です!作品は大変感謝しています。 –

関連する問題