3/18/2015

Excel2013。Conditional Formatting。条件付書式のデータバーを数値に重ねない方法


Excel2013。条件付書式のデータバーを数値に重ねない方法

条件付き書式

Excelの条件付書式にデータバーが登場したのが2007の時からですが、
この条件付書式のデータバー。
設定するのは簡単なのですが、数値の上に表示されてしまって、印刷したり、画面で見たときも、
わかりにくいので、イマイチ使えないという声を、企業研修やマンツーマン講習のときに、
耳にすることがあります。

そこで、今回は、
ちょっとしたテクニックで、条件付書式のデータバーを棒グラフのように数値に重ねずに、
別のセルに表示する方法をご紹介します。

まずは、下記のデータがあります。

このC列の4月売上に、条件付書式のデータバーの設定をしてみます。

C3:C7を範囲選択すると、クイック分析が表示されてきますので、この中の書式にある、

データバーをすると、あっという間に条件付き書式のデータバーが設定されました。
Excel2010までだと、クイック分析機能がないので、
ホームタブから条件付き書式を選択してとなっていくわけですが、
Excel2013のクイック分析機能は、とても便利な機能のひとつだと思えます。

しかし、これでは、文字の上のデータバーが重なってしまっていて、見にくいですよね。

そこで、まずは、D列に、4月売上のデータをセル参照させて、
条件付き書式のデータバーを設定していきます。

D3には、=C3という数式が設定されています。これを、D7までコピーします。

では、D3:D7を範囲選択して、先ほどと同様に、クイック分析を使用して、
データバーを設定しましょう。

これでは、先ほどと何にも変わらないじゃないかと思う人もいると思いますが、
ここからがポイントになります。

要するにこのデータバーの数値を表示しなくすればいいわけです。
間違えても、削除するわけではありませんので、間違えないようにしてくださいね。

では、D3:D7を範囲選択します。
ホームタブの条件付き書式にある、ルールの管理をクリックします。

すると、条件付き書式ルールの管理ダイアログボックスが表示されてきますので、

ルールの編集ボタンをクリックしましょう。

書式ルールの編集ダイアログボックスが表示されますので、
"ルールの内容を編集してください"にある。

棒のみ表示にチェックマークをつけましたら、OKボタンをクリックしましょう。

条件付き書式ルールの管理ダイアログボックスに戻ってきますので、
OKボタンをクリックすると、数値が表示されなくなっていますね。

このテクニックを知っていると、スパークラインではありませんが、
セル内に棒グラフを表示することが出来るようになります。

ちょっとした方法ですが、覚えておくと、使えるテクニックの一つですね。
当然、セル参照にしていますから、品川の数値を1500に変えるだけで、
データバーが連動して変わります。

3/15/2015

Excel。ROUND関数を使わなくても表示形式のユーザー定義でどうにかなる


Excel。ROUND関数を使わなくても
表示形式のユーザー定義でどうにかなる

ROUND関数&ユーザー定義


縦横のクロス集計などで、各月の売上金額が一の位まできちんと出てなくてもいい場合、
例えば、12,345を12,000と表示してもいい場合に、
だいたいROUND関数を使っていると思いますが、ROUND関数ですと、
元のデータを用意しておいてそのデータから、
ROUND関数を使って別のセルにデータを作ってクロス集計をする方法が多いと思います。

実は表示形式のユーザー定義を使うと、桁区切り(,)での四捨五入になりますが、
同じようにすることが出来るので、今回は、それを紹介したいと思います。

A2:E7までが通常の桁区切りをした数値でこれが一の位まで表示されていますが、
G2:K7は、A2:E7の数値を基にROUND関数を使って、百の位を四捨五入しています。

そして、A11:E16。これは見た目は、ROUND関数を使っているようにみえますが、
表示形式のユーザー定義で表示しております。この方法の利点は、
表示形式を変えているので元データを用意する必要もなく、
正しい数値もセルに入力されたままです。

では、G2:K7のROUND関数からやってみましょう。
下記のデータがあります。

H3をクリックして、ROUND関数のダイアログボックスを表示しましょう。

数値には、B3を入力します。
桁数ですが、何処の桁から表示したいのかということになるので千の位から表示したいので、
前三桁は表示したくないので-3を入力します。

ただ、この桁数ですが、わかりにくいので、ネットとかで調べても結構なのですが、
取りあえず、数値を入れてみて、どのような結果になるのかをみて、
数値を修正したほうが早いと思います。

あとは、OKボタンをクリックしましょう。

