読者です 読者をやめる 読者になる 読者になる

ふんわりした生活

本を読んだり仕事でやってみたことなどの日常から、ふんわりと気づきなどを書いていきます

ネタ:たった1日で戦力外通告されるExcelの教科書 - 条件付き書式で棒グラフを作る

最近、やたらと書店で見かけるようになったExcel関係の書籍ですが、素晴らしいタイトルを見つけました。

たった1日で即戦力になるExcelの教科書

たった1日で即戦力になるExcelの教科書

「たった1日」で「即戦力」ですよ。 いいですね!!!

ということで、逆に「これはないだろう」というのを考えてみようかと思ってエントリしてみます。

ネタですので温かい気持ちで見てやってください。

条件付き書式で棒グラフを作る

最初に言っておきますが、グラフはExcelなのでグラフ機能で作りましょう。

完成すると、こんな感じになります。

f:id:m0t0k1m0t0k1:20151001150820j:plain

いかがでしょうか?ダメですね。 後輩や部下が作って持ってきたら、間違いなく「今日は疲れてるだろうから、早く帰りなさい」と言ってしまうかもしれません。

肝は条件付き書式です。

条件付き書式とは、特定のセルの条件によってセルの書式を変化させる機能のことです。

Googleスプレッドシートなんかもサポートするようになっていますが、Excelに比べたらまだまだかもしれません。

では、聞きたくないかもしれませんが作り方です。

数式を考える

今回は売り上げ列に100までの数字を入れられたらそれを割り算して1〜10の数字になるかで判定する関数にします。

売り上げ列は便宜上、A列にすることにします。 ヘッダー行を入れたいので行は2行目からスタートします。

左から順に右へ向かって伸びる棒グラフにしたいので、スタート位置を決めます。 今回はB列からスタートすることにします。

まずは売り上げ列のデータを10で割ります。

=A2/10

こうなりますよね。これだと小数点つきのデータを入れられると整数の1〜10と比較できないので丸めます。

=INT(A2/10)

これで整数に無理やり変更されます。 次に、IF関数を使って1だったら1を、違ったら0を返すようにします。

=IF(INT(A2/10)=1,1,0)

この数式が正しいかはB2セルへでも入れてやってみてください。 では、これを10までいきたいので右側へフィルしていきたいところですね。 でもそうすると一つ一つのセルに関数を書いていくようになります。

しかも、Excelは非常に優秀なので A2のところもB2、C2とずらしていってくれます優しさですね(棒)。

ということで、列だけを固定するようにします。 数式のうち「A2」のところを選択してF4キーを押していくと、「A」「4」のそれぞれに「$」マークが付きます。 これは「絶対位置」を表します 今回はAのところだけ固定したいので、「$A2」となったらOKです。

そうすると関数は以下のようになりますよね。

=IF(INT($A2/10)=1,1,0)

ですよね。これで右へずらして行ってもA列は固定されていますし、行方向へコピーペーストしていっても数字だけが増えていくようになります。

それでは次に比較する数値のところです。 ここも列は順に並んでいくことを考えれば「何列目なのか」を使うことで計算することができます。 ワークシート関数に「Column関数」というのがありまして、関数入力されているセルが何列目なのかを数値で返すという代物です。 今回はB列から1としたいので、このColumn関数の返す値から1引き算しておけば1〜10の数値にできますね。 そうすると、関数は以下のように変わりましたよ!

=IF(INT($A2/10)=Column()-1,1,0)

よし!関数は完成です。といいたいところですが、このままだと該当するセルしか1になりませんよね。 ということで、該当するセルの番号以上ならよしとしましょう!

=IF(INT($A2/10)>=Column()-1,1,0)

次は条件付き書式です。

条件付き書式を設定する

まずはB2セルに指定していきます。 Mac版でも可能ですので奇特な方はどうぞ。

B2で条件付き書式を選択します。

f:id:m0t0k1m0t0k1:20151001143648j:plain

「新しい仕分けルール」から指定していくのですが、「スタイル」を「クラシック」にして「数式を使用して、書式設定するセルを決定」にします。

f:id:m0t0k1m0t0k1:20151001143836j:plain

そうしたら数式を先ほど作成したものにします。 ですが、条件式にするようになるので結果が1になるときだけ該当するので「=1」を最後につけて以下のようにします。

f:id:m0t0k1m0t0k1:20151001144131j:plain

これで書式を適当につけたら完成です!

あとはこのB2を10になる列まで書式ペーストしていけばグラフにすることができます。

こんな感じに動作します。

f:id:m0t0k1m0t0k1:20151001150402g:plain

まとめ

この作り方のよろしくない点を挙げます。

  1. 棒グラフ以外作れない
  2. 色を変えるためにわざわざ条件付き書式のルール管理を変更する必要がある
  3. 入力元のデータが変わると関数を変更しなければならない
  4. 目盛りをつけることができない
  5. 「もっと細かく」とか言われると横に長すぎる

ということで、おとなしくグラフ機能を使いましょう。

# 一番大変だったのがアニメーションGIFつくるところだったという…