はじめに
ある調理器具メーカー。
上司 「これ、春の新製品カタログ!」
私 「春らしい柄のキッチン用品ですね。」
上司 「でしょ。で、頼みたいんだけど、この中から桜柄の商品だけピックアップして、Googleスプレッドシートで 品番 / 品名 / JANコード の一覧を作ってくれない?」
上司 「これ、製品マスタのスプレッドシート。使ってね。」
私 「了解です!」
・・・
私 「よし、まずはカタログから桜柄を探して該当商品に印を付けよう。」
・・・
私 「商品5点に印を付けたよ。次は印を付けた商品の品番をスプレッドシートに入力して、製品マスタから 品名 / JANコード を引っ張ってこよう。」
やりたいこと
製品マスタから、品番を元に、「 品番 / 品名 / JANコード」を一覧で取得したい。
環境
Googleスプレッドシート
使った関数、機能
・VLOOKUP関数(列の検索)
・IMPORTRANGE関数 (他のシートから指定した範囲のデータを読み込む。Excelには無い関数)
・値のみ貼り付け
製品マスタの項目と抽出したい項目
【製品マスタの項目】
生産開始日 / 生産工場 / 品番 / 品名 / 価格 / JANコード
【一覧として抽出したい項目】
品番 / 品名 / JANコード
【元となる項目】
品番
手順
1.ひな形をつくる
1-1.
1行目に「品番 / 品名 / JANコード」の項目を作る(シート名=「桜柄一覧」)
2.「製品マスタ」シートをコピー
「製品マスタ」のスプレッドシートから製品マスタのシートをコピーし、作業しているスプレッドシートの新規シートにペーストする。(シート名=「シート1」から「製品マスタ」に変更。)
3.各セルにVLOOKUP関数を入力する。
※スプレッドシートのVLOOKUP関数 = VLOOKUP( 検索キー , 範囲 , 指数 , 並べ替え済み )
※「並べ替え済み」=「FALSE」に設定する。FALSE の場合、検索キーと完全一致のみが返される。一致する値が複数ある場合は、最初に見つかった値に対応するセルの内容が返され、一致する値が見つからない場合は #N/A が返される。
3-1.
セル(B2)に移動し、「挿入>関数>参照>VLOOKUP」をクリック。下のように表示される。
3-2.
検索キー(今回は品番)を入力する。
品番のセルである(A2)をクリックし、「,」を入力。すると、下のように表示される。
3-3.
範囲を入力する。別シート(「製品マスタ」シート)の範囲を指定するには、IMPORTRANGE関数を使う。書き方は
「IMPORTRANGE(“スプレッドシートURL”,”範囲”)」
※スプレッドシートURL = https://docs.google.com/spreadsheets/d/○○○○○○/edit#gid=○○○○○○
!注1!この「スプレッドシートURLは、「桜柄一覧」シートのURLではなく「製品マスタ」シートのURLを入力する。スプレッドシートは、同ファイルのものでもシートが変わるとURLも変わるので、注意!ここを間違えるとエラーになる。
**!注2!**URLを囲うダブルクオーテーションを「“” (全角)」としないよう注意。正しくは「"" (半角)」。間違えるとスプレットシート内で「//」の部分が赤くなり、「このコンテキストではこの演算子を解析できません。」というエラーが出てしまう。
※範囲=" シート名 ! 起点セル : 終点セル "=(例)"製品マスタ!C2:F16"
3-4.
「,」を入力し、指数を入力する。範囲でC列を起点にしていた場合、下図「(製品マスタシートの)品名の列」を指数としたいなら、指数は「2」。(C列を1列目と数えるので)
3-5.
「,」を入力し、並べ替え済みを入力する。完全一致検索がしたいので、「FALSE」と入力。
3-6.
最終的に出来上がった関数(セル B2)は下記の通り。
=VLOOKUP(A5,IMPORTRANGE("https://docs.google.com/spreadsheets/d/〇〇〇〇〇/edit#gid=0","製品マスタ!C2:F16"),2,FALSE)
3-7.
関数を全て入力し終わると、関数を入力したセルに「Loading...」という文字が表示され「...」部分が点滅する。しばらく待つと、下記のように表示される。
→「アクセスを許可」をクリック。
→下記の通り、品名が表示される。成功!
3-8.
同じ方法で他のセルにも関数を入力する。(コピペ利用して)
4.「値のみ貼り付け」をして仕上げる
できた表はセルの中身が関数のままなので、表全体をコピーし、「特殊貼り付け>値のみ貼り付け」をクリックして値のみの表をペーストする。表が完成。
完成した表を提出用の状態にして、提出版完成。
要確認
今回は「製品マスタ」シートを同ファイルにコピペして使用したが、コピペせずとも他のスプレッドシートファイルにある「製品マスタ」の情報をそのまま参照する方法もあるはず。本来ならIMPORTRANGE関数の中のURLを他のスプレッドシートファイルのURLにすれば参照できるはずだが、今回は「権限が無い」というエラーが出て参照できなかった。ファイル自体の共有設定を変更する必要があるのかもしれない。
他ファイルから参照する方法について、今後探ってみる。(2021/04/25)