web-dev-qa-db-ja.com

IMPORTRANGEを使用して複数のスプレッドシートを1つに結合する

複数のスプレッドシートのデータを1つのスプレッドシートに集約したいと思います。

  • スプレッドシート1には文字列A2:A500の行があります
  • スプレッドシート2には文字列の行A2:A500があります
  • スプレッドシート3には、両方の行があるはずです(Spreadsheet1!A2:A500 AND Spreadsheet2!A2:A500)。

重複は別の方法で処理されません。別のシートに表示されるのと同じ頻度で表示してほしい。

スクリプトを記述したり、jQueryを使用せずにこれを行うことは可能ですか? IMPORTRANGEを使用して?

機能しないもの: IMPORTRANGEを次のように使用してみました。

ARRAY{IMPORTRANGE("key-of-spreadsheet1","list!A2:A500"), IMPORTRANGE("key-of-spreadsheet2", "list!A2:A500")}

これによりエラーが発生します。

9
FlorianT.

Spreadsheetで垂直配列を使用できるはずです。

={IMPORTRANGE("Sheet1Key","SheetName!A2:A500");IMPORTRANGE("Sheet2Key","SheetName!A2:A500")}
11
Chris Hick

もちろん、複数のIMPORTRANGE()関数をQUERY() functionと組み合わせることもできます。これにより、インポート

たとえば、このような構成を使用できます

_=QUERY(
  {
    IMPORTRANGE("key-or-url-of-spreadsheet-1", "'sheet-name-1'!A2:Z100");
    IMPORTRANGE("key-or-url-of-spreadsheet-2", "'sheet-name-2'!A2:Z100");
    IMPORTRANGE("key-or-url-of-spreadsheet-3", "'sheet-name-3'!A2:Z100");
    IMPORTRANGE("key-or-url-of-spreadsheet-4", "'sheet-name-4'!A2:Z100")
  },
  "SELECT * WHERE Col1 IS NOT NULL ORDER BY Col3 ASC"
)
_

説明:

上記のクエリインポートされた範囲から空白行を削除

_SELECT * WHERE Col1 IS NOT NULL
_

および番目の列に関連して収集されたすべてのデータを昇順にソート

_ORDER BY Col3 ASC
_

降順の場合、ちょうどseDESCの代わりにASC

もちろん、-他の基準を調整したり、省略したりすることもできますすべてを変更せずに表示します。

_"SELECT * "
_

注意:

上記のクエリを使用するには、まず、参照するスプレッドシートごとに単一のIMPORTIMAGE()メソッドを呼び出す必要があります

_=IMPORTRANGE("key-or-url-of-spreadsheet-1", "'sheet-name-1'!A2:Z100")
_

この数式を記述したのと同じスプレッドシートを参照する場合でも、これを行う必要がありますが、-すべてのスプレッドシートについて、1回実行するだけで十分です

これは、これらのシートを接続できるようにするおよびアクセスを許可するシートへのアクセス(---)とにかく権利)

enter image description here

すべてのスプレッドシートに許可を与えた後、上記のクエリを使用できます。

4
simhumileco

IN ARRAY_LITERALのようなエラーが発生している複数のスプレッドシートからデータを取得するために、上記の数式を適用しています。配列リテラルに1つ以上の行の値がありませんでした。

0
AshwiniM