Googleスプレッドシートの「=QUERY」join()相当関数?
2023-09-26 05:20:21
質問
この質問は、Googleスプレッドシートで=QUERY関数を使用して2つのデータベースを結合することに関するものです。
私は範囲A1:C3に次のようなテーブルを持っています。
a d g
b e h
c f i
別のテーブルがあります
c j m
a k n
b l o
最終的なテーブルをこのようにしたい
a d g k n
b e h l o
c f i j m
セルD1にvlookup関数を使用して、それを下と横に貼り付けることで簡単にできますが、私のデータセットは巨大です。私はvlookupのページ全体を必要とし、Googleスプレッドシートは、複雑さの点で私の限界に達していると伝えます。
Googleのクエリ言語リファレンスを見ると...言及されている"join"関数のタイプがないようです。あなたはそれが簡単な"join on A"タイプの操作であると思うかもしれません。
どなたか、vlookupを使わずに解決できる方はいらっしゃいませんか?
どのように解決するには?
短い答え
Google QUERY言語 バージョン0.7(2016)ではJOIN(LEFT JOIN)演算子がありませんが、結果をQUERY関数の入力として使用したり、他の用途に使用できる配列式を使用することで実現できます。
説明
配列式と の配列処理機能 を使えば、単純な2つのテーブル間のJOINが可能になります。読みやすくするために、提案された数式では、範囲参照の代わりに名前付き範囲を使用しています。
名前付き範囲
- テーブル1:シート1!A1:C3
- テーブル2:シート2!A1:C3
- ID : シート1!A1:A3
計算式
=ArrayFormula( { table1, vlookup(ID,table2,COLUMN(Indirect("R1C2:R1C"&COLUMNS(table2),0)),0) } )
備考
- オープンエンドの範囲を使用することは可能ですが、これはスプレッドシートの速度を低下させる可能性があります。
- 再計算の時間を短縮するため :
-
置き換え
Indirect("R1C2:R1C"&COLUMNS(table2),0)
を 2 から table2 の列数までの定数の配列で置き換える。 - スプレッドシートから空の行を削除します。
例
参照 このシート を参照してください。
注意事項
2017年、GoogleはQUERYに関する英語の公式ヘルプ記事を改善しました。 QUERYの機能 . まだこのようなトピックは含まれていませんが、仕組みを理解するのに役立つと思います。
関連
-
[解決済み] MongoDBに "like "を使ってクエリを実行する方法
-
[解決済み] SQL ServerでJOINを使用してUPDATE文を実行するにはどうすればよいですか?
-
[解決済み] JOINとINNER JOINの違いについて
-
[解決済み] INNER JOIN ON vs WHERE句
-
[解決済み] SQL Server の CASE ステートメントで OR がサポートされていない。
-
[解決済み] 項目xにアクセスできるように文字列を分割するにはどうすればよいですか?
-
[解決済み] Entity Framework VS LINQ to SQL VS ADO.NETでストアドプロシージャを使う?[クローズド]
-
[解決済み】「INNER JOIN」と「OUTER JOIN」の違いは何ですか?
-
[解決済み] SQL ServerでINNER JOINを使用して削除するにはどうすればよいですか?
-
[解決済み】ジョインとサブクエリの比較
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
SQL-初心者のためのベスト入門SQLクエリ I
-
[解決済み] MySQLの「スキーマの作成」と「データベースの作成」 - 違いはあるのか?
-
[解決済み] SQL Server : 列を行に変換する
-
[解決済み] データベースのインデックス作成はどのように行われるのですか?[クローズド]
-
[解決済み] SQL Serverでレコードを削除した後、IDシードをリセットする。
-
[解決済み] SQL SELECT WHERE フィールドに単語が含まれる場合
-
[解決済み] SQL ServerにおけるINSERT OR UPDATEに関する解決策
-
[解決済み] フラットテーブルをツリーにパースする最も効率的/エレガントな方法は何ですか?
-
[解決済み] T-SQL文の接頭辞Nの意味と使うべきタイミングは?
-
[解決済み] Postgres でサブクエリを使用してテーブルの行を更新する