その後は、オートフィルハンドルを使って数式をコピーしましょう。

最後に、K列と7行目をオートΣボタンを使って合計を算出しましょう。

これで、ROUND関数は完成ですね。
ROUND関数自体を作るには簡単なのですが、元のデータが必要になることと、
桁数のところで、悩む可能性があるのが弱点ですね。

そして、表示形式のユーザー定義を使ってみましょう。

A11:E16は、B2:E7の表を、コピーしたものです。今回は比較できるようにコピーをしましたが、
本来は不要です。

なお、E列と7行目には、オートΣボタンで合計を算出しております。
では、A11:E16を範囲選択して、セルの書式設定ダイアログボックスを表示しましょう。

表示形式の分類をユーザー定義にして、種類に、
#,##0,",000"
と入力します。あとは、OKボタンをクリックしてみます。

これで、完成です。ROUND関数と同じようになりましたね。
桁区切りのところでないと出来ないという欠点はありますが、表示形式を変えただけなので、
元の数値はそのままなというメリットと、
関数を使わないでいいという点がお勧めかと思いますので、
このようなテクニックを覚えておくと、ちょっとした時に役に立つと思いますよ。

3/12/2015

Excel。Diary。スケジュール帳。期間の日付を入力するとセルが自動的に塗りつぶすガントチャート


Excel。スケジュール帳。
期間の日付を入力するとセルが自動的に塗りつぶす
ガントチャート

IF関数+条件付き書式+ユーザー定義

今回はスケジュール帳やガントチャートなどを作るときに、
開始日と終了日を入力するとその期間のセルを
自動的に塗りつぶすことが出来たら便利ですよね。

今回はその方法をご紹介したいと思います。
こんなものを作っていきます。

C列の開始日からD列の終了日までを自動的にセルを塗りつぶしてくれるようにする方法を
ご紹介というわけですね。

では、まずフレームを準備しましょう。下記のようなところまで作成しておきます。

E3からはじまる日付ですが、ここには、2015/10/1と入力しておいて、

表示形式のユーザー定義を使って1日と表示するようにしております。

念のため確認しておきましょう。E3をクリックして、
セルの書式設定ダイアログボックスを表示しましょう。

分類をユーザー定義にして、種類を d”日”と入力すれば、日のみを表示することが出来ますね。
ここを1日と入力している訳ではないんですね。

あとは、今回はN3までオートフィルハンドルを使ってコピーしております。

さて、色を付けるために判断が必要となりますので、開始日から終了日の間だったら、1。
そうでなかったら、空白という判断をさせてみたいと思います。

E4をクリックして、IF関数のダイアログボックスを表示しましょう。

まずは、開始日が日付より大きいかを判断させますので、
C4>E3と入力しますが、このあと、縦方向・横方向のそれぞれにオートフィルハンドルを使って
コピーするので、ややこしくなるかもしれませんが、複合参照を設定していきます。

ですから、論理式には、
$C4>E$3
となります。

真の場合には、空白ですから、""と入力します。
偽の場合には、今度は終了日より小さいのかを判断させる必要がでますので、
IF関数をネストでいれていきます。

論理式には、$D4>=E$3
真の場合には、1
偽の場合には、""と入力します。

あとは、OKボタンをクリックして、オートフィルハンドルを使って数式をコピーします。
ちなみに、数式は、
=IF($C4>E$3,"",IF($D4>=E$3,1,""))
ですね。

すると、それぞれの工程の開始日から終了日までの範囲が1と入力されているのが
確認できますね。

今度は、条件付き書式を使って、1だったら、赤色でセルを塗りつぶす設定をしていきます。

E4:N6を範囲選択をして、ホームタブの条件付き書式から、セルの強調表示ルールの中にある、
指定の値に等しいをクリックします。

指定の値に等しいダイアログボックスが表示されてますので、
書式からユーザー設定の書式を選択します。

今度は、セルの書式設定ダイアログボックスが表示されますので、塗りつぶしタブの中から、
赤色を選択しましょう。

OKボタンをクリックすると、先程の指定の値に等しいダイアログボックスに戻りますので、

ここもそのまま、OKボタンをクリックしましょう。
1が表示されているセルのところに赤色の塗りつぶしが設定されましたね。

あとは、1を見えなくすればいいので、表示形式のユーザー定義で処理していきますので、
改めて、E4:N6を範囲選択をして、セルの書式設定ダイアログボックスを表示しましょう。

表示形式タブの分類はユーザー定義で、
種類には、;;;(セミコロンを3個)入力してOKボタンをクリックしてみると。

