- 締切済み
条件を付けて組み合わせを絞って平均を出す関数は?
ABCに123を当てはめるとAから123、132、213、231、312、321で平均Aから2、2、2です。 A<Bという条件を付けるとAから123、132、231で平均Aから(1、33)、(2、67)、2です。 さらにA<Cという条件を付けると123、132で平均Aから1、(2、5)、(2、5)です。 さらにB<Cという条件を付けると123だけとなり平均はAから1、2、3です。 このように大小の条件を付けて成り立つ組み合わせを絞り込み、平均だけを出したいのですがこんな事が可能なエクセル関数はないでしょうか?今回は説明のためにABCだけでしたが実際はAからPに1から16を当てはめたいです。
- みんなの回答 (8)
- 専門家の回答
みんなの回答
- layy
- ベストアンサー率23% (292/1222)
AとBでAが勝つ AとCでAが勝つ ・・・ AとPでAが勝つ これが15パターン BとCでBが勝つ BとDでBが勝つ ・・・ BとPでBが勝つ これが14パターン OとPでOが勝つ これが1パターン 左>右では 15+14+・・・で240パターン 逆の左<右は BとAでBが勝つ は1パターン CとAでCが勝つ CとBでCが勝つ は2パターン ・・・ で 計240パターン です。 引き分けは??ですが。 参考で。
- layy
- ベストアンサー率23% (292/1222)
確率も?。 何パターンあって発生が何%か、の比を数値にしている感じです。 確率の式で求められるなら、関数電卓の機能が使えるかもしれません。 参考で。
- layy
- ベストアンサー率23% (292/1222)
ABCは、6パターン=2:2:2 ABCのB<Cは、1パターン=1:2:3 や NO5さんの回答をみるとメジアンと一致しています。 (実現は関数なりVBAでしょうが、) 求め方は、数学的な話ではないでしょうか?。 あと、 16要素しかないということなら1度計算してしまえば決まるのでは?。 >平均Aから(1、33)、(2、67) >平均Aから1、(2、5)、(2、5) このかっこの意味がわかりません。
- keithin
- ベストアンサー率66% (5278/7941)
[計算例1] 1,2,3,4,5の5つの組で,B>Cの場合 判定に係わらないA,D,Eの平均値は等しく =AVERAGE(1,2,3,4,5)=3.0になる 判定に係わるBとCの,判定を満たす組み合わせは B C 5 4 5 3 5 2 5 1 4 3 4 2 4 1 3 2 3 1 2 1 であり,この平均が求める答えになる Bの平均 4.0 Cの平均 2.0 [計算例2] 1,2,3,4,5,6,7の7つの組で,B>CかつC>Dの場合 判定に係わらないA,E,F,Gの平均値は等しく =AVERAGE(1,2,3,4,5,6,7)=4.0になる。 判定に係わるB,C,Dの,判定を満たす組み合わせは B C D 7 6 5 7 6 4 7 6 3 7 6 2 7 6 1 7 5 4 7 5 3 7 5 2 7 5 1 7 4 3 7 4 2 7 4 1 7 3 2 7 3 1 7 2 1 6 5 4 6 5 3 6 5 2 6 5 1 6 4 3 6 4 2 6 4 1 6 3 2 6 3 1 6 2 1 5 4 3 5 4 2 5 4 1 5 3 2 5 3 1 5 2 1 4 3 2 4 3 1 4 2 1 3 2 1 であり,この平均が求める答えになる Bの平均 6.0 Cの平均 4.0 Dの平均 2.0
- layy
- ベストアンサー率23% (292/1222)
VBA応用では、演算はもちろん、画面表示して値入力したりボタン押すこともできてきます。 実際のコードはできないにしても、新規マクロを作ったらそれがコードになるので、イメージはつかんでおくのがよいでしょう。VBAでできているもの、サンプルからの動かし方は見ておく。
- layy
- ベストアンサー率23% (292/1222)
こういうのはプログラムになり、VBAで実現し実行でしょう。 関数にしてもセルを使うにしても使うときに考えながらするようなら、どこのセルをどう変えたら結果が出るか毎回把握できての話。 プログラム化して、AからDならD、AからPならP、必要な要素数を入力させることでそれに合う組み合わせや平均は出せると思います。 実行時間も問題ないと思います。 ABCのケースでいいので、わかりやすく伝えてサンプルを貰う。
お礼
ありがとうございます。VBAなんて初めて聞きました。早速やっていますがさっぱりわかりません。誰かに作ってもらおうと考えています。「VBAで順位の期待値を出したい。」というタイトルで質問しようと思います。
- keithin
- ベストアンサー率66% (5278/7941)
>このように大小の条件を付けて成り立つ組み合わせを絞り込み、平均だけを出したい Database関数を使って計算できます。 添付図参照: >ABCに123を当てはめるとAから123、132、213、231、312、321で 計算の元データとして,ABC列に全てのケースを羅列しておく。 ○計算例1「A<Bである組の平均」 F2セルに =A2<B2 と記入(記入した内容をF3セルに表示してある) 一つ上のF1セルを「必ず空っぽに」しておく ABC列にある元データ群の中から,この条件を満たす組(黄色で塗ってある)のA列のデータの平均値は F5セルに =DAVERAGE($A$1:$C$7,COLUMN(A1),$F$1:$F$2) のように求まります。 F5をG5,H5にコピーし,各列の黄色い組の平均値を得ます。 ○計算例2「A<Bであり,かつB>Cである組の平均」 F9セルに =A2<B2 と記入 G2セルに =B2>C2 と記入 やはり1行上のF8,G8セルは,必ず空っぽにしておく。 ABC列にある元データ群の中から,この条件を満たす組(枠で囲ってある)のA列のデータの平均値は F12セルに =DAVERAGE($A$1:$C$7,COLUMN(A1),$F$8:$G$9) のように求まります。 F12をG12,H12にコピーし,各列の枠で囲った組の平均値を得ます。
お礼
回答ありがとうございます。1から16を全て羅列するのは不可能に近いため0から17までという範囲を付けてその範囲の全ての数で同じ様に条件を付けて平均を出す事は出来ないでしょうか?
補足
ちなみにこれは16チーム参加のカルタ大会で順位の期待値を出して組み合わせを考えたり順位を付けたりするのに使用しようと思っています。カルタ大会なので一斉に終わって一斉に始まるため入力に時間がかかるとそれだけ参加者を待たせる事になります。質問の欄に付けたそうと思っていたのですが編集の仕方がわからなかったのでここに記入させていただきました。順位の期待値を出せればスポーツ大会等でより正確に近い結果が出せるのではと期待しています。
- mshr1962
- ベストアンサー率39% (7417/18945)
Excel2007/2010ならAVERAGEIF,AVERAGEIFS関数があります。 条件がひとつの場合 =AVERAGEIF(条件の範囲,条件,平均を出す範囲) http://www.becoolusers.com/excel/averageif.html 条件が複数の場合 =AVERAGEIF(平均を出す範囲,条件の範囲1,条件1,条件の範囲2,条件2[,条件の範囲n,条件n]) http://www.becoolusers.com/excel/averageifs.html Excel97/98/2000/2002/2003の場合 条件がひとつの場合 =SUMIF(条件の範囲,条件,平均を出す範囲)/COUNTIF(条件の範囲,条件,平均を出す範囲) http://kuwako-lab.com/wordpress/?p=1011 条件が複数の場合 =SUMPRODUCT((条件の範囲1=条件1)*(条件の範囲2=条件2)[*(条件の範囲n=条件n)],平均を出す範囲)/SUMPRODUCT((条件の範囲1=条件1)*(条件の範囲2=条件2)[*(条件の範囲n=条件n)]) http://www.efcit.co.jp/cgi-bin2/exqalounge.cgi?print+200612/06120077.txt
お礼
回答ありがとうございます。具体的にどの様に入力すればいいのかわからないためABCDに1から4をあてはめ、A<B、B<Cの時を例にどの様に入力すればいいか教えてもらえないでしょうか?僕が必要なのは1から16なので全てを羅列するというのは無理なので0から17までの全ての数でもいいです。
お礼
メジアンですか。調べてみます。かっこの中の点は小数点でかっこ1つで1つの数字を表します。かっこの外の点はAとBなどの間の点です。