5/31/2015

Excel。MOD&COLUMN。2列1組で色分けしたい時にはどうするの?というリクエストがあって


Excel。2列1組で色分けしたい時にはどうするの?というリクエストがあって

条件付き書式+MOD&COLUMN関数


先日ご紹介しました、2行1組で色分け(塗りつぶし)を設定する方法をご紹介しましたが、
そうしたら、今度は、2行1組じゃなくて、2列1組でやることはできるのかなぁ~と、
おなじみさんからご質問があったので、

それでは今回は、その2列1組のやり方をご紹介しようと思ったわけでして。

ということで、下記の表をご覧ください。

おなじみさんの話だと、上の表のようなものらしいので、イメージで作成してみました。

下の表が完成した、2列1組で色分けした、塗りつぶした表で、
この設定のやり方をご紹介していきます。

作り方自体は、2行1組と変わりませんが、
MOD+ROW関数のネストではなくて、

今回は列なので、列数を算出してくれます「COLUMN関数」を使っていきます。

では、B5:K7まで範囲選択をして、ホームタブの条件付き書式にある、
新しいルールをクリックします。

すると、新しい書式ルールダイアログボックスが表示されてきますので、

ルールの種類を選択してくださいの中から、
「数式を使用して、書式設定するセルを決定」を選択して、
ルールの内容を編集してくださいにある、
「次の数式を満たす場合に値を書式設定」のボックスに、数式を入力してきます。

=MOD(COLUMN(),4)<2


と入力します。
これは、行番号を4で割った余りが2より小さい場合という意味になりますね。
すなわち、余りが0と1の列に色が塗られるという設定になるわけですね。

では、書式ボタンをクリックしましょう。

セルの書式設定ダイアログボックスが表示されますので、
塗りつぶしタブに切り替えて、好きな色を選択しましょう。

選択しましたら、OKボタンをクリックします。

新しい書式ルールダイアログボックスに戻ってきますので、あとはOKボタンをクリックしましょう。

これで、完成しましたね。余りが0と1。すなわち、D列とE列に色が塗りつぶされていていますね。

D列は4列目。E列は5列目ですから、余りが0と1になるわけです。

品川店のH列とI列も8列目、9列目ですから、色が塗りつぶされている訳です。

ですので、塗りつぶしたい組のところを4で割った時に、
余りが0と1になるように数式をアレンジしてあげれば、どの列番号から始まる表であっても、
対応することが出来ます。

またもしかすると、
行はテーブルにすると色分けの設定がありますが、列ごとに色を設定するのがないので、
リクエストが多いかもしれませんね。

現場ごとに色々やりたい事って当然ありますので、アレンジしてみてください。

5/28/2015

Excel。INDEIRECT。入力規則のリストはINDIRECT関数を使うと切り替えることが出来る


Excel。入力規則のリストはINDIRECT関数を使うと切り替えることが出来る

入力規則+INDIRECT関数+名前の定義


先日ご質問があった中から、
今回は、入力規則のリスト+INDIRECT関数+名前の定義のテクニックをご紹介ようと思います。

どんな質問だったのかというと、ある帳票があって、入力ミスを防ぐ意味もあって、
入力規則のリストからアイテムを選択できるようにしたいんだけど、
項目名によって選択できるアイテムがかわるので、入力規則のリストがつかえないので、
困っているので何かいい方法ってありませんか?とのことでした。

なんでも、手入力で頑張っているというものでした。

確かに、現場では様々なケースがありますので当然今回のようなこともあるでしょう。

ということで、こんな方法はどうかなぁ~ということでやってみます。

下記の表があります。

B4に路線名。つまり中央線か山手線をいれると、
C4には、中央線なら中央線の山手線なら山手線の駅名を、
C4に入力することが出来るようにしたいというのが、今回の目的です。

では、B4に入力規則のリストを設定していきます。

B4をクリックして、データタブのデータの入力規則をクリックします。

データの入力規則ダイアログボックスが表示されますね。

設定タブの条件の設定にある、
入力値の種類を リストに設定します。

元の値は、中央線・山手線と入力されている範囲、

=$E$3:$F$3 

を入力してOKボタンをクリックしましょう。

