2/28/2020

Excel。RANDARRAY関数は、行列いっぺんに大量のサンプルデータをつくれます【RANDARRAY】

Excel。RANDARRAY関数は、行列いっぺんに大量のサンプルデータをつくれます

<RANDARRAY関数・RAND関数・RANDBETWEEN関数>

サンプルデータを作るときに、便利な関数が増えました。それが、RANDARRAY関数
Office365 Insiderで追加された新関数です。

通常ではあまり使うことはないかもしれませんが、大量なサンプルデータをつくるには、もってこいの関数です。

いままでだと、RAND関数や、RANDBETWEEN関数を使ってサンプルデータをつくっていましたが少々面倒だったのです。

例えばRAND関数ですが、0~1までの小数をランダムで発生することができる関数です。

確かに小数なのでほぼ一致しない数値を算出しないので、重複にならないサンプルデータを作る場合には都合がいいのですが、小数なので、どうやって整数化するのか、RANK.EQ関数で整数化するなど、あの手この手を使う必要が発生します。

そのため、大量のサンプルデータを作るには、少し不向きでした。

A1には、
=RANDBETWEEN(1,3)
という数式が設定してあります。

今回は、1~3までの整数値をランダムで発生する設定にしてあります。

このRANDBETWEEN関数は、指定した範囲の整数値を算出してくれますが、オートフィルで数式をコピーするために、行か列の一方向にしか、数式をコピーすることができません。

そこで、新しくサンプルデータを作る関数『RANDARRAY関数』は、行も列も引数内で設定できる。

しかも整数か小数かも選択することができる便利な関数なのです。

それでは、RANDARRAY関数を使ってみましょう。
 
RANDARRAY関数は、直接入力して作成するほうが作成しやすいと思いますので、今回はダイアログボックスではなくて、直接関数を入力していきます。

RANDARRAY関数の引数は、行・列・最小・最大・整数と5つ用意されています。

今回は、1~100までの整数を2行5列の10個のサンプルデータを作ってみます。

行には、2
列には、5
最小には、1
最大には、100
整数には、TRUE。整数値を選択します。

数式を確定すると、Office365 InsiderのExcelには、スピルという機能が追加されていますので、オートフィルで数式をコピーする必要もなく、自動的に、2行5列の表内でサンプルデータを作成してくれました。

A1の数式は、
=RANDARRAY(2,5,1,100,TRUE)

A2の数式も、
=RANDARRAY(2,5,1,100,TRUE)
となっていますが、数式バーの数式をみると、文字の色がグレーになっていますよね。

このグレーが、スピルで対応したということがわかるようになっています。

偶然ですが、今回は、B1とC1の結果が同じになっています。

RANDARRAY関数も当然のことながら、重複しますので、重複を避ける場合には、小数にしてRAND関数同様に、思考する必要があります。

最近、色々と新しい関数や機能をExcelに追加されていますので、確認してみると、意外と使えるものがあるかもしれませんね。

2/27/2020

Excel。グラフの復習。半円グラフ~円グラフで24時間スケジュール【Graph】

Excel。グラフの復習。半円グラフ~円グラフで24時間スケジュール【Graph】

<グラフ>

Excelのグラフは、用途に合わせて様々なグラフを作ることができます。
今回は、グラフの復習ということ、4つをピックアップ

・Excel。半円グラフを作ったら、データラベルのパーセントの値が変?というご質問
・Excel。三重ドーナツグラフって作れるのですか?というご質問にお答えして
・Excel。積み上げ横棒グラフの合計値を表示させる方法
・Excel。円グラフを使って1日のスケジュールを作りたい

Excel。半円グラフを作ったら、データラベルのパーセントの値が変?というご質問

半円グラフなのですが、作るのは作れるのですが、実はちょっとしたアレンジをしないと、データラベルのパーセント値が、正しく表示されないのです。
半円グラフ

<続きはこちら>
Excel。半円グラフを作ったら、データラベルのパーセントの値が変?というご質問
https://infoyandssblog.blogspot.com/2016/06/excelsemicircle-graph.html

Excel。三重ドーナツグラフって作れるのですか?というご質問にお答えして

【三重ドーナツグラフ】って、どうやってつくるの?
三重ドーナツグラフ


