【スプレッドシート】品番を元に製品マスタから情報一覧を取得　（VLOOKUP関数/IMPORTRANGE関数/値貼付け）

#はじめに
ある調理器具メーカー。
上司　「これ、春の新製品カタログ！」
私　　「春らしい柄のキッチン用品ですね。」
上司　「でしょ。で、頼みたいんだけど、この中から桜柄の商品だけピックアップして、Googleスプレッドシートで 品番 / 品名 / JANコード の一覧を作ってくれない？」
上司　「これ、製品マスタのスプレッドシート。使ってね。」
私　　「了解です！」
・・・
私　　「よし、まずはカタログから桜柄を探して該当商品に印を付けよう。」
・・・
私　　「商品5点に印を付けたよ。次は印を付けた商品の品番をスプレッドシートに入力して、製品マスタから　品名 / JANコード　を引っ張ってこよう。」

#やりたいこと
製品マスタから、品番を元に、「 品番 / 品名 / JANコード」を一覧で取得したい。

#環境
Googleスプレッドシート

#使った関数、機能
・VLOOKUP関数（列の検索）
・IMPORTRANGE関数 （他のシートから指定した範囲のデータを読み込む。Excelには無い関数）
・値のみ貼り付け

#製品マスタの項目と抽出したい項目
【製品マスタの項目】
生産開始日 / 生産工場 / 品番 / 品名 / 価格 / JANコード
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/498057/71c24f55-ba8f-311b-5a54-9b995b1a4485.png)

【一覧として抽出したい項目】
品番 / 品名 / JANコード

【元となる項目】
品番

#手順
##1.ひな形をつくる
1-1.
1行目に「品番 / 品名 / JANコード」の項目を作る（シート名＝「桜柄一覧」）
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/498057/31cf1bc7-c19f-7e93-a24c-6108e7099a91.png)

1-2.
1-1のひな形に品番を入力する
![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/498057/da4e3df0-c404-7f70-2157-2a6fd6407762.png)

##2.「製品マスタ」シートをコピー
「製品マスタ」のスプレッドシートから製品マスタのシートをコピーし、作業しているスプレッドシートの新規シートにペーストする。（シート名＝「シート1」から「製品マスタ」に変更。）

##3.各セルにVLOOKUP関数を入力する。
　※スプレッドシートのVLOOKUP関数 = VLOOKUP( 検索キー , 範囲 , 指数 , 並べ替え済み )
　※「並べ替え済み」=「FALSE」に設定する。FALSE の場合、検索キーと完全一致のみが返される。一致する値が複数ある場合は、最初に見つかった値に対応するセルの内容が返され、一致する値が見つからない場合は #N/A が返される。

3-1. 
セル(B2)に移動し、「挿入>関数>参照>VLOOKUP」をクリック。下のように表示される。
![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/498057/e7ebe047-84c9-f3e5-8281-e16e8d44e3e4.png)

3-2.
検索キー(今回は品番)を入力する。
品番のセルである(A2)をクリックし、「,」を入力。すると、下のように表示される。
![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/498057/2f4e6308-eb4e-c9a3-c7bc-9824e5d11586.png)

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列目と数えるので）

【「製品マスタ」シート】
![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/498057/b3e4acbd-8f8c-6721-a2b8-220a086da494.png)


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...」という文字が表示され「...」部分が点滅する。しばらく待つと、下記のように表示される。
![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/498057/03d416a2-2048-6168-cc5e-5e454a50af3e.png)
→「アクセスを許可」をクリック。
→下記の通り、品名が表示される。成功！
![110.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/498057/629a1e32-5811-3e40-2d5f-fb21292d75b8.png)

3-8.
同じ方法で他のセルにも関数を入力する。(コピペ利用して)

##4.「値のみ貼り付け」をして仕上げる
できた表はセルの中身が関数のままなので、表全体をコピーし、「特殊貼り付け>値のみ貼り付け」をクリックして値のみの表をペーストする。表が完成。
完成した表を提出用の状態にして、提出版完成。

【完成品】
![20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/498057/6436b8ed-d342-9a64-bb75-893846e90a61.png)


#要確認
今回は「製品マスタ」シートを同ファイルにコピペして使用したが、コピペせずとも他のスプレッドシートファイルにある「製品マスタ」の情報をそのまま参照する方法もあるはず。本来ならIMPORTRANGE関数の中のURLを他のスプレッドシートファイルのURLにすれば参照できるはずだが、今回は「権限が無い」というエラーが出て参照できなかった。ファイル自体の共有設定を変更する必要があるのかもしれない。

他ファイルから参照する方法について、今後探ってみる。（2021/04/25）