B4に▼が表示されましたので、
クリックすると、
中央線と山手線が選択できるようになっていますね。これが入力規則のリストですね。

そして本題はここから、
中央線と入力したら、C4の入力規則のリストには、中央線の駅名が、山手線にしたら、
山手線の駅名がリストにあるようにしたいというわけです。

そこで、登場するのが、

INDIRECT関数です。


このINDIRECT関数は名前などをダイレクトに使用することが出来る関数です。

では、準備からいきましょう。
E4:E10に中央線という名前をF4:F9に山手線という名前を定義します。

これらの範囲に名前を設定してその前を使って切り替えるようにしていきます。

E4:E10を範囲選択して、名前ボックスをクリックして、中央線と入力します。

続いて、F4:F9を範囲選択して、同じように名前ボックスに山手線と入力して、
それぞれの範囲に名前を設定します。範囲にニックネームをつける感じですね。

この名前のポイントは、B4で設定したリストにあるものにします。
山手線内回りとかにしてはいけないわけです。

それでは、C4をクリックして、データタブの入力規則のダイアログボックスを表示しましょう。

入力値の種類は、リストに合わせるところは先程と同じです。

元の値には、 =INDIRECT(B4)  と入力します。
INDIRECT関数でB4の文字を参照します。

すなわち、B4に入っている文字そのものが元の値に入力されるという意味になります。

つまり、元の値には、 中央線 と入力したのと同じことになります。

そして、この中央線というのは…そう、範囲選択した時に設定した名前ですね。

中央線と名前を設定した範囲ですので、E4:E10ということになります。


あとはOKボタンをクリックしましょう。
C4の▼をクリックしてみると、

中央線の駅名がリスト内にありますよね。では、B4を山手線にしてみましょう。

すると今度は、山手線の駅名がリスト内にありますよね。
このようにINDIRECT関数を使うと入力規則のリストを切り替えることができますので、
参考にしてみてください。

VLOOKUP関数との組み合わせもバッチリですよ。

Excel。VLOOKUP関数。その9 範囲の表が複数ある場合ってどうするの?
http://infoyandssblog.blogspot.jp/2014/08/excelvlookup9.html

5/25/2015

Excel。SUMIF&MOD&ROW。一行おきのデータを合計させたい時には その2。ROW関数が便利です。


Excel。一行おきのデータを合計させたい時には その2。ROW関数が便利です。

SUMIF関数&MOD+ROW関数

Excel。前回ご紹介した2行1組でセルの塗りつぶしを行うようにしたいという
リクエストがありましたので、その方法をご紹介しましたが、

今回は、その続きの話。

2014年と2015年のそれぞれの数値の合計を算出したいとおっしゃっておりました。

一行空きのデータを合計するテクニック SUM関数とISODD+ROW関数
http://infoyandssblog.blogspot.jp/2013/09/excel-sumisoddrow.html
といことで、ご紹介したことはあるのですが、

もう少しわかりやすい関数を使って算出する方法はないですかね?

とご質問がありましたので、
そんじゃ、SUMIF関数は使えないものだろうか?と考えたので、

今回は、一行おきのデータを合計させる方法をご紹介していいます。

下記の表があります。

C14には各店舗の2014年の4月合計が算出させたいわけですね。

そこで、SUM関数を使ったとしたら、
いちいち各店舗の2014年4月データが入っているセルを範囲していき、
合計を算出させなくてはなりません。

そこで、何かいいアイディアはないかと考えてみると、
一行おきのデータということに気がづきます。

偶数か奇数かを判断する関数もありますが、
今回は比較的なじみのある関数でというリクエストがありますので、

SUMIF関数とMOD+ROW関数の合わせ技で算出してみたいと思います。

G列に奇数行か偶数行かを判断できる計算をして、それをテコにしていきますので、
このように表を加工しましょう。

では、G4をクリックして、MOD関数のダイアログボックスを表示しましょう。

数値にはrow() と入力します。
これは、ROW関数ですね。行番号を算出します。
除数には、2 と入力します。

これで、結果がゼロならば、偶数行ということになりますね。

では、OKボタンをクリックして、オートフィルハンドルを使って数式をコピーしましょう。

