Excelで画像を「検索」や「参照」の対象にすることができればとても便利です
- Excelで画像を「検索」や「参照」の対象にすることができればとても便利です
商品の在庫リストに、商品マスターから検索・参照して商品の「文字データ」だけではなく「画像データ」を表示できればとても便利です。
その他にも商品の「在庫の検索結果」に、商品の文字データだけでなく画像を表示させたいときがあると思います。
特殊な例ですが「建築申請」をする際に、建物各所(各部)の「写真」を資料に張り付ける場合があります。
大きな建物の場合など100枚単位の写真を張り付けることになり、管理が大変です。
このような時に、写真だけの「マスター」を作成しておき、資料(文書)の「名称」に応じた「写真」が表示されるように設定しておけば、写真の差し替え(撮り直し)した際にもスムーズに作業することができます。
Excelの標準機能では、「画像」のコントロールはできない
このようにExcelで画像を検索・参照できればとても便利ですが、残念ながらExcelの標準機能では数式で画像を表示させることはできないので、「画像」を検索・参照対象にすることはできません。
その理由は、Excelでは「セル」に文字や記号を「入力」することができますが、「画像」はセルに「貼り付ける(関連付ける)」ことしかできません。
そして画像は「セルに張り付けられている」のではなく、「画像に張り付けるセルが設定されている」のです。
そのため「数式(関数)でセルを指定」しても、そこに張り付けられている「画像」は表示されません。
数式(関数)を使って画像を表示させるためには、「画像自体に設定されている、貼り付けるセルを指定」する必要があります。
そこで、何らかの方法で「画像に設定されている、張り付けるセルを変更」することによって「画像」を検索や参照の対象にすることができます。
参照先の「画像」を表示させるには2種類の方法があります
- INDEX関数とMATCH関数を使う方法
- INDIRECT関数を使う使う方法
今回は使い方がVLOOKUP関数に近い「1のINDEX関数とMATCH関数を使う方法」を説明します。
「VLOOKUP関数」は画像の検索には使えない
リストを検索して表示するには通常「VLOOKUP関数」を使います。
しかし、LOOKUP関数は参照先の「値」を返してしまうので画像を表示させることはできません。
その代わりに使うのが「INDEX関数」と「MATCH関数」です。
この2つの関数を使えば、VLOOKUP関数と同じように「条件に合致したデータを取り出す」ことができます。
また今回は関係ありませんが、「INDEX関数」と「MATCH関数」の特徴は
- 「検索値」が左端にある必要がない
- 「行」と「列」で条件を変えることができる
以上のように、VLOOKUP関数にはない特徴があります。
2つの関数を組み合わせるので、難しいように感じますが、「DATA」を集計して転記する際などに用いればとても便利に使うことができます。
健康診断の結果を「配列を変えて」転記する
健康診断結果の「行」と「列」の両方の順番を変更して、転記することができます。
「INDIRECT関数」と「MATCH関数」についての詳しい説明は、また別の機会に説明します。
セルに画像を張り付ける
セルに画像を張り付ける際には注意が必要です。
1.画像を選択して、コピーします
2.セルに画像を貼り付けます
ドラッグして「配置(置く)」だけでは、見た目は同じでも「貼り付けられていない」ので注意する
INDEX関数とMATCH関数を使って、参照先の画像を表示する
標準の機能でも画像を「セル番地で指定して」表示させることはできます
- 任意の「画像」を選択
- 「コピー」する
- 表示させたい場所を選択
- 「貼り付ける」
- 画像を張り付けて「画像が選択されたままの状態」で、数式バーに「 = 」を入力し、続いて表示させたい画像の「セル番地」を入力する
- ※ 画像を選択して、画像が選択された状態で「画像」に数式(セル番地)を設定する(※「セル」に設定するのではない点に注意)
- ※ 数式バーで「手入力」ではなく、「クリックしてセル番地を選択」する場合は、「画像」ではなく「セル」を選択する点に注意
セル番地を「手入力」で変更してやれば「画像」が変わります
このように手入力で直接「セル番地」を指定して任意の画像を表示させることはできます。
しかし数式バーに「セル番地」ではなく「関数を用いた数式」を入力(※ 「画像」に関数を用いた数式を設定すること)はできません。
そこで、別の方法を用いて画像に関数を入力します。
「計算式を名前で登録」し、画像に設定する
Excelの機能には特定の「セル」や「範囲」に名前を付ける機能があります。
この機能を使って「関数を使った数式に名前を付けて」やり、その名前を「画像に設定」することで任意の画像を表示させる仕組みを作ります。
計算式に「名前」を付けて登録します
- 「数式タブ」を選択します
- 「名前の管理」をクリックします
- 名前の管理ボックスで「新規作成」をクリック
- 名前の編集ボックスで名前を「参照画像」とします
- 参照範囲に数式を入力します
数式「= INDEX( ”画像の範囲",MATCH( "検索対象のセル","機種名の範囲",0))」
具体的な数式は下記の内容です
検索画面の「画像」に、名前を付けた「数式」を設定します
- 検索した画像を表示するセルを選択し「画像を張り付ける」(※ 貼り付ける画像はなんでもよい)
- 必ず「画像が選択された状態」で数式バーに「 = 」を入力し、続いて名前を付けた数式「参照画像」と入力する
「機種名」を変更すれば「画像」も変わります
「マスター」の画像がそのまま反映されるので注意が必要です
「マスター」に罫線を引いていたり、シートに目盛線が表示されている場合、そのまま参照先にも表示されてしまいます。
マスターは「枠線」を表示しない設定にしておいてください
表示する画像の大きさは簡単に変更できます
「リスト入力の設定」をしておけば簡単に「画像」を切り替えることができます
今回はINDEX関数とMATCH関数を使って、画像を検索して表示する方法を説明しました。
その2ではINDIRECT関数を使う方法を説明します。