1が見えなくなりましたね。
これで、開始日と終了日を設定するだけで、
自動的にセルが塗りつぶすことができる事が出来るようになりました。

このように、関数と条件付き書式とユーザー定義の表示形式をミックスすると、
こんなことも出来るようになるですよ。

3/08/2015

Excel。Day of the week 。曜日を求める方法をまとめてみました。


Excel。曜日を求める方法をまとめてみました。

ユーザー定義+TEXT関数+WEEKDAY関数+CHOOSE関数


最近、Excelでスケジュール関係の表をつくるので、
曜日の算出方法に関してよくご質問をうけるので、
今回は、代表的な4パターンをまとめてご紹介しようと思います。

このようなことをやっていきます。

B列には、2015年3月1日~3月10日までが入力されております。
最初にご紹介するのは、ユーザー定義を使った方法をご紹介していきます。
C3をクリックして、B3を参照する計算式を作ります。

=B3と入力して確定します。当然3月1日と表示されます。

そうしましたら、C3のセルをアクティブにしたまま、
セルの書式設定ダイアログボックスを表示しましょう。

分類をユーザー定義で、種類をaaaと入力してOKボタンをクリックしましょう。
すると、C3には日と表示されましたね。

あとは、C12までオートフィルハンドルを使ってコピーしましょう。

これで、ユーザー定義は完成しました。
和暦の曜日の省略が aaa 
和暦の曜日がaaaa
西暦の曜日の省略が ddd
西暦の曜日がdddd

となっていますので、用途に合わせて、aが3個なのか、4個なのかということになります。

この方法は、一番簡単だと思いますが、
条件付き書式を使って土曜日を青色で塗りつぶそうとしても、簡単に出来ないのが欠点ですね。
あくまで、表示形式を変えただけですから。

次にご紹介するのはTEXT関数。
これは、結構簡単ですし汎用性もあるので、オススメですね。
D3をクリックして、TEXT関数のダイアログボックスを表示しましょう。

値には、日付が入っているB3を入力します。
表示形式には、先程ご紹介した、”aaa”と入力します。
あとは、OKボタンをクリックしましょう。
そして、オートフィルハンドルを使って数式をコピーしましょう。

これが、TEXT関数を使った曜日の算出方法でした。とっても簡単ですね。
当然のことながら、表示形式を、”aaaa”と入力すれば、日曜日と表示されますよ。

さて、次に紹介するのが、WEEKDAY関数ですが、
このWEEKDAY関数は曜日を数値として返してくるので、そのままでは使えません。

たとえば、日曜日を1として返してきますので、これを日と表示するためには、
IF関数とのネストで処理をする必要があります。

E3をクリックして、IF関数のダイアログボックスを…と書いていきたいのですが、
長すぎますので、数式を下記に記載します。

=IF(WEEKDAY(B3,1)=1,"日",IF(WEEKDAY(B3,1)=2,"月",IF(WEEKDAY(B3,1)=3,"火",IF(WEEKDAY(B3,1)=4,"水",IF(WEEKDAY(B3,1)=5,"木",IF(WEEKDAY(B3,1)=6,"金",IF(WEEKDAY(B3,1)=7,"土","")))))))


う~む。TEXT関数と比べてみても、大変なのが一目瞭然。
アイディアはいいのですが、これでは、自力で曜日を入力したほうが早いでしょうね。

そこで、CHOOSE関数とWEEKDAY関数をネストすると、煩雑ではなく同じことができますので、
最後は、F3をクリックして、CHOOSE関数のダイアログボックスを表示しましょう。

インデックスには、WEEKDAY関数を入力しますので、WEEKDAY(B3,1)。
あとは、値1~7までに日月火水木金土と入力していきます。
そして、OKボタンをクリックします。

数式は、

=CHOOSE(WEEKDAY(B3,1),"日","月","火","水","木","金","土")


これで、実は先程のIF+WEEKDAY関数と同じことが出来るのです。
関数のパワープレーも嫌いではありませんが、
ちょっとした関数を知っているとスマートな処理で済むというパターンの1つですね。

今回紹介したのは代表例ですので、
どれかお好きなものを使ってスケジュール表を作ってみてはいかがでしょうか?

3/05/2015

Excel。Graph。縦棒グラフに自動的に平均値の線を引くにはどうしたらいい?


Excel。Graph。
縦棒グラフに自動的に平均値の線を引くにはどうしたらいい?

集合縦棒グラフ+第2軸応用