<続きはこちら>
Excel。三重ドーナツグラフって作れるのですか?というご質問にお答えして
https://infoyandssblog.blogspot.com/2016/06/excel-triple-donut.html

Excel。積み上げ横棒グラフの合計値を表示させる方法

【積み上げ横棒グラフ】の合計値を表示させる方法をご紹介していきます。
積み上げ横棒グラフに総合計値表示


<続きはこちら>
Excel。積み上げ横棒グラフの合計値を表示させる方法
https://infoyandssblog.blogspot.com/2016/06/excelhorizontal-bar-graph.html

Excel。円グラフを使って1日のスケジュールを作りたい

円グラフを使っての24時間スケジュール管理表を作ってみようと思います。
24時間スケジュール円グラフ

<続きはこちら>
Excel。円グラフを使って1日のスケジュールを作りたい
https://infoyandssblog.blogspot.com/2016/07/excelpie-chart1.html

2/25/2020

Excel。カテゴリー別の順位を算出するには、RANK.EQ関数では対応できません。【Ranking by category】

Excel。カテゴリー別の順位を算出するには、RANK.EQ関数では対応できません。

<RANK.EQ関数・COUNTIFS関数>

次の表を用意しました。

氏名が五十音順になっているリストですが、全体の順位を算出するD列には、RANK.EQ関数を使うことで、順位を算出することが容易にできます。

それでは、全体順位を算出してみましょう。

D2をクリックして、RANK.EQ関数ダイアログボックスを表示します。

数値には、C2。
参照には、数値が含まれている全体なので、$C$2:$C$10
オートフィルで数式をコピーしますので、絶対参照を設定することを忘れないようにしましょう。

順序は、数値がいいものを1位という設定にしますので、0。

それでは、OKボタンをクリックして、オートフィルで数式をコピーして確認してみましょう。

このように、全体順位を算出するには、RANK.EQ関数を使うことで算出できることがわかりました。

なお、D2の数式は、
=RANK.EQ(C2,$C$2:$C$10,0)

では、B列のクラスというカテゴリー別での順位を算出するには、どうしたらいいのでしょうか?

先程確認したRANK.EQ関数には、条件を設定する引数はありませんでした。

また、最近のExcelには、IFS関数やMAXIFS関数など、条件付きで対応できる関数も登場してきましたが、残念ながら、順位を算出する、RANK.EQ関数には、条件付きに対応していません。

そこで、順位を算出場合どのようにしたらいいのか考えてみると、
カテゴリー別で、該当する数値より、大きい値があるのかを確認して、大きい値がないならば、1位ということですよね。

複数条件で、件数を算出するという、考え方なので、使用する関数は『COUNTIFS関数』を使ってみると算出できそうです。

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

検索条件範囲1には、$B$2:$B$10
今回、範囲1は、カテゴリー別の判定をさせます。

検索条件1には、B2

検索条件範囲2には、$C$2:$C$10
得点の列です。
範囲1と範囲2ともに、オートフィルで数式をコピーするので、絶対参照を設定忘れないようにしましょう。

最後に、検索条件2には、
">"&C2
比較演算子とセル番地を組み合わせて使用する時には、比較演算子を「”(ダブルコーテーション)」で囲む必要があります。

そして、文字結合の「&」をつかって、セル番地を結合させる必要があります。

“>C2”としてしまうと、>C2という文字を検索してしまうので、当然条件に合致するものはありませんので、注意が必要です。

OKボタンをクリックして、次の数式が出来ていますが、まだ数式としては完成していません。

E2の数式は、
=COUNTIFS($B$2:$B$10,B2,$C$2:$C$10,">"&C2)

このままだと、自分自身よりも大きいデータがあれば数える仕組みですが、自分自身よりも大きいデータがない場合は、「0」になってしまいます。

今回は順位を算出したいので、0位というのは、おかしいので、数式の最後に「+1」をする必要があります。

よって、E2の数式は、
=COUNTIFS($B$2:$B$10,B2,$C$2:$C$10,">"&C2)+1

では、オートフィルで数式をコピーして確認してみましょう。

このように、条件付きで順位算出することができましたね。

2/24/2020

