web-dev-qa-db-ja.com

一致する場合、別のスプレッドシートからデータを取得するGoogleシート

だから私は何かにこだわっています。 2つのスプレッドシートがあり、それぞれの列Aは類似していますが同一ではありません。一部の値は一方のスプレッドシートにあり、他方にはありません。

列Aに一致する値があるかどうかに基づいて、スプレッドシート2からデータを取得することは可能ですか?

したがって、スプレッドシート2には次のようなものがあります。

A            B
item1       100
item2       200
item3       300

スプレッドシート1には次のようなものがあります。

A            B
item1       NULL
item2       NULL
item4       NULL

スプレッドシート2にあるかどうかに基づいて、スプレッドシート1のB列に入力します(この例では、アイテム1と2に入力します)

VLOOKUPおよびIfステートメントを試しましたが、どこにも到達していないようです。

16
Ed Jones

オプションのis_sortedパラメータをVLOOKUPに設定すると、FALSE関数がこれを実行し、最も近い一致が返されないようにします。

以下に例を示します。まず、ソースシートSheet1。

enter image description here

Sheet2では、VLOOKUPを使用して、次の式(この場合はB1から)を使用して、Sheet1から情報を取得します。

=vlookup(A1,Sheet1!$A$1:$B,2,false)
         ^  -------------- ^    ^
         |     |           |    +-- is_sorted
         |     |           +------- return value from col 2
         |     +------------------- Range for search
         +------------------------- search_key

enter image description here

わかりましたが、item4の#N/Aはきれいではありません。 VLOOKUPIFERRORでラップすることにより、これを抑制することができます。 IFERRORのオプションの2番目の引数を省略すると、最初の引数がエラーと評価された場合、空白のセルを返します。

=IFERROR(vlookup(A1,Sheet1!$A$1:$B,2,false))

この例では、データは現在のスプレッドシート内の別のシートだけでなく、別のスプレッドシートからのものです。問題ありません-VLOOKUPは、データソースとしてIMPORTRANGEと組み合わせることができます。

=IFERROR(vlookup(A1,IMPORTRANGE("<sheet-id>","Sheet1!A1:B"),2,false))

enter image description here

33
Mogsdad

Googleスプレッドシートの最近の変更により、AdamLとMogsdadの式は、2つのシートを接続した場合にのみ機能するようです。

インポート範囲に属さない部品を数式から削除します。

=IMPORTRANGE("<URL other sheet>";"Sheet1!A2:C")

REF#エラーが表示されますが、エラーにカーソルを合わせると接続を確認できます。

すべてのセルで機能することを確認したので、数式全体をコピーして貼り付けることができます。

=IFERROR(vlookup(B128;IMPORTRANGE("<URL other sheet>";"SHeet1!A2:C");3;false);)

公式ドキュメントに従って、他のシートの完全なURLが必要です。

connect the 2 Google sheets

8
Guy Forssman