こんばんわ。
Excelについての記事は今回が初めてとなります。
できるだけ実用的な題材で書いていこうと思っています。
ではタイトルの通り条件に対応した画像をExcelに表示させる方法をご紹介したいと思います。
まず、どういうこと?
どういう処理をするの?という話ですが実際のシートで説明します。
※シート名は『評価』として進めます。
②目標に対して『達成』か『未達』なのかを契約数から判断します。(if関数)
③結果画像を表示します。
正直、こんな画像いるの?と思う方もいらっしゃるかと思いますが、多くの会社ではVM(VisualManagement)を採用していますので、その際にこういうものが必要になってきます。
では、解説に入ります。
②目標に対して『達成』か『未達』か(if関数)
コレは、Excelで関数を使ったことがある方はお馴染みの『if関数』を利用します。
C3のセルに下図のように入力します。
=IF(B3>=50,”達成”,”未達”)
if関数がよくわからない方のために少し紐解いてみましょう。
「もし◯◯が✕✕なら△△する。そうじゃないなら□□する。」
これがif関数です。
先程の数式を日本語に訳すなら、「もし山田さんの契約数が50以上なら”達成”と表示し、そうじゃないなら”未達”と表示する」という意味になります。
③評価の結果を画像で表示する。
まず画像に名前をつけます。セルであれば番地で呼び出せるのですが、画像となるとそうはいかないのでこういった作業が必要になります。
画像が入っているセルを選択し、数式ダブの中から名前の定義をクリックします。
データ範囲の名前は達成、範囲は画像が入っているセルを選択します。
※ 定義する名前は先程if関数で表示するもの(達成・未達)と同じにしてください。
(if関数の結果と連動します。)
未達の方も同じように定義してください。
次に、データの呼び出すため作業です。山田さんを例にして作ってみます。
先程と同じように名前の定義まで行きます。(とりえず選択するセルはどこでもいいです。)
データ範囲の名前は山田さんの評価なのでyamadaとしてみます。
セルの範囲は、=indirect(評価!$C$3)と入力します。(C3のセルは山田さんが達成しているかどうか出ているセルです。)
さて、このindirect関数ってなんやねん!という話ですがこれはもうちょっとあとで解説したいと思います。
画像を設置しましょう!
画像の入っているセルをコピーします。※ 画像自体はコピーしないでください。
ホームタブの貼り付けのメニューからリンクした図を選択して貼り付けます。
貼り付いた画像を選択すると、数式バーに=$H$4のように番地が入っています。
これを先程定義したyamadaに書き換えます。
これですべての作業が完了しました。
試しに、山田さんの契約数を50以上にすると黄色いニコニコマークに変化します。
内容を整理してみよう!
先程、解説すると言ったindirect関数の役割も含めて何をしたのか全体の流れを確認してみましょう。(山田さん例)
こういった仕組みで、画像が変更されるわけですが、おわかりいただけましたでしょうか?
質問などはコメント欄やメールで受け付けておりますので、不明な点がご質問ください!
最後、貼り付けた画像名を定義した名前に変更すると「参照が正しくありません。」と表示してしまいます。原因を教えていただけないでしょうか?
定義した名前と、同じ名前を入力されていますでしょうか?
もし、解決できなければ、当ブログのメールアドレス(info@ryotr.com)にファイルを送信していただければ内容を確認いたします。
わかりやすい解説、ありがとうございます。
ちなみにこちらは下記のようなパターンでも反映できますか?
例:標準を20%としたときに
標準進捗以上 晴れマーク(図)
標準進捗に対して90%以上 晴れ曇りマーク(図)
標準進捗に対して80%以上 曇りマーク(図)
標準進捗に対して80%未満 曇り雨マーク(図)
ご回答いただけますと幸いです。
Excel2016を使用しておりますが、できませんでした… 最後の書き換えのところで「参照が正しくありません。」となり次に進めません。現在も可能な解決方法はないでしょうか。