今週のFacebookページの投稿 2020/2/17-2020/2/23

今週のFacebookページの投稿 2020/2/17-2020/2/23

<Facebookページ>

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


2月17日
Excel。CORREL関数。
読み方は、コーレルで、2組のデータの相関関係を算出します

2月18日
Excel。COS関数。
読み方は、コサインで、角度の余弦(コサイン)を算出します

2月19日
Excel。COSH関数。
読み方は、ハイパーポリック コサインで、数値の双曲線余弦を算出します

2月20日
Excel。COT関数。
読み方は、コタンジェントで、角度の余接を算出します

2月21日
Excel。COTH関数。
読み方は、ハイパーポリック コタンジェントで、数値の双曲線余接を算出します

2月22日
Excel。COUNT関数。
読み方は、カウントで、数値の個数を算出します

2月23日
Excel。COUNTA関数。
読み方は、カウントエーで、空白セル以外の件数を算出します

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

2/22/2020

Excel VBA。Excel VBAで日付を抽出する方法を改めて確認してみよう。【filter】

Excel VBA。Excel VBAで日付を抽出する方法を改めて確認してみよう

<Excel VBA>

日頃同じような処理をする場合、面倒なのでマクロにすることが多くあります。今回ご紹介する日付を抽出するというケースは、昔からよく作られるマクロなのですが、Excel 2003で作った場合にはExcel 2007以降では、すんなり稼働しないので、修正する必要があります。

では、早速Excel VBAで日付を抽出するマクロを作成していきましょう。
次のような表を用意しました。

【基本形から確認しましょう。】
営業日が2020/2/15のみを抽出するための構文をつくってみましょう。

Sub 日付抽出()
    Range("a1").AutoFilter field:=1, Criteria1:="2020/2/15"
End Sub

たったこれだけですが、実行してみましょう。

このように抽出することができました。
構文を説明すると、
Range("a1").AutoFilterは、A1を起点として、オートフィルターを設定します。

field:=1, Criteria1:="2020/2/15"
こちらは、
field:=1は、1列目でフィルターをかけます。

そして、
Criteria1:= "2020/2/15"
Criteriaは、条件のことですね。

意外と簡単なのですが、注意する必要があります。
それが、『表示形式』です。

たとえば、営業日の表示形式を年月日に変更して、マクロを実行してみましょう。

すると、抽出してくれないことがわかります。

ようするに、日付の抽出では、シリアル値を考えるのではなく、表示形式を考えないといけませんので、注意が必要です。
固定日の抽出というケースは少ないと思いますので、次は、今年のデータを抽出するようにアレンジしてきます。
データを一部変更しました。

Exce VBAの構文を次のようにアレンジしました。
Sub 日付抽出()
    Range("a1").AutoFilter field:=1, Operator:=xlFilterDynamic, Criteria1:=xlFilterThisYear
End Sub
実行してみましょう。

このように、2020年だけが抽出されましたね。
構文を確認しておきましょう。
Operator:=xlFilterDynamic
OperatorにxlFilterDynamicという定数を設定することで、様々な抽出を設定することができます。今年という条件で抽出したいので、
Criteria1:=xlFilterThisYear
と設定すればいいということになります。

このxlFilterDynamicは、Excelの日付フィルターのところを行っています。

この中の、今年が、「xlFilterThisYear」というわけです。
なので、
日にち
今日 xlFilterToday
昨日 xlFilterYesterday
明日 xlFilterTomorrow


今週 xlFilterThisWeek
先週 xlFilterLastWeek
来週 xlFilterNextWeek


今月 xlFilterThisMonth
先月 xlFilterLastMonth
来月 xlFilterNextMonth
1月 xlFilterAllDatesInPeriodJanuary
2月 xlFilterAllDatesInPeriodFebruray
3月 xlFilterAllDatesInPeriodMarch
4月 xlFilterAllDatesInPeriodApril
5月 xlFilterAllDatesInPeriodMay
6月 xlFilterAllDatesInPeriodJune
7月 xlFilterAllDatesInPeriodJuly
8月 xlFilterAllDatesInPeriodAugust
9月 xlFilterAllDatesInPeriodSeptember
10月 xlFilterAllDatesInPeriodOctober
11月 xlFilterAllDatesInPeriodNovember
12月 xlFilterAllDatesInPeriodDecember

