1/07/2020

今週のFacebookページの投稿 2019/12/30-2020/1/5

今週のFacebookページの投稿 2019/12/30-2020/1/5

<Facebookページ>

Facebookページで【書いてみた】ワンポイントです。

12月30日
Excel。BAHTTEXT関数。
読み方は、バーツテキストで、数値を四捨五入して、バーツ書式を設定した文字列に変換します

12月31日
Excel。BASE関数。
読み方は、ベースで、10進数をn進数に変換します

1月1日
Excel。BESSELI関数。
読み方は、ベッセルアイで、第1種変形ベッセル関数In(X)の値を算出します

1月2日
Excel。BESSELJ関数。
読み方は、ベッセルジェイで、第1種ベッセル関数Jn(X)の値を算出します

1月3日
Excel。BESSELK関数。
読み方は、ベッセルケイで、第2種変形ベッセル関数Kn(X)の値を算出します

1月4日
Excel。BESSELY関数。
読み方は、ベッセルワイで、第2種ベッセル関数Yn(X)の値を算出します

1月5日
Excel。BETADIST関数。
読み方は、ベータディストで、ベータ分布の累積確率を算出します

Excelテクニック and  MS-Office recommended by PC training
https://www.facebook.com/exceltechniqueandmsoffice/

1/05/2020

Excel。重ね合わせグラフは意外と作成するのが大変です。【Superimposed graph】

Excel。重ね合わせグラフは意外と作成するのが大変です。

<重ね合わせグラフ>


次のようなグラフを「重ね合わせグラフ」と呼びますが、実際に作ってみると意外と大変なことがわかってきます。
重ね合わせグラフ

今回の重ね合わせは、先のデータが上で、次のデータが下に重ね合わせているグラフを目指していきます。

次の表を用意しました。

A2:C6を範囲選択して、集合横棒グラフを作成していきます。

挿入タブから、「縦棒/横棒グラフの挿入」にある2-D横棒の集合横棒をクリックします。

集合横棒グラフが挿入されます。

横棒グラフは、表の上のデータをグラフの下側からプロットしますので、縦軸が反転してしまい、品川が一番上側に表示されていますので、表と同じになるように、「反転」させていきます。

縦(項目)軸をクリックしたら、選択対象の書式設定をクリックします。

軸の書式設定作業ウィンドウが表示されます。

軸のオプションの「横軸との交点」を最大項目に、「軸位置」の軸を反転するに、チェックマークをつけてONにします。

これで、表と同じ順番に縦軸が変わりました。

あとは、重ねれば完成と思ったら大間違いなのです。

横棒グラフをクリックすると、作業ウィンドウは、データ系列の書式設定に変わります。

「系列のオプション」の系列の重なりを40%に変更します。ちなみにマイナスにするとグラフ同士が離れます。

完成といえば完成なのですが、よく見ると、前年のデータ、つまり上のデータが下に重なってしまっています。

希望するグラフは、重なりが”逆”なのです。

どうやら、軸を反転しても、横棒グラフ自体は連動しないようです。

【重ね合わせグラフは表を反転させる】

このようなことから、重ね合わせグラフを作る場合には、『表自体を反転』させる必要がありますので、ダミーの表を作成して、それを使って重ね合わせグラフを作成します。

これで、先程と同様に、2-Dの集合横棒グラフを作成します。

反転の処理はしません。ここがポイント。

重ね合わせも先程と同じように設定します。

グラフはこのようになっています。

縦(項目)軸は、反転しなくても、新宿から品川の順番になっているものの、グラフ自体は、下側にある、2020年のデータが上になっています。

2019年・2020年の順番にしたいので、凡例項目の順番を変更する作業を行います。

デザインタブの「データの選択」をクリックして、データソースの選択ダイアログボックスを表示します。

凡例項目を、2020年を上。2019年を下にするように移動ボタンをクリックして変更したらOKボタンをクリックします。

これで、「重ね合わせグラフ」が完成しました。

1/04/2020

2019年12月の閲覧数TOP10をご紹介

2019年12月の閲覧数TOP10をご紹介

<TOP10>