これで準備が完了しましたので、C14をクリックして、
今度はSUMIF関数のダイアログボックスを表示しましょう。


範囲には、$G$4:$G$13 と入力します。
先程算出させた、偶数か奇数を判断させる範囲ですね。
絶対参照で固定しちゃいましょう。

検索条件は、 $G14 と入力します。複合参照で列を固定するのは、
オートフィルハンドルを使って数式をコピーした時にいちいち、修正する手間を省くためです。

複合参照が苦手な方は、一つずつ作っていくといいでしょう。
合計範囲には、C$4:C$13 と入力します。
こちらも、複合参照ですね。行を固定しておきます。

あとは、OKボタンをクリックして完成ですね。
数式は、

=SUMIF($G$4:$G$13,$G14,C$4:C$13)


算出結果は、1564。本当にあっているのでしょうかね? 
範囲選択をしてオートカルクをみて確認してみましょう。

1564で合致していますね。では、オートフィルハンドルを使って数式をコピーしていきましょう。
コレで完成ですね。


5/22/2015

Excel。MOD+ROW関数。1行おきの塗りつぶしじゃなくて、2行1組で塗りつぶすには?


Excel。1行おきの塗りつぶしじゃなくて、2行1組で塗りつぶすには?

【MOD+ROW関数+条件付き書式】


かなり前にも、テーブルをつかわずに、
一行おきに行を塗りつぶす方法をご紹介したことがありますが、

Excel。有名な一行おきに色をつける、条件付き書式+ROW+MOD
http://infoyandssblog.blogspot.jp/2013/06/excelrowmod.html

2行1組で塗りつぶすことはできませんか?とご質問がありました。
聞いてみますと、こんな感じの表だそうです。

なるほど、よくある感じの表ですよね。これを、

こんなように、2行1組で塗りつぶしたいそうなんですね。

作り方自体は、一行おきと変わりませんので、MOD関数とROW関数を使って、
偶数行か奇数行かを聞けばいいのですが、ちょっとアレンジが必要になります。

ROW関数は、その行が何行目なのかというのを算出する関数で、
MOD関数は、余りを求める関数です。

一行おきならば2で割って、余りがあるかなしかでいいのですが、
今回はそういう訳にはいかないようです。

ちょっと、考えてみたいと思います。
最初は、
4行目ですので、2で割ると、あまり 0
5行目ですので、2で割ると、あまり 1
6行目ですので、2で割ると、あまり 0
7行目ですので、2で割ると、あまり 1

となってしまい、2で割るとうまく来ません。

そこで、どうやったら、うまく余りを出せるのかを考えみると、4で割るといいことに気が付きます。

4行目ですので、4で割ると、あまり 0
5行目ですので、4で割ると、あまり 1
6行目ですので、4で割ると、あまり 2
7行目ですので、4で割ると、あまり 3
8行目ですので、4で割ると、あまり 0

と8行目で一巡します。あまりが0~3まで算出されて、
4で割ることがいいの?と思われる方もいるかもしれませんが、

さらにあまりは、2未満ですか?とすれば、
あまり0と1・あまり2と3のグループの2グループに分けることが出来ます。

そう、これで2行1組の条件を見つけられたわけです。

=MOD(ROW(),4)<2

という数式を条件付き書式に設定してあげればいいわけですね。

では、A4:E13まで範囲選択をして、ホームタブの条件付き書式にある、
新しいルールをクリックしましょう。

すると、新しい書式ルールダイアログボックスが表示されますので、

数式を使用して、書式設定するセルを決定 を選択して、
ルールの内容を編集してください の、次の数式を満たす場合に値を書式設定のボックスに、

=MOD(ROW(),4)<2

と入力します。

次に、書式ボタンをクリックして、セルを塗りつぶす色を選択していきます。

セルの書式設定ダイアログボックスが表示されますので、
塗りつぶしタブからお好きな色を選択してOKボタンをクリックします。

先程のダイアログボックスに戻りますので、OKボタンをクリックして完成ですね。

このように、条件付き書式+MOD+ROW関数の基本形式にアレンジをすると、
色んなことが出来ますので、色々とやってみるとスキルアップに繋がりますよ。

