Googleドキュメントで別のシートから値を検索するにはどうすればよいですか?


16

次のようなページがあります。

╔═══╦════════╦══════╦═══╗
║ A ║ B      ║ C    ║ D ║
╠═══╬════════╬══════╬═══╣
║ 1 ║ User A ║ 144  ║   ║
║ 2 ║ User B ║ 5478 ║   ║
║ 3 ║ User A ║ 2156 ║   ║
╚═══╩════════╩══════╩═══╝

列Dに別のページのデータを入力します:

╔═════╦══════╦═══╦════════╗
║ A   ║ B    ║ C ║ D      ║
╠═════╬══════╬═══╬════════╣
║ ABC ║ User ║ B ║ User B ║
║ DEF ║ User ║ A ║ User A ║
╚═════╩══════╩═══╩════════╝

注:列Dは、列Bと列Cの連結です。

この場合、ページ1の列Dに、ページ1の列AからPage1!BからPage2!Dに一致するデータを入力する必要があります。これにより、次の結合テーブルが生成されます。

╔═══╦════════╦══════╦═════╗
║ A ║ B      ║ C    ║ D   ║
╠═══╬════════╬══════╬═════╣
║ 1 ║ User A ║ 144  ║ DEF ║
║ 2 ║ User B ║ 5478 ║ ABC ║
║ 3 ║ User A ║ 2156 ║ DEF ║
╚═══╩════════╩══════╩═════╝

Googleスプレッドシートでこれを行うにはどうすればよいですか?



1
よく分かりません。他の質問は、別のドキュメントへのリンクに関するものであり、解決策は異なります。
ChrisF

回答:


23

VLOOKUP関数を使用する必要があります

Sheet1には次のものがあります 代替テキスト

そしてこれはシート2

代替テキスト

Sheet2の値に範囲を割り当て、範囲LookupValuesを呼び出しました。

次に、シート1の列Dの式で次のようにします。 代替テキスト

式の内訳は次のとおりです。

  • A3はルックアップ範囲で見つける値です
  • LookupValuesは検索する範囲を指定します
  • 3値(A3)が範囲(LookupValues)で見つかった場合に返す範囲のインデックス

更新

範囲を作成するには、スプレッドシートの左上にある正方形を右クリックして、名前付き範囲の定義を選択します

代替テキスト

次に、範囲を認識/参照するニックネームまたはエイリアスと、その範囲で使用可能にするセルの範囲を入力します。

代替テキスト

その後、従来のSheet2!A1:T100方法ではなく名前でセル範囲にアクセスできます。

編集2

更新された質問に答えて、式を次のように変更する必要があります。

=VLOOKUP(B1, LookupValues, 1)

これにより、Sheet1からB1の値が範囲内で検索されます。例:「ユーザーA」、その後、列1にある値を返します例「ABC」


LookupValuesに使用している範囲を説明してください。また、実際の問題をよりよく反映するために例を少し変更しました。
意味のある

@Senseful-回答を更新しました。さらに問題がある場合はお知らせください。
codingbadger

おかげで、それは動作します。紛らわしい部分は、2列目の情報を検索するために使用する列を指定しないことです。代わりに、2番目のパラメーターとして指定された範囲の最初の列を使用します。スプレッドシートの最後に列を複製して、検索に使用できるようにしました。
意味のある

はい、MS Excelでも同じです。私はいつも、範囲を提供するのではなく、「この列から検索し、列を見て、この列を教えてください」と言ってみました。それは奇妙なものです:)
codingbadger

Googleドキュメント(スプレッドシート)では、これは右クリックメニューで「名前付き保護範囲」と呼ばれるようになりました。
ingh.am 14

3

次を使用できます:

index(reference, [row], [column])

どこ:

reference = Sheet2!$A$1:$A$2

row = match(B1,Sheet2!$D$1:$D$2,0)

column = 1

セルD1は次の値を取得します。

= index(Sheet2!$A$1:$A$2,match(B1,Sheet2!$D$1:$D$2,0),1)

これらの値をセルD2およびD3にドラッグします。

もちろん、2番目のシートはSheet2と呼ばれます。


match(B1,Sheet2!$D$1:$D$2,0)

...セルB1のユーザー名が一致するSheet2の配列D1:D2の行番号を返します。


2

データが同じスプレッドシートの異なるシート内にある場合、単純なVLOOKUP数式を使用して一致を行うことができますが、codingbadgerの例には引数がありません(完全一致のみを配信する数式には「FALSE」が必要です。 tが異なる場合、または欠落している場合は動作します)。

使用例:VLOOKUP(10003、A2:B26、2、FALSE)

構文:VLOOKUP(search_key、range、index、[is_sorted])

search_key-検索する値。たとえば、42、「猫」、またはI24。

range-検索のために考慮する範囲。範囲の最初の列で、search_keyで指定されたキーが検索されます。

index-返される値の列インデックス。範囲の最初の列の番号は1です。

インデックスが1と範囲内の列数の間にない場合、#VALUE!返されます。is_sorted-[オプション-デフォルトでTRUE]-検索する列(指定した範囲の最初の列)がソートされているかどうかを示します。

is_sortedがTRUEまたは省略された場合、最も近い一致(検索キー以下)が返されます。検索列のすべての値が検索キーより大きい場合、#N / Aが返されます。

is_sortedがTRUEに設定されているか省略されており、範囲の最初の列がソートされていない場合、誤った値が返される可能性があります。

is_sortedがFALSEの場合、完全一致のみが返されます。一致する値が複数ある場合、最初に見つかった値に対応するセルのコンテンツが返され、そのような値が見つからない場合は#N / Aが返されます。

ここでのライブ例:https : //www.youtube.com/watch?v=WbWoJgdeR-s

完全なガイドを参照してください:https : //support.google.com/docs/answer/3093318?hl=en

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.