2012年3月21日水曜日

教えてください:エクセルで勝敗表を作りたいです

教えてください:エクセルで勝敗表を作りたいです

子どものインターネット将棋の戦績をつけることになりました。

サイトで、対局のデータが出ますので、それを自分でエクセルに加工しています。



お聞きしたいのは、勝・負を数値にする方法です。



例えば、現在は、勝率を計算するのに、私が、

勝敗の列の横にもう1列、「勝」なら1を、「負」なら0を入力する列を作っています。

それで、勝利数を足し算して、対局数で割って、勝率を出しています。

これを、「勝」と入力しただけで、勝手に1と認識してくれる表が作りたいのです。

子どもが自分で表を管理できますし、何よりスマートですよね?

☆☆憧れてしまいます☆☆



例えば、こういう表が作れたら、サッカーの勝点は

「勝」で3点、「分」で1点、「負」で0点と、簡単に出ますよね

(特にサッカーに興味があるわけでなく、使い方の一例なのですが)?



私のステップアップのために、どうかご教授くださいませ。



ちなみに……

学生の頃、MS-DOSの講義があり、

「IF……THEN……」とか、いろいろとやった覚えはあるのですが、

その頃は半分しか理解できず、課題もうまくできませんでした。

OLの頃は、CADのほんの基本的な作業をしたことはありますが、

「DEL*.*」と、大事なデータを全部消去した経験まであります。

幸い(?)、今はプログラムとは全く無縁です。



現在は……

エクセルで、数式とか関数は、SUMしか使ったことがありません。

何をどう使ってよいのか分からないので、

その辺がポイントになるような気がするのですが……。

そんなレベルの主婦です。


|||



>子どもが自分で表を管理できますし・・・・・

<子供さんが「勝ち」、「負け」を入力>

・これは「入力規則」の「リスト」を使い、ドロップダウンリストから選択するようにしたらどうでしょう。

<B列に勝ち負けを>

・B2からB50(いくらでも可)までを選択し、「データ」-「入力規則」をクリック。

・「設定」タブの「入力の種類」で「リスト」を選択。

・同 「元の値」欄に 勝ち,負け と入力する。

・他の所は規定値のままでOKです。

参考サイト

http://www.eurus.dti.ne.jp/~yoneyama/Excel/n-kis.htm

これでBのセルのいずれかを選択するとドロップダウンリストを示す▼が表示され、せんたくできます。

■問題の「勝ち」を1に、「負け」を0に

<例:C列に数字表示>

・C2にB2の値で数字化

=IF(B2="","",IF(B2="勝ち",1,0))

この式をリスト配置した行全部にコピーしておけばOK。

尚最初にB2="",""としたのは、勝ち負けが選択され無いとき空白にしておくためです。



|||



>例えば、こういう表が作れたら、サッカーの勝点は

>「勝」で3点、「分」で1点、「負」で0点と、簡単に出ますよね

◆直接の回答ではありませんが、サッカーの勝敗と順位表を作ったことがありますので参考に

★入力は、赤字の箇所のみです

1)勝敗表示:G3=IF(COUNT(F3,H3)<2,"",TEXT(F3-H3,"○;●;△"))

2)G3の式を、J3,M3,P3,S3とそれぞれ下にコピー

3)結果を対戦テーム側に表示

4)C4=IF(MOD(COLUMN(A2),3)=2,VLOOKUP(OFFSET($F$3,INT(COLUMN(C:C)/3)-1,ROW(A2)*3-MOD(COLUMN(A2)-1,3)-1),{"○","●";"△","△";"●","○"},2,0),OFFSET($F$3,INT(COLUMN(C:C)/3)-1,ROW(A2)*3-MOD(COLUMN(A2)-1,3)-1))

5)C4の式を斜線╲の下のセルにコピー

6)勝:U3=COUNTIF($C3:$T3,U$10) と入力して、U3:W8まで右と下にコピー

7)勝ち点:X3=U3*3+W3 下にコピー

8)得失点:Y3=SUMIF($C$10:$T$10,Y$2,$C3:$T3) 右と下にコピー

9)得失点差:AA3=Y3-Z3 下にコピー

10)順位:AB3=SUMPRODUCT(($X$3:$X$15*10^5+$AA$3:$AA$15>X3*10^5+AA3)*1)+1 下にコピー


|||



『対局のデータが出ますので、それを自分でエクセルに加工』



データがどういう並びで出るのかわかりませんが、例として



A列:対戦相手 B列:勝敗 C列:勝率として



お子さんが入力されることを、考慮してB列はプルダウン選択で入力するように。



B2セルを選択し、データ→入力規則→リスト→元の値に、勝,負 と入力しOK



C2セルには、=IF(B2="","",COUNTIF($B$2:B10,"勝")/COUNTA($B$2:B10)) と入力



B2,C2セルを下のセルにコピー貼り付けでいかがでしょう。



COUNTIF($B$2:B10,"勝")は、勝の数を数えます。

COUNTA($B$2:B10)は、勝・負の数を数えます。


|||



COUNTIFが特定の値のセルの個数を出す関数です。

ですから、勝の個数を出すことで計算式に応用できます。



仮に、B1~B10に、「勝・負」の入力があれば、

=COUNTIF(B1:B10,"勝")

で勝の個数が出ます。

COUNTA(B1:B10)

で、空白以外のセルの個数が出ます。

よって勝率を出すには、

=COUNTIF(B1:B10,"勝")/COUNTA(B1:B10)

として、表示形式を%(パーセンテージ)にすればいいです。



サッカーの例なら、この勝の和に3を掛ければ勝ち点が出せますね。

同じように分は1点ですので個数だけで良い訳ですし、負けは0ですから加点する必要は無いことになり、

=SUM(COUNTIF(B1:B10,"勝")*3,COUNTIF(B1:B10,"分"))

のような式で纏めることが出来ます。


|||



A列が勝ち負けでB列に1,0なら

B1=IF(A1="勝",1,0)



、、勝、負と入れるのは面倒じゃないですか?

1、0を入れてその横に勝ち負けを表示する方がキータッチも少なくていいような、、



B列なくても出来ますけど、、

=COUNTIF(A1:A10,"=勝")/COUNTA(A1:A10)

0 件のコメント:

コメントを投稿