dポイントプレゼントキャンペーン実施中!

ゴルフのスコアの対戦成績の集計の計算式を教えてください。
私と相手の勝ち数、負け数、引き分け数の計算方法です。
(例)
月日 私のスコア A氏のスコア B氏のスコア C氏のスコア D氏のスコア 
1月   100 90 95 105
2月   95 97 93 89
3月   93 99 100 85
4月   91 91 99 101
 (集計結果)
私の勝       2 1 3 0
私の負け      1 2 0 2
引き分け      1 0 0 0        

よろしくお願いします。

A 回答 (1件)

マクロ(VBA)が使えるなら以下の様な物はいかがでしょうか?


※ 下図の赤枠の部分をダブルクリックして開いた所へ以下のコードをコピペして下さい
※ 使用時は「私の勝」などの行を気にせずデータを入力すると自動的にA列の最後の次の行に集計します(最後の人の列まで値を入れたりクリアしたりして下さい)

Private Sub Worksheet_Change(ByVal Target As Range)

Dim 行 As Long
Dim 列 As Long
Dim 勝数 As Long
Dim 負数 As Long
Dim 引分 As Long
 Application.EnableEvents = False
 For 列 = 3 To Cells(1, Columns.Count).End(xlToLeft).Column
  勝数 = 0
  負数 = 0
  引分 = 0
  For 行 = 2 To Cells(Rows.Count, 1).End(xlUp).Row
   If Cells(行, 列).Value <> "" Then
    If Cells(行, 2).Value < Cells(行, 列).Value Then 勝数 = 勝数 + 1
    If Cells(行, 2).Value > Cells(行, 列).Value Then 負数 = 負数 + 1
    If Cells(行, 2).Value = Cells(行, 列).Value Then 引分 = 引分 + 1
   End If
  Next
  Cells(行, 列).Value = 勝数
  Cells(行 + 1, 列).Value = 負数
  Cells(行 + 2, 列).Value = 引分
 Next
 Range(Cells(行 + 3, 1), Cells(Rows.Count, Columns.Count)).ClearContents
 Cells(行, 2).Value = "私の勝"
 Cells(行 + 1, 2).Value = "私の負"
 Cells(行 + 2, 2).Value = "引き分け"
 Application.EnableEvents = True

End Sub
「Excel 対戦成績の集計式」の回答画像1
    • good
    • 0
この回答へのお礼

ありがとう

ありがとうございます。
VBAは使用したことはまだありませんが、作成していただいたプログラミングのコードとオペレーションで、実践してみます。
何かの機会にVBAは使用してみたいと思っていましたので、この機会に経験してみます。
こんなにご丁寧な回答いただき感謝です。

お礼日時:2020/02/16 11:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!