今回ご紹介するものも、現場レベルからの質問でして、集合縦棒グラフがあって、
そこに平均値の線を引きたいのだけど、印刷なら手で線をひいちゃうけど、
Excel上だと、図形の線で描いても数値とずれているように見えるし、
何かいい方法はありませんか?というリクエストでした。

確かに現場では、いろんなことが必要、やりたい、という事が発生しますよね。

これもその一例。

実は、ちょこっと、知っていると比較的簡単にグラフを作成できるのですが…
正直な所、あまりご紹介したくないテクニックなんですが、もったいぶらずにご紹介をしてきます。

さて、どのようなイメージなのかと言うと、完成したグラフはこんな感じ。

赤線が平均値ですが、これは、図形の直線で引いたわけではありません。
数値に連動しておりますから、数値が変わって平均値も変われば、上下します。

では、下記の表があります。

このままでは、希望のことはできませんので、
D列にC9に算出している平均値を絶対参照で参照する数式を作っていきます。

D3には、=$C$9と入力してオートフィルハンドルを使ってD8まで算出しましょう。

要するにグラフを作るためのダミーデータを作るわけです。

では、B2:D8までを範囲選択して、集合縦棒グラフを作成してきましょう。

挿入タブの縦棒にある、集合縦棒をクリックすると、下記のようなグラフが作成されます。

分かりやすいように、凡例を下に移動して、少しサイズを大きくしてみます。

デザインタブの凡例から凡例を下に配置をクリックすると、凡例が下に移動します。

また縦(値)軸の最大値を100に変更しておきます。

縦(値)軸の上でダブルクリックをするか、デザインタブでグラフの要素の中から、
縦(値)軸を選択して、選択対象の書式設定をクリックします。

軸の書式設定ダイアログボックスが表示されてきますので、

最大値を固定にして、100と入力して閉じます。
グラフはこのようになりましたね。

では、いよいよ、平均を直線に変えていく作業に取り掛かります。

まず、平均値を折れ線グラフに変更しますので、どの平均値でもいいので、
赤色の棒グラフをクリックして、デザインタブのグラフの種類の変更ボタンをクリックします。

すると、グラフの種類の変更ダイアログボックスが表示されますので、折れ線グラフを選択して、OKボタンをクリックしましょう。

平均値が直線の折れ線グラフに変わりましたが、両脇に空間があって、
見栄えもよくないですね。

縦(値)軸につけるように平均値を動かすには、
横(項目)軸をアレンジしてあげればいいわけです。

ただこのままで横(項目)軸をアレンジすると、点数の棒グラフにも影響が出てしまいます。

ここで、ポイント。複合グラフ。ご存知ですか?ABCグラフの作り方などでご紹介しておりますが、
複合グラフのテクニックをいれていきます。

すなわち、【第2軸】を登場させます。


では、グラフの要素から、系列”平均値”を選択して、選択対象の書式設定をクリックします。

データ系列の書式設定ダイアログボックスが表示されましたら、
系列のオプションから第2軸を選択して閉じるボタンをクリックしましょう。

第2軸が右側に表示されましたがこちらも、最大値を100にしますので、
第2軸縦(値)軸の上でダブルクリックをするか、デザインタブでグラフの要素の中から、
第2軸縦(値)軸を選択して、選択対象の書式設定をクリックします。

固定にチェックをして、最大値を100と入力してから、閉じるボタンをクリックしましょう。

ただ、せっかく100にしたのですが、左右両方共の軸を出しておくとわかりにくいので、
第2軸縦(値) 軸は表示しないようにします。

すると、第2軸は非表示になりました。

ここまでくれば、あと一息です。
今度は、レイアウトタブの軸の第2横軸から【ラベルなしで軸を表示】をクリックします。

これは、折れ線グラフを交点0から描くときに使うテクニックですね。
グラフは見た目、変わっておりませんが、第2軸横(項目)軸がグラフ要素に登場します。

これを使いたい訳です。

では、この第2軸横(項目)軸を選択して、選択対象の書式設定をクリックします。

軸の書式設定ダイアログボックスが表示されましたら、軸位置を目盛にチェックを付けます。
閉じるボタンをクリックします。すると…

これで、完成しました!

試しに、織田さんの点数を80点にしてみましょう。平均値もかわりますので、
連動して変わりますよね。

自分で直線をひくと、こういう訳にはいきませんよね。


このようにグラフには、アイディアによって様々に表現することが可能になっています。
こういうのは、企業研修でもあまり、ご紹介することはありませんね。

他にも色々グラフに関してテクニックがあるんですよ。