2019年12月。
皆様に閲覧していただいた項目のTOP10をご紹介させていただきます。

1位
Excel。折れ線グラフを交点0からスタートさせるには?
https://infoyandssblog.blogspot.jp/2013/07/excel0.html

2位
Excel。一日のタイムスケジュールを管理する24時間横棒グラフを作ってみる
https://infoyandssblog.blogspot.jp/2016/03/excel24hour-schedule24.html

3位
Excel。折れ線グラフの間を塗りつぶしたいけど、どうしたらいいの?
https://infoyandssblog.blogspot.jp/2015/12/excelgraph.html

4位
Excel。料金量がわかりやすい階段グラフの作り方
https://infoyandssblog.blogspot.com/2017/09/excelstaircase-graph.html

5位
Excel。時間経過の折れ線グラフ。実は散布図で作るとより綺麗に描けるのです。
https://infoyandssblog.blogspot.com/2016/08/excelgraph.html

6位
Excel。Graph。縦棒グラフに自動的に平均値の線を引くにはどうしたらいい?
https://infoyandssblog.blogspot.jp/2015/03/excelgraph.html

7位
Excel。出勤時間を自動で塗りつぶす日勤シフト表を作ってみる。
https://infoyandssblog.blogspot.com/2015/05/excelroster.html

8位
Excel。あれれ!グラフが表示されない!!そんな時は、第2軸で表示しましょう。
https://infoyandssblog.blogspot.com/2015/10/excelgraph2.html

9位
Excel。円グラフを使って1日のスケジュールを作りたい
https://infoyandssblog.blogspot.com/2016/07/excelpie-chart1.html

10位
Excel。B/S(貸借対照表)をグラフで作ってみよう!
https://infoyandssblog.blogspot.com/2013/07/excelbs.html

1/02/2020

Excel VBA。入力規則をデータ読み取り後に設定しちゃうとさらに楽になります。【Input rules】

Excel VBA。入力規則をデータ読み取り後に設定しちゃうとさらに楽になります。

<Excel VBA:入力規則>


Excel VBAをつかって、テキストデータなどを読み取ったあとに、Excelでアレコレ設定するのもいいのですが、どっちみちならば、データを読み取ったときに、一緒にExcel VBAで構文をつくっておいて、実行させた方が、楽なこともあるようです。

そこで、今回は、入力規則をExcel VBAで構文を作ってみましょう。

次のように入力規則のリストを設定していきます。

通常Excelの入力規則のリストを設定する場合、データタブにある、「データ入力規則」からダイアログボックスを表示して、リストを設定するわけですが、リストは、事前に用意しておくのか、あるいは、入力して、設定するわけですが、結構面倒な処理なわけです。

Excel VBAで構文を作ってしまえば、シートにわざわざリストを用意しなくてもいいわけですね。

そして、Excel VBAの構文自体も、非常に簡単でわかりやすいと思います。
では、構文を確認してみましょう。

Sub 入力規則のリスト()
Dim i As Integer
For i = 2 To 6
    With Cells(i, "b").Validation
        .Delete
        .Add Type:=xlValidateList, Formula1:="鉛筆,ボールペン,消しゴム"
    End With
Next
End Sub

たったこの数行でいいわけです。

構文を説明していきます。

Dim i As Integer
は、このあと、For To Nextで使うための変数を設定しています。

今回は、数件だけなので、Integerにしています。

For i = 2 To 6~Next
今回は、最終行を持ってくる変数は用意していませんが、データが多い場合や、不規則な場合は、最終行を算出させるといいですね。

そして、ここからが、「入力規則のリスト」の心臓部です。

With Cells(i, "b").Validation
        .Delete
        .Add Type:=xlValidateList, Formula1:="鉛筆,ボールペン,消しゴム"
End With

With~End Wihですが、With以降の「Cells(i, "b").Validation」を繰り返して入力するのが面倒なのと、わかりやすくするために、Withを使用しています。

Cells(i, "b").Validationの「Validation(バリデーション)オブジェクト」が、入力規則のリストを設定するための構文です。

たったこれだけなんですね。

