Jose's FANTASY SPORTS!

アメリカンフットボールを中心にスポーツ好きで、カントリーギター好きのJoseによる雑記帳です。

細かい事は分からんがVBAがやりたい-19-

2012年07月15日 23時00分00秒 | いきなりVBA(Excel)
[ いきなりVBA ]
いきなりVBA 第1回 LOG
突如再開、このコーナー。
今度こそ、本題。ユーザ定義関数決着編です。

さて、いよいよ待ちに待ったNFL方式のQBレーティング算出 ユーザ定義関数です。

もう、あれこれ言うのはやめましょう。
面倒だという方は、以下のコードをVBEに貼り付けて、Let's計算!

Function QBRATE(attempt As Long, complete As Long, yds As Long, td As Long, intercept As Long) As Double

'Comp%
Dim perComp As Double
perComp = (complete / attempt * 100 - 30) * 0.05

Select Case perComp
Case Is <= 0
perComp = 0

Case Is > 2.375
perComp = 2.375

End Select

'Yards%
Dim perYard As Double
perYard = yds / attempt
perYard = (perYard - 3) * 0.25

Select Case perYard
Case Is <= 0
perYard = 0

Case Is > 2.375
perYard = 2.375

End Select

'TD%
Dim perTD As Double
perTD = (td / attempt) * 100 * 0.2

Select Case perTD
Case Is <= 0
perTD = 0

Case Is > 2.375
perTD = 2.375

End Select

'INT%
Dim perInt As Double
perInt = intercept / attempt * 100
perInt = 2.375 - (perInt * 0.25)

If perInt < 0 Then
perInt = 0
End If

'結合最終計算
QBRATE = Round((perComp + perYard + perTD + perInt) / 6 * 100, 2)

End Function

これぞ、ユーザ定義関数にしてまでやる意味があるというもの。(自分は、これにマイナス値や未入力の場合のトラップもつけてますが、今日のところは根幹部分のみという事で。)

存分に計算してみてください。

ちょっと、それっぽい入力欄にして、こんな風にしてもいいですね。
<img src="http://blogimg.goo.ne.jp/user_image/0a/4a/e10a7459a29f810a2b21e51a6b39d9bb.png">
とあるNFLのQBの昨年の数字です。
誰の数字か、分かりますね?

Yahoo! Sportsの表示レーティングともちゃんと合ってました。えっへん。

これで、フラッグフットボールでも、各数字を引数に入れればQBレーティングが算出できますよ。(獲得ヤードとか、ビデオで見返してつけないといけないでしょうけど。)

BGM: Numbers / Kraftwerk
QBレーティングは、とにかく数字をあれこれイジって算出されています。
数値で実力は測れないとか、色々言われるむきもありますが、それなりにやっぱり目安になりますよね。
という訳で、今回のNFL式QBレーティングの算出関数を自分のExcelに組み込んで、いつでも出せるようにしておきましょう。
え? 出てるサイトを見ればいいんじゃ?って? まぁ、そうですね。

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 細かい事は分からんがVBAがや... | トップ | Week15 Santos Update ~転落... »
最新の画像もっと見る

コメントを投稿

いきなりVBA(Excel)」カテゴリの最新記事