四半期
今四半期 xlFilterThisQuarter
前四半期 xlFilterLastQuarter
来四半期 xlFilterNextQuarter
第1四半期 xlFilterAllDatesInPeriodQuarter1
第2四半期 xlFilterAllDatesInPeriodQuarter2
第3四半期 xlFilterAllDatesInPeriodQuarter3
第4四半期 xlFilterAllDatesInPeriodQuarter4


今年 xlFilterThisYear
昨年 xlFilterLastYear
来年 xlFilterNextYear

期間
今年の初めから今日まで xlFilterYearToDate

という定数を設定することで、日付を抽出することができます。
ちなみに、2月なのですが…
期間内の全日付:2月xlFilterAllDatesInPeriodFebruray
2月の単語は、「February」のはずですが、なぜか、「Februray」と間違っていますが、間違っているのが正しいので、入力する時に注意する必要があります。

2/21/2020

Excel Technique_BLOG Categoryに追加しました。2020/2/21

Excel Technique_BLOG Categoryに追加しました。

<目次サイト>

このBLOGの記事を、
カテゴリー分けにした【Excel Technique_BLOG Category】に追加しました。

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

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


<続きはこちら>
Excel。スケジュール帳。期間の日付を入力するとセルが自動的に塗りつぶすガントチャート
https://infoyandssblog.blogspot.com/2015/03/exceldiary.html

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

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


<続きはこちら>
Excel。条件付書式のデータバーを数値に重ねない方法
https://infoyandssblog.blogspot.com/2015/03/excel2013conditional-formatting.html

Excel。塗りつぶしたセルを数えられると3交代シフトも作れちゃう

午前・午後・夜間の3交代シフトを作れないかなぁ~といわれたもので、こんなものを作ってみた

<続きはこちら>
Excel。塗りつぶしたセルを数えられると3交代シフトも作れちゃう
https://infoyandssblog.blogspot.com/2015/03/excelshift-table3.html

Excel。お客の年齢階層別ピラミッドグラフをつくってみる。

ピラミッドグラフというと、グラフがピラミッド。三角錐のグラフではなくて、よく、年齢別の人口分布などに使われるグラフの事ですね。
ビラミッド分布グラフ


<続きはこちら>
Excel。お客の年齢階層別ピラミッドグラフをつくってみる。
https://infoyandssblog.blogspot.com/2015/03/excelgraph_25.html

2/19/2020

Excel。部分二重円グラフを作るにはドーナツグラフと円グラフの組み合わせで作ります

Excel。部分二重円グラフを作るにはドーナツグラフと円グラフの組み合わせで作ります

<部分二重円グラフ>

Excelのグラフは、アイディアによって様々なグラフを作れます。

今回は、円グラフの一部分が二重になっている円グラフの作り方を確認していきます。
部分二重円グラフ

単純な二重ドーナツグラフならば簡単に作成することができますが、今回のように、円グラフだけど、二重になっているところをどのようにするのか?というのがポイントです。

今回このグラフを作るための表を次のように用意しました。

円グラフを最初から二重で描くことができないので、最初は、ドーナツグラフで作る必要があります。

その場合、左側のデータが内側に、右側のデータが外側に描かれますので、表の作り方に注意する必要があります。

A2:C5を範囲選択して、ドーナツグラフを描きます。

挿入タブの「円またはドーナツグラフの挿入」にあるドーナツをクリックします。

二重ドーナツグラフが描かれました。

グラフタイトルと凡例を今回は削除します。

また、グラフエリアは白色なので、説明上わかりにくいので、見やすいように、グラフエリアをグレーに変更しておきます。

ドーナツグラフ自体(系列が「地域」でも「売上高」のどちらでもかまいません。)をクリックして、グラフのデザインタブにある「グラフの種類の変更」をクリックします。

グラフの種類の変更ダイアログボックスが表示されます。

すべてのグラフタブの「組み合わせ」が選択されていることを確認します。

系列名の上段のデータ。
今回は、売上高という外側のドーナツのグラフの種類を「円」に変更します。

