|
▼ビギナー さん:
こんにちは。
>エクセルのマクロでスポーツテストの結果表を作成したいのですが、
>例えば、立幅跳びが何回以上だったら何点というのを
>結果の回数を入力しただけで、すぐ点数を検索して出してくれるような
>サブプロシージャーを作りたいのですが、どうすれば出来ますか?
>年齢や性別によって結果も変わるようにしたいのですが・・
結果の回数、年齢、性別によって点数が読めるマトリックスが
あるはずなんですけどね!!
一例ですが、
Sheet1というシートに
A B C D E F
01 評価男 10 20 30 40 50
02 40 138 170 188 179 164
03 50 162 190 216 207 191
04 60 174 210 230 221 205
05 70 186 230 244 235 218
06 80 198 250 258 249 226
07 90 205 280 265 255 232
08 100 211 300 273 264 246
09
10 評価女 10 20 30 40 50
11 40 117 145 160 152 139
12 50 138 162 184 176 162
13 60 148 179 196 188 174
14 70 158 196 207 200 185
15 80 168 213 219 212 192
16 90 174 238 225 217 197
17 100 179 255 232 224 209
という表があったとします。
A列は、点数、1行目、10行目は、男及び、女の年齢です
(10は、10代、20は、20代という意味です)。
同じシートの
H2---年齢(15とか26とか)
I2---性別(男、女)
J2---記録 結果の回数
K2---評価
とします。
まず、名前の定義を行います。
「挿入」---「名前」---「定義」とクリックし、
「名前の定義」ダイアログを表示させてください。
名前と参照範囲として以下のデータを登録してください。
名前 参照範囲
男立幅跳評価表 =Sheet1!$B$2:$F$8
男立幅跳年齢表 =Sheet1!$B$1:$F$1
男評価表 =Sheet1!$A$2:$A$8
男年齢Index =IF(ISERROR(MATCH(Sheet1!$h$2,男立幅跳年齢表,1)),
1,MATCH(Sheet1!$h$2,男立幅跳年齢表,1))
男記録Index =IF(ISERROR(MATCH(Sheet1!$J$2,
INDEX(男立幅跳評価表,,男年齢Index),1)),1,
MATCH(Sheet1!$J$2,INDEX(男立幅跳評価表,,
男年齢Index),1))
女立幅跳評価表 =Sheet1!$B$11:$B$17
女立幅跳年齢表 =Sheet1!$B$10:$F$10
女評価表 =Sheet1!$A$11:$A$17
女年齢Index =IF(ISERROR(MATCH(Sheet1!$h$2,女立幅跳年齢表,1)),
1,MATCH(Sheet1!$h$2,女立幅跳年齢表,1))
女記録Index =IF(ISERROR(MATCH(Sheet1!$J$2,
INDEX(女立幅跳評価表,,女年齢Index),1)),1,
MATCH(Sheet1!$J$2,INDEX(女立幅跳評価表,,
女年齢Index),1))
上記の名前を登録した後に、
Sheet1のセルK2には、
=IF(I2="男",INDEX(男評価表,男記録Index,1),INDEX(女評価表,女記録Index,1))
という数式を入力してください。
例えば、
H2に 30
I2に 男
J2に 250
と入力すると、
K2に70という評価が表示されます。
マトリックスによっては、数式を変更しなければなりませんが、
このように数式だけで評価設定は可能だと思います。
試してみてください。
|
|