Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


41028 / 76736 ←次へ | 前へ→

【40794】Re:教えてください!
発言  ichinose  - 06/7/24(月) 13:12 -

引用なし
パスワード
   ▼ビギナー さん:
こんにちは。

>エクセルのマクロでスポーツテストの結果表を作成したいのですが、
>例えば、立幅跳びが何回以上だったら何点というのを
>結果の回数を入力しただけで、すぐ点数を検索して出してくれるような
>サブプロシージャーを作りたいのですが、どうすれば出来ますか?
>年齢や性別によって結果も変わるようにしたいのですが・・
結果の回数、年齢、性別によって点数が読めるマトリックスが
あるはずなんですけどね!!

一例ですが、
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という評価が表示されます。

マトリックスによっては、数式を変更しなければなりませんが、

このように数式だけで評価設定は可能だと思います。

試してみてください。

0 hits

【40776】教えてください! ビギナー 06/7/24(月) 3:21 質問
【40778】Re:教えてください! 徘徊者 06/7/24(月) 8:00 発言
【40794】Re:教えてください! ichinose 06/7/24(月) 13:12 発言
【40810】Re:教えてください! ビギナー 06/7/24(月) 16:19 お礼
【40813】Re:教えてください! ビギナー 06/7/24(月) 16:49 発言
【40847】Re:教えてください! 注意 06/7/25(火) 9:24 発言

41028 / 76736 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free