系列名の下段のデータ。
今回は、地域という内側のドーナツは、グラフの種類はそのまま「ドーナツ」にしておき、第2軸にチェックマークをいれて、OKボタンをクリックします。

塗りつぶしの色を変更し、今回のグラフは枠線が白になっているので、枠線は色なしに変更します。

あとは、データラベルを表示させていきます。
部分二重円グラフ

データラベルを表示したら、フォントサイズを修正して完成です。

今回のグラフは、円グラフを、第2軸にすることができないというのが、ポイントでした。

最初ドーナツグラフを作成しておいてから、外周のドーナツグラフを円グラフに変更し、内側のドーナツを第2軸に変更するという流れが必要になるのがわかりにくいところですね。

現場では様々なグラフを釣れるようになるとわかりやすい資料をつくれるようになるかもしれませんので、色々なグラフに挑戦してみるといいかもしれませんね。

2/18/2020

今週のFacebookページの投稿 2020/2/10-2020/2/16

今週のFacebookページの投稿 2020/2/10-2020/2/16

<Facebookページ>

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

2月10日
Excel。COMPLEX関数。
読み方は、コンプレックスで、複素数を表す文字列を生成します

2月11日
Excel。CONCAT関数。
読み方は、コンキャットで、複数の文字列を統合します

2月12日
Excel。CONCATENATE関数。
読み方は、コンカティネイトで、複数の文字列を統合します

2月13日
Excel。CONFIDENCE関数。
読み方は、コンフィデンスで、正規分布で母集団に対する信頼区間の1/2幅を算出します

2月14日
Excel。CONFIDENCE.NORM関数。
読み方は、コンフィデンス・ノーマルで、正規分布で母集団に対する信頼区間の1/2幅を算出します

2月15日
Excel。CONFIDENCE.T関数。
読み方は、コンフィデンス・ティーで、t分布で母集団に対する信頼区間の1/2幅を算出します

2月16日
Excel。CONVERT関数。
読み方は、コンバートで、数値の単位を変換します

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

2/16/2020

Excel。時間の条件分岐はTIMEVALUE関数を使うのが便利です。【TIMEVALUE】

Excel。時間の条件分岐はTIMEVALUE関数を使うのが便利です。

<TIMEVALUE関数>

作業時間が、時間以内に終了しているならば、「○」時間を超過しているならば、「タイムオーバー」というような判断分岐をする場合、意外と落とし穴があるので確認しておきましょう。

次の表を用意しました

D列の所要時間は、終了時間から開始時間を減算した結果を表示してあります。
数式は、
=C2-B2
ですね。

時間以内に終了しているならば、「○」時間を超過しているならば、「タイムオーバー」という判断分岐をしたいので、当然IF関数を使うわけですね。

0:50を超過していたらということを論理式に設定しますので、
D2<=0:50
と設定してみると、正しくありませんと表示されてしまいます。

一応、OKボタンをクリックしてみると、

問題があると、冷たい反応…
どうやら文字として認識しようとしています。

では、次のように数式を修正してみるとどうでしょうか?

論理式を、
D2<="0:50"
としました。「”(ダブルコーテーション)」で0:50を囲んでみました。

今度は、うまくいきそうな感じがしますので、OKボタンをクリックして、数式をオートフィルでコピーしてみましょう。

成功したと思ったら、なんと、50分オーバーしているところも「○」が表示されてしまっています。

どうしてでしょう?

ここに落とし穴があるわけです。

そもそも、時間通しを減算していますので、算出されているD列の値は、時間なわけです。

Excelは、1日を1としたシリアル値を使っていますから、例えばExcelで1時間は1/24ということになります。

今回算出されているD列も、表示形式を標準にしてみましょう。

1以下なのが本来の姿です。

そして、”0:50”としたことで、文字列になっています。

文字と数値では数値の方が文字コード上小さいので、IF関数の結果、すべて「○」になってしまったわけです。

【TIMEVALUE関数を使うと問題解決】

問題なのは、文字型なのと時刻型という「型」が異なっているのが原因です。

そこで、TIMEVALUE関数を使うと、時刻型とすることができるので、問題を解決することができます。

では、IF関数を修正していきます。

論理式を次のようにTIMEVALUE関数を使って修正します。
D2<=TIMEVALUE("0:50")

