質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Q&A

解決済

3回答

693閲覧

2つのスプレッドシートからデータ抽出する方法

yu25

総合スコア3

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

0グッド

0クリップ

投稿2019/08/08 04:57

下記のような2つのスプレッドシートがあります。

データ1
電話番号     状況
090-1234-5678  OK    
090-2345-6789  OK
090-3456-7890  NG
090-4567-7890  OK

データ2
電話番号     状況
090-3456-7890  NG
090-4567-7890  OK
090-2345-6789  OK
090-1234-5678  NG 

これをデータ1のシート横に
データ1
電話番号     状況   電話番号    状況
090-1234-5678  OK   090-1234-5678  NG   
090-2345-6789  OK   090-2345-6789  OK
090-3456-7890  NG   090-3456-7890  NG
090-4567-7890  OK   090-3456-7890  NG

というように電話番号が完全一致した列をすべて返し、データ比較をしたいです。

現状は
=VLOOKUP(A2,IMPORTRANGE("キー","データ2!A:B"),1,FALSE)
=VLOOKUP(A2,IMPORTRANGE("キー","データ2!A:B"),2,FALSE)

をすべてのセルに入力していますが、実際のデータが行・列ともに多く全てのセルに関数を入力すると重くて…。
簡単にできる方法があればお教えください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

Query関数を使うと2つのシートデータを結合して表にできますよ。

疑似外部結合という形で。

投稿2019/08/09 01:48

officeforest

総合スコア412

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

arrayformulaを使えばある程度軽量化できると思います。書き方は以下の通り。
=arrayformula(vlookup(A2:indirect("A"&COUNTA(A1:A)),("キー","データ2!A:B"),1,false))
=arrayformula(vlookup(A2:indirect("A"&COUNTA(A1:A)),("キー","データ2!A:B"),2,false))
それぞれを対象列の2行目に入力してください。

投稿2019/08/08 07:32

hiroshi0240

総合スコア640

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hiroshi0240

2019/08/08 07:39

情報追加:それぞれの列に入れるのではなく、まとめてクエリ関数で配列を統合しても表示できます。書き方は以下の通り =QUERY({arrayformula(vlookup(A2:indirect("A"&COUNTA(A1:A)),("キー","データ2!A:B"),1,false)),arrayformula(vlookup(A2:indirect("A"&COUNTA(A1:A)),("キー","データ2!A:B"),2,false))},)
yu25

2019/08/08 10:05

回答ありがとうございます! query関数で出来れば助かります! 実際の抽出したいデータは15列ありますが、同じquery関数で可能でしょうか?
hiroshi0240

2019/08/08 10:37

試した事は無いですが、同じように15個のarrayformula関数を{}内に,区切りで格納すればいけるかと思います。
yu25

2019/08/08 11:37

さっそく試してみます! queryとvlookupの組み合わせ方は探しても見つからなかったので助かりました!m(__)m
guest

0

GAS(Google Apps Script)を使用するという手段があります。
GASでテーブルの比較と出力を行うスクリプトを作成し、任意のスプレッドシートにそのGASを実行するボタンを設置すれば、必要になった時にそのボタンを押せば結果が出力されます。

リアルタイムにデータの変更が結果に反映される必要がある場合、onEditイベントを使用すれば、シートを編集しても重くならず、かつだいたいリアルタイムに(多少ラグはあります)結果が反映されます。

投稿2019/08/08 05:01

uS_aito

総合スコア145

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yu25

2019/08/08 05:23

回答ありがとうございます。 作業自体は1週間に1回比較をするのでリアルタイムに反映はしなくて良いのですがGASは使用したことがなく、作成方法が分かりません。 GASの利用以外に方法はないでしょうか…。
uS_aito

2019/08/08 05:36

すみません、ちょっと思いつきません・・・。 表計算ソフトとしての機能で何かありそうな気はするんですが。
yu25

2019/08/08 05:38

かしこまりました! 表計算の機能で検索してみます。 ありがとうございました^^
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問