「.Delete」
意外と重要なのが、この一行です。なんで削除なのかというと、データの入力規則が事前に設定されていた場会、エラーになってしまうからですね。念のための保険的な一行です。

「.Add Type:=xlValidateList, Formula1:="鉛筆,ボールペン,消しゴム"」
セルに次の情報を追加します。

Type:=xlValidateList は、入力規則のリストを意味する引数です。

整数の場合は、xlValidateWholeNumberという引数を使います。

そして、「Formula1:="鉛筆,ボールペン,消しゴム"」
これが、リストの中身に該当します。

「”(ダブルコーテーション)」は、前後の1度だけですので、文字ごとに設定しないので注意が必要です。

なお、今回は、手入力でしたが、セルに事前にリスト内容を用意してある場合は、
「Formala1:=”=Sheet1!A2:A5”」
という表記で対応します。

12/30/2019

Excel。条件付き書式を設定がオートフィルターで抽出しても連動させたい【Conditional formatting】

Excel。条件付き書式を設定がオートフィルターで抽出しても連動させたい

<条件付き書式+SUBTOTAL関数>

条件に合致した場合、視覚的にわかりやすくすることができる「条件付き書式」ですが、ちょっとプラスアルファすると、連動してくれないことが多々あります。

例えば、最高値がわかるようにした場合でも、オートフィルターをつかって、抽出すると最高値のデータが抽出条件外だと、条件付き書式が反映されていないように見えてしまいます。

そのような場合、どう対応したらいいのでしょうか?

次のデータがあります。

最大値がわかるように、条件付き書式を設定してみます。
B2:B15を範囲選択します。

ホームタブの条件付き書式にある、上位/下位ルールにある、「上位10項目」をクリックします。
上位10項目ダイアログボックスが表示されます。

項目数を「1」に設定して、書式を設定したら、OKボタンをクリックします。

これで、条件付き書式をつかって、上位1位のデータ。

つまり最高値のデータを視覚的にわかるようにできました。

男性・女性それぞれのデータを見たいと思い、オートフィルターを使ってみることにしました。
データタブのフィルターをクリックして、オートフィルターを表示させます。

性別を「男」で抽出してみます。

男性だけが表示されましたが、条件付き書式は、きちんと反映されていることが確認できます。

今度は、性別が「女」のデータで抽出してみます。

抽出は、女性のみを抽出していますので、問題はないのですが、条件付き書式は連動することなくそのままなので、条件付き書式が設定されていないように見えてしまいます。

このように抽出条件がかわっても、常に上位1位のデータを条件付き書式でわかるようにしたい場合、どのようにしたらいいのでしょうか?

そこで、SUBTOTAL関数を使うことで、対応することができます。

一度設定した条件付き書式をクリアしておきます。

改めて、B2:B15を範囲選択します。

ホームタブの条件付き書式にある、「新しいルール」をクリックします。
新しい書式ルールダイアログボックスが表示されます。

ルールの種類は、「数式を使用して、書式設定するセルを決定」にして、次の数機を満たす場合に値を書式設定のボックスには、
=b2=SUBTOTAL(104,$B$2:$B$15)
と設定します。

書式ボタンをクリックして、セルの書式設定ダイアログボックスが表示されますので、書式を設定します。

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

先程の条件付き書式と同様に、最高値に塗りつぶしが反映されました。

改めて、性別を「女」で抽出してみます。

このように、抽出条件がわかっても、常に最高値が塗りつぶしされるようになったことが確認できます。

=SUBTOTAL(104,$B$2:$B$15)のSUBTOTAL関数の100番台は、非表示になったデータを除外することができます。

今回使った、104番は、最高値を見つけるのだけど、非表示なったものは除外するとことができるので、抽出など非表示になっても、連動して条件付き書式を反映させてくれます。

なお、
=AGGREGATE(4,5,$B$2:$B$15)
というように、AGGREGATE関数でも問題はありません。

12/29/2019

今週のFacebookページの投稿 2019/12/23-2019/12/29

今週のFacebookページの投稿 2019/12/23-2019/12/29

<Facebookページ>