OKボタンをクリックしたら、オートフィルで数式をコピーしましょう。

今回は、50分超過しているデータは、「タイムオーバー」と表示されていることが確認できました。

今回のように、日付や時間を使うときには、Excelであっても、Access同様に「型」を意識して数式を作る必要がありますので、算出結果がおかしな時には、「型」を確認するといいのかもしれませんね。

2/15/2020

Excel関数辞典 VOL.25。ERF関数~ERROR.TYPE関数

Excel関数辞典 VOL.25。ERF関数~ERROR.TYPE関数

<Excel関数>

今回は、ERF関数~ERROR.TYPE関数までをご紹介しております。

ERF関数
イーアールエフ
誤差関数の積分値を算出
ERF(下限[,上限])


ERFC関数
イーアールエフシー
相補誤差関数の積分値を算出
ERFC(下限)


ERFC.PRECISE関数
イーアールエフシー・プリサイズ
相補誤差関数の積分値を算出 Excel2010
ERFC.PRECISE(下限)


ERF.PRECISE関数
イーアールエフ・プリサイズ
誤差関数の「0~下限」までの積分値を算出
ERF.PRECISE(下限[,上限])


ERROR.TYPE関数
エラー・タイプ
エラーのタイプを表す数値を算出する
ERROR.TYPE(エラー値)

2/13/2020

Excel。ベルヌーイ分布をExcelで確認してみよう。【Bernoulli distribution】

Excel。ベルヌーイ分布をExcelで確認してみよう。

<COUNTIF関数>

Office365 Insiderに登場した「RANDARRAY」という関数を確認する表を作ったので、削除するのはもったいないので、今回は、Excelでベルヌーイ分布を紹介していきます。

ベルヌーイ分布というのは、ある事象が発生する・しないのように、2通りしかない事象を「0」と「1」で表す確率変数の分布のことで、比率を考える時の基本となる分布と考えられています。

RANDARRAY関数の確認で作った表をつかうので、サイコロの目の出る確率で、しかも、1と2が出る確率と3~6の出る確率という表で行っていきます。

本来ならば、1と2は0。
3~6を1と置換するのですが、COUNTIF関数を使えば同じなので、置換させずそのままで行っていきます。

100行×10列のデータなので、こんかいのサンプルデータ数は、1000個で行っていきます。

最初は、サイコロを投げる試行を算出しておきます。

1~6の目なので、6つ。そして、3~6の目が4つ。なので、4/6=2/3。

2÷3は割り切れないので、ROUND関数で、小数点第4位までの表示として四捨五入しています。

【データをもとに度数分布表を算出】


サイコロの1~2の目が1000回中に何度登場したのかを算出します。M2の数式は、
=COUNTIF($A$1:$J$100,"<=2")
2以下の数値がいくつあるのかを算出させればいいわけなので、使う関数はCOUNTIF関数で十分ですね。

とても簡単に度数を算出することができました。

なお、範囲に絶対参照を設定しているのは、3~6の目の度数を算出するにあたり、この数式を引用するのが楽なためです。

同じように、M3にサイコロの目が3~6の度数を算出していきます。
M3の数式は、
=COUNTIF($A$1:$J$100,">=3")

条件に比較演算子を使う場合で、直接数値などを使う場合は、「”(ダブルコーテーション)」で囲む必要がありますので、注意しましょう。

今回は、ベルヌーイ分布と比較するために、相対度数表も作成しておきましょう。

相対度数は、「構成比」ですから、N2の数式は、
=M2/$M$4
このように、簡単な数式で算出することができます。
N3も同様です。
=M3/$M$4

【ベルヌーイ分布表をつくる】


O2の数式は、
=1-$L$7
O3は、サイコロを投げる試行と同じです。

ベルヌーイ分布自体の算出は、驚くほど簡単な数式を使って算出することができます。

今回の結果のように、相対度数とベルヌーイ分布の間には、大差がありません。

ベルヌーイ分布に従って得られた多くのデータの相対度数は、ベルヌーイ分布に確率的に一致するようになっています。

仮にサンプルのデータがベルヌーイ分布と、大差が発生する場合には、何か原因があると想定されます。