Excelで商品の管理や、部品の管理をするという方の多いのではないでしょうか。
そこで今回はこのやり方説明します。↓↓
商品や部品を品名や、商品の特徴を文書で説明することもいいですが、その物を写真で示したほうが、すべての人に理解しやすいですね。
物によっては、言葉で説明が難しい場合というのはたくさんありますね。
そこで、VLOOKUP関数のように、品番を入力すると、それに対応する写真を表示させる方法を紹介します。
先に言っておきますが、VLOOKUP関数は使いません。
データベースの作成
下記の図のような商品名のデータベースを作ります。
品番で検索し、品名と単価と画像が表示される仕組みを作ります。
データベースのテーブル化
作りました商品のデータベースをテーブル化します。
テーブル化の方法は【エクセルのリスト】新規リストを追加した時に再設定無しでリストに表示させる方法 で説明した方法と同様です。
入力されているセルを選びます。
今回はA1からD5までを選びます。
セルをアクティブした状態で、挿入のタブからテーブルをクリックします。
もしくは、アクティブした状態で「ctrl」キーを押しながら「T」を押します。
この時にテーブル名つけておくと便利です。
今回は「商品データベース」としておきます。
テーブル化しておくメリット
今回の画像検索にデータベースのテーブル化はどちらでも良いのですが、データが増えた時に再設定する必要なくデータをどんどん増やしていけるので、このタイミングでテーブル化しておくと便利です。
検索シートの作成
次に検索シートを作ります。
品番を指定して品名と単価と画像が表示されるようなシートを作ります。
今回は、以下のようなシートにします。
品番のリスト化
品番はリスト化し、リストから選択するようにします。
今回は、データベースをテーブル化したので、INDIRECT関数を使います。
=INDIRECT(“商品データベース[品番]”)
と入力します。
品名、単価の設定
品名と単価の設定はVLOOKUP関数を使います。
ここは、今回の本題ではないのでさらっと行きます。
品名のセルには、
=VLOOKUP(Sheet2!$A$2,Sheet1!$A:$D,2,FALSE)
単価のセルには、
=VLOOKUP(Sheet2!$A$2,Sheet1!$A:$D,3,FALSE)
となりますね。
画像のセルの設定
今回の本題に入ります。
品番にマッチした画像を画像のセルに表示させるには、INDEX関数とMATCH関数を使います。
INDEX関数とは
INDEX関数は指定した範囲の中で何行目で何列目かを指定して値を返す関数です。
今回のシートで例を挙げると、F3のセルに
=INDEX(A:D,3,2)
と入力すると”乾電池”と返されます。
この関数を説明すると、A列からD列の範囲の中で、3行目で2列目のセルということです。
※ここで言う3行目は表の見出しも1行に含みます。
なので、=INDEX(A:D,4,3)にすると「2000」と表示されます。
MATCH関数とは
検索値が検索範囲の中で何行目もしくは何列目に存在するかを返す関数です。
今回のシートで例を挙げます。
F3のセルに「B0002」と入力します。
F2のセルにMACTH関数を入力します。関数は以下の通りです。
=MATCH(F3,A:A,0)
この関数の意味は、F3の値はA列のどの位置に存在するかという意味です。
最後の0は完全一致の値をを返すという意味です。
よって、F2には”3”と表示されます。
この二つの関数を組み合わせて使用しますが、関数はあとで説明します。
画像のリンク
商品データベースの画像(どの画像でもOKです。)1枚をコピーします。
今回はスパナの画像をコピーします。
そして、検索シートの検索結果を表示させるセルに貼り付けます。
この時に、画像のサイズよりセルのサイズが大きい状態の方が操作がしやすいです。
画像を貼り付けたセルをアクティブにします。
その状態で右クリックしてコピーします。
任意のセル(今回はE2のセル)を選択し、右クリックから「形式を選択して貼り付け」から「リンクされた図」をクリックします。
すると、スパナの図が貼り付けらます。
これは、D2のセルのリンクが作られた状態です。
そのため、D2のスパナの画像をDeliteで削除するとリンクされた図も消えます。
仮に、D2のセルの「ABC」と入力するとリンクされた図も「ABC」と表示されます。
名前の定義
エクセルには特定のまとまりをに対して名前をつけて管理する、同じ分類のものとして利用するという機能があります。
この機能を画像表示で使用します。
数式のタブから名前の定義をクリックします。
名前を”画像表示”とします。
範囲とコメントはそのままでOKです。
参照範囲のところに、INDEX関数とMATCH関数を組み合わせた関数を入力します。
参照範囲の関数は以下の関数を入力してください。
=INDEX(Sheet1!$A:$D,MATCH(Sheet2!$A$2,Sheet1!$A:$A,0),4)
この関数の意味は、検索シートの品番で選ばれた値が、商品データベースの何行目あるかを返して、その行の4列目の値を返すというものです。
入力してOKをクリックしてください。
そして、検索シートのリンクされた図をクリックすると、「=$D$2」となっていますが、それを消して「=画像表示」と書き換えます。(※画像表示の前にイコールが必要です。)
そこで、画像が表示されれば完成です。
もし、「参照が正しくありません。」とエラーが表示が出た場合は、名前の定義の参照範囲の関数に誤りがあると思われます。一度確認してください。
よくあるのが、$マークを忘れることにより、参照するセルが変わってしまって範囲が変わり、そのようなエラーが表示されることがあります。
ここでエラーが表示されず画像が表示されれば完成です。
名前の定義の確認と修正方法
上記にように、「参照が正しくありません。」とエラーが表示が出た場合の修正方法は、以下の方法で行います。
数式のタブの「名前の管理」をクリックします。
名前の管理のウィンドウで、作成した画像表示を選択し、参照範囲が修正できます。
色、枠の調整
品番を選ぶと画像も合わせて表示されると思いますが、画像によってはバックがブルーであったり、淡いブルーの枠が表示されるものがあると思います。
これは、商品データベースのセルの状態がそのまま表示されるためです。
なので、商品データベースのテーブルデザインを変更することにより改善されます。
商品データベースの任意のセルの選ぶとテーブルデザインのタブを選び、テーブルスタイルを白色の物を選びます。
すると、バックがブルーになる現象は改善されました。
淡いブルーの枠が気になる方は商品データベースのD列を選び、セルの色を白にします。
それにより、淡いブルーの枠が消えます。
【エクセル画像表示】エクセルでVLOOKUPのように画像を表示させる方法。まとめ
今回の方法は、INDEX関数とMATCH関数、名前の定義といろいろな機能や関数を複合的に使用する必要があるため少し複雑になりました。
しかし、順序をおってこなしていけば、必ずできます。