Facebookページで【書いてみた】ワンポイントです。

12月23日
Excel。ATAN2関数。
読み方は、アーク タンジェント・ツーで、X-Y座標値から 逆正接(アークタンジェント)を算出します。

12月24日
Excel。ATANH関数。
読み方は、ハイパーポリック アーク タンジェントで、数値の双曲線逆正接を算出します。

12月25日
Excel。AVEDEV関数。
読み方は、アベレージディブで、数値群の平均偏差を算出します。

12月26日
Excel。AVERAGE関数。
読み方は、アベレージで、数値の平均値を算出します。

12月27日
Excel。AVERAGEA関数。
読み方は、アベレージ・エーで、数値・文字列・論理値を含む平均値を算出します。

12月28日
Excel。AVERAGEIF関数。
読み方は、アベレージ・イフで、条件付きで数値の平均値を算出します。

12月29日
Excel。AVERAGEIFS関数。
読み方は、アベレージ・イフズで、複数条件付きで数値の平均値を算出します。

Excelテクニック and  MS-Office recommended by PC training
https://www.facebook.com/exceltechniqueandmsoffice/

12/27/2019

Excel。分布のパターンの相違は、カイ二乗検定でチェックするとみえてきます【Chi-square test】

Excel。分布のパターンの相違は、カイ二乗検定でチェックするとみえてきます

<CHISQ.TEST関数:カイ二乗検定>


日頃馴染みのない関数というのは多々ありますが、ちょっとした時に、役に立つ関数が多いのも事実です。

そこで、今回は、カイ二乗検定でお馴染みの『CHISQ.TEST関数』(カイ・スクウェアド・テスト)を使うことで、データの実測値と期待値のズレを見ることを確認してみましょう。

次の表があります。

この表は、試食Aと試食Bを食べ比べてもらい、美味しいと感じた方にポイントを入れてもらった結果を集計したものです。

男性が20名参加して、男性は、試食Bが美味しいというのが表から見える気がしますが、本当にそうなのでしょうか?

見た目の直感ではなくて、誤差の範囲かもしれないので、『検定』を実行しないとなんともいえません。

今回のように、分布のパターンの相違を確認するには、【カイ二乗検定(X^2検定)】を使っていきます。
このカイ二乗検定は、『独立性の検定』ともいわれています。

カイ二乗検定は、Excelの関数。CHISQ.TEST関数であっさり算出することができ、結果もすぐにわかるのですが、事前に期待値を算出しておく必要があります。

それと、性別と試食というそれぞれの属性が「独立」していると仮説(帰無仮説)を立てて検定を実施します。

この仮説(帰無仮説)が棄却される結果が出れば、「独立」ではなく、すなわち、何らかの関係があるということを意味します。

今回は、「性別によって試食Aと試食Bの割合に違いは生じないはず」と仮説を立てています。

【期待値を算出】


下の表は、上記表の値を元に、期待値を算出した表です。
B9の数式は、
=$D4*B$6/$D$6
複合参照を使っていますので、わかりにくいですが、
行の合計×列の合計÷全体合計で算出します。

この期待値は、想定されている分布に従っていれば、その値になるはずという値のことです。

見た感じ、実測値と期待値に違いがあるように見えます。

実測値と期待値が算出することができれば、いよいよ、CHISQ.TEST関数の登場です。

G8にCHISQ.TEST関数を使って算出しますので、CHISQ.TESTダイアログボックスを表示します。

実測値範囲には、B4:C5を設定します。
期待値範囲には、B9:C10を設定します。

たった、これだけで完了なので、あとはOKボタンをクリックします。
小数点で表示されるとわかりにくいので、パーセント表示にします。

確率が、2,71%と算出されました。
この確率が5%以下なので、帰無仮説は棄却されたことを意味しています。

「性別によって試食Aと試食Bの割合に違いは生じないはず」という仮説でしたので、仮説が棄却されたので、性別によって、試食Aと試食Bの好みが異なるといえることがわかりました。

このように、日ごろ使わない関数も、意外と役に立つ、便利な関数ってまだまだありそうですね。