14:16こんにちは。投稿させていただきます。業務上よく使用するTukey-Kramerの多重比較検定について,ExcelVBAによるプライベート関数を作成してみたのですが,これで正しい検定ができているのかイマイチ自信が持てずに困っています。=Tukey([データ範囲],[[比較対象群2],[比較対象群2],[群のデータ方向(1:列方向,2:行方向)])で指定した二群間の差の有意性を返す,というものです。15:38早速のご意見ありがとうございます。テストデータと結果を,とのことなので以下に示します。17:39違ってますね。Tukeyの多重比較の区別はつきますか?WorksheetFunction.FInvではだめですよね。これで正しい検定ができているのかイマイチ自信が持てずに困っています。プログラムを作って,正しく計算できているかどうかチェックするのは,簡単です。答えの分かっているデータを与えて,正しい答えが出るかどうかを確かめればよいだけです。チェックの要点は,境界領域で正しい答えが出るかどうかやってみる。出来るはずだけど11群を指定したらどうなるかとか。オプションを指定したときに,正しくその指定を反映して計算してくれるか?とかね。正の値しか受け付けないはずのデータとして負の値や0を与えたらどうなるかとか,整数値しか駄目なものに小数付きのデータを与えたらどうなるかとか。要するに,プログラムが予期しないデータを受け取ったときにも正しく処理できるようにすること。アプリケーションの半分以上は,データやパラメータが適正かどうかの判定と処理に関するものであると思いますね(つまらない処理・確認ですけど,人間はいつも理不尽な処理を命令するものだと思うべし)。この辺りをちゃんとやらないと,某証券市場システムのように,注文が100以上になると処理できないとか,ある会社を指定したときに処理できないとか,色々不都合が生じるのです。理想的にというか当たり前というか,あらゆる条件の組み合わせに対応するテストデータを用意し(当然,その時の正しい結果が分かっている必要がある),正しい結果が出ることを確かめるのです。しないと,そのプログラムの妥当性は保証されません。いうことをふまえると,あるプログラムが正しいかどうかは,そのプログラムの作者が確かめるしかない(他の人に検証を委任するのは無責任)。他の人は,もしあれば,(特定の条件下における)プログラムの欠陥を指摘するのみ。