5/19/2015

Excel。Questionnaire。アンケートの複数回答の集計を効率よく算出する方法 SUMIF編


Excel。アンケートの複数回答の集計を効率よく算出する方法
SUMIF編

【SUMIF関数&ワイルドカード】

アンケートの集計をしているんだけど、時間がかかって大変なんですよ。
とお聞きしまして、そんなにたいへんなの?
と聞いてみたら、

あなたの趣味はどれですか?

みたいな複数回答できるものの集計だそうで、
Aだけの人もいれば、ACDと答えている人もいるし、CAと逆に書いている人もいたりと、
様々あるそうでして、
なるほどねぇ~と感心しているだけでは面白くないので、ちょっと考えてみました。

ということで、

前回は、COUNTIF関数を使ってみましたが、SUMIF関数でも作れるよね。

ということで、今回はSUMIF関数での集計方法に挑戦してみましょう。

今回も前回同様に、
例えば、あなたの旅行したい地域はどこですか?

なんてアンケートの質問がありまして、複数回答だとすると、
B列にあるように、複数答えてくれるわけです。


ちなみにA列は回答してくれた人の通しナンバーです。

このB列にあるAがいくつあるのか?Bは?と手作業で数えたら、それは時間がかかりますよね。

そこで今回はSUMIF関数で集計しちゃおうという訳です。

今回もまずは、フレームからつくります。

前回のCOUNTIF関数と異なっているのは、
C列に計算用という列が登場していることと、集計用の表が無いことですね。

SUMIF関数を使うと、ダイレクトに集計することが出来ますが、
そのために、計算用の列が必要になりますので、C列の計算用という列が追加されています。

印刷などの場合は、C列を非表示にするといいですよね。

では、F6をクリックして、SUMIF関数のダイアログボックスを表示します。

範囲には、$B$6:$B$10 と入力します。
これは、アンケート複数回答の列ですね。

といっても、SUMIF関数が苦手な方は、この範囲がわかりにくいと、よくいわれます。

確かに、何の範囲だかわかりにくいですよね。

この範囲は、次の検索条件が含まれている列ということになります。
また、オートフィルハンドルで数式をコピーしますので、
絶対参照の設定も忘れないようにしましょう。

続いて、検索条件ですが、

"*"&F$5&"*"

これは、前回もご紹介しましたが、F5の文字を含むという意味になります。
*(アスタリスク)は、ワイルドカードですね。そして&は文字連結ですね。
この聞き方は、覚えておくといいですね。結構使えます。

最後に合計範囲ですが、

$C$6:$C$10

計算用の列ですね。ここには1が入っていますので、
B列のアンケート複数回答に文字があったら、+1するという感覚ですね。

あとは、OKボタンをクリックして完成ですね。
オートフィルハンドルを使って数式をコピーしましょう。

なお、F6の数式は、

=SUMIF($B$6:$B$10,"*"&F$5&"*",$C$6:$C$10)


となっていますね。
様々なテクニックを一つのシートに導入していくというのはExcelの醍醐味なのかもしれませんね。

5/16/2015

Excel。Questionnaire。アンケートの複数回答の集計を効率よく算出する方法 COUNTIF編


Excel。アンケートの複数回答の集計を効率よく算出する方法
COUNTIF編

【COUNTIF関数&ワイルドカード】

アンケートの集計をしているんだけど、時間がかかって大変なんですよ。
とお聞きしまして、
そんなにたいへんなの?と聞いてみたら、

あなたの趣味はどれですか?
みたいな複数回答できるものの集計だそうで、Aだけの人もいれば、
ACDと答えている人もいるし、CAと逆に書いている人もいたりと、様々あるそうでして、
なるほどねぇ~と感心しているだけでは面白くないので、ちょっと考えてみました。

例えば、あなたの旅行したい地域はどこですか?

なんてアンケートの質問がありまして、
複数回答だとすると、B列にあるように、複数答えてくれるわけです。

ちなみにA列は回答してくれた人の通しナンバーです。

このB列にあるAがいくつあるのか?Bは?と手作業で数えたら、
それは時間がかかりますよね。

で、困っている訳ですね。

そこで、どうやってB列にある文字をE列~I列に振り分けて数えさせてあげたらいいのか?
ということを考えた場合に使うテクニックは、
COUNTIF関数とワイルドカードを使うと出来ますので、紹介していきます。

まずは、フレームをつくります。

では、E6をクリックして、COUNTIF関数のダイアログボックスを表示しましょう。
COUNTIF関数は条件付きでカウントしてくれる関数ですね。

範囲ですが、1件目の回答を検索させますので、B6。

そして、オートフィルハンドルを使って数式をコピーしますので、
複合参照で設定すると楽ですから、B列を固定させますので、

範囲には、$B6

検索条件は、見出し行を使えますので、Aがはいっている、E5を使います。

また、5行目を固定したいので、ここも複合参照を設定しますからE$5となります。

ただ、E$5だけではダメですね。これでは、Aという一文字の場合しか数えてくれません。

ACもあれば、CAもあるわけですね。

そこで、テクニックなのですが、ワイルドカードという方法を加えてあげることによって、
検索条件をアレンジすることが出来るようになります。

すなわち、
B6のセル内にE5の文字であるAという文字が含まれているか否かという条件にさせれば、
いいわけですね。

そこで、E$5の前後に*(アスタリスク)を付けてあげればいいわけです。

"*"&E$5&"*"


この *+セル+*で、文字を含むという表現になりますので覚えておくといいですね。

あと、&はお馴染みの文字連結で登場しますね。

改めてですが、
範囲は$B6。検索条件は"*"&E$5&"*"

あとは、OKボタンをクリックして数式は完成しますので、
オートフィルハンドルを使って数式をコピーしましょう。

あとは、それぞれの文字をSUM関数をつかって算出すれば完成ですね。

このような方法を使えば、簡単に複数回答の結果を算出することが出来ますよ。

5/13/2015

Excel。RANK_EQ。指定した順位までの構成比を算出したいというリクエスト


Excel。指定した順位までの構成比を算出したいというリクエスト

【Rank.EQ関数と構成比】

先日、指定した順位までの売上の構成比を求める表を作成しないといけなくて大変だったということを聞きまして、最終的には、一日業務で大変だったとのこと。
で、聞いた感じですと、こんなのみたい。

確かに大変ですよね。テクニックとしては、順位と累計とさらに構成比を駆使することになりますからね。隠し味は、累計のところでしょうかね?
ということで、今回は、これを作っていくことにしましょう。

ここまでの表に関して補足しておきましょう。C10は合計を算出しております。
F3:F9までは数値に表示形式のユーザー定義を使って、○位までという表示にしております。

セルの書式設定ダイアログボックスでも確認をしておきましょう。
お馴染みですが、セルの書式設定ダイアログボックスはCtrl + 1で表示することが出来ますよね。

G/標準でもOKですが数値なので、0(ゼロ)に”位まで”を連結しております。
最初にD列の順位を算出しましょう。
RANK.EQ関数を使っていきます。(Excel2007まではRANK関数です)
D3をクリックして、RANK.EQ関数のダイアログボックスを表示しましょう。

数値にはC3ですね。
参照には、$C$3:$C$9
C3:C9まで範囲選択をしたあとにF4キーを押すと、絶対参照が設定差ますよね。
順序には、0(ゼロ)または省略が可能。省略ができますが、省略しないようにした方がいいですね。
このRANK.EQ関数がわかりにくいのは、数値と参照ですね。数値は、ランキングを知りたいセル番地になります。参照は、全体の範囲です。
それでは、OKボタンをクリックして、オートフィルで代々木まで順位を算出しましょう。

これで、順位は出来ました。今度は、この順を基にして、順位の累計を算出していきます。
累計の算出方法は、SUM関数で簡単に算出することが出来ますが、順位順に並んでないので、そうもいきませんね。では並び替えましょうと言いたいところですが、並び替えのできない資料というのは、現場ではよくあることですので、並び替えをしないで算出していくことにします。

では、順位毎の累計を算出するのには、SUMIF関数を使っていきます。手動という訳にはいきませんからね。
G3をクリックして、SUMIF関数のダイアログボックスを表示しましょう。

範囲には、$D$3:$D$9
この範囲は、次に入力する検索条件のデータが入っている列になりますので、今回は、D列。$D$3:$D$9。オートフィルでこの数式をコピーしますから、絶対参照の設定を忘れないようにしましょう。
検索条件には、”<=”&と入力した後にF3を入力します。
"<="&F3
これは、F3に1と入力されていますね。ですから、1以下という意味になりますから、
例えば、F5だと3なので3以下だったらという条件になります。ここがポイントで、比較演算子をこのように使うアイディアがあります。
最後に、合計範囲は、
$C$3:$C$9
絶対参照を忘れないようにしましょう。
あとは、OKボタンをクリックすれば算出されますので、オートフィルを使って数式をコピーしましょう。

G9の7位までの数値とC10の合計数値が合致していますよね。このように飛び飛びのセルを使った累計の算出方法もあるんですよ。
ここまでくれば、あとは、G列を使って、構成比を算出しましょう。
○○比ですから、割り算。除算ですね。
H3には、
=G3/$G$9
という数式が入りますよね。あとは、オートフィルハンドルを使って連続コピーして完成ですね。

このように、一つの表に様々なテクニックを入れて作っていくのは大変ですが、少しずつスキルアップして、日ごろ使っている表も改善していきましょう。

5/10/2015

Excel。graph。マイナスデータの棒グラフを作ると綺麗にできないのでアレンジしてみる


Excel。マイナスデータの棒グラフを作ると綺麗にできないのでアレンジしてみる

棒グラフ


表だけではわかりにくいので、グラフ。

特に棒グラフにして表現することって結構あると思うのですが、
この縦棒グラフを作るときに、そのデータにマイナスの数値が入っていると、
棒グラフを作った時に、綺麗に出来ないというか、見にくい状態で挿入されてしまうので、
それをどうしたらいいのか?ということを今回は紹介していきます。

こういうグラフをつくりたいのです。

では、表を見てみましょう。

経常利益にマイナスの数値がありますよね。
これが実はグラフにしたときの困る原因になるのです。

では、B2:C9を範囲選択して縦棒の集合縦棒を挿入していきましょう。

縦棒の2-D縦棒から集合縦棒をクリックしてみると。
集合縦棒グラフが挿入されますね。

2008年~2014年までの横軸がおかしいですよね。
2008年と2010年をご覧になると、棒グラフと横軸の文字が重なっていますよね。
横軸をできれば、下側に表示してくれているほうがいいですよね。

では、それを表現するにはどうしたらいいのかというと、

まずは、横(項目)軸をクリックして、レイアウトタブの「選択対象の書式設定」をクリックしましょう。

軸の書式設定ダイアログボックスが表示されますので、軸のオプションの中の、
軸ラベルを【下端/左端】にして、閉じるボタンをクリックします。

すると、グラフの横(項目)軸がプロットエリアの下に移動しましたね。

これだけだと、面白くないので、折角ですから、ちょっとプラスしていきましょう。
やはり、マイナスの棒グラフの色は変えたほうがわかりやすくなりますよね。

ということで、このマイナスの棒グラフを選んで、塗りつぶしを…と紹介しちゃいそうですが、
そんなことはしなくても大丈夫なんですね。

イメージしてみてください、マイナス表記のグラフがたくさんあった場合、
いちいち選択して棒グラフの色を変えていくとしたら大変ですよね。

そうしなくても、一発で塗りつぶしの色を変えることが出来るんですよ。

まず、棒グラフをクリックします。

レイアウトタブのグラフの要素が、「系列”経常利益”」になっているのを確認したら、
「選択対象の書式設定」をクリックしましょう。

データ系列の書式設定ダイアログボックスが表示されます。

塗りつぶしを選択し、
塗りつぶし(単色)にチェックをいれて、

【負の値を反転する】

にチェックをつけます。

すると、塗りつぶしの色の欄に、もうひとつ色が表示されてきますので、任意の色を選択します。

そして、閉じるボタンをクリックしてみましょう。

これで、マイナスのデータを一発で色を変えることが出来ましたね。

グラフは少しプラスアルファを知っていると色々出来ますので、アレコレ触ってみるといいですね。