Apple の脅威の通知と金銭目当てのスパイウェアへの対策について

しばらく返答が寄せられていないようです。 再度ディスカッションを開始するには、新たに質問してください。

生徒の成績管理でVLOOKUPかINDEXかmatch関数を活用したい。

質問です。私塾で生徒の小テストの成績管理を行いたいのですが、VLOOKUPかINDEXかmatch関数を自分なりに組んでみたのですが力不足で満足のいく結果が得られませんでした。

入力シートタブに1つの表に5教科の小テストの点数を「教科」「日付」「テスト名」「点数」を入力しています。(画像1枚目)

2枚目の画像のように個人のシートのタブを作成し、表「小テスト 成績」に実施した小テストの「日付」「テスト名」「個人の点数(この場合マートン)」が自動で呼び出されるような関数を作ろうとしています。

更に頭を悩ませているのが、2回目以降のテスト(例:国語の中2漢字)を入力する関数も知りたいです。

表の構成自体はできるだけこのままにしたいです。

お知恵を貸していただければと思います。よろしくお願いします。

Mac mini, macOS 13.4

投稿日 2024/01/28 22:48

返信
スレッドに付いたマーク ベストな回答

投稿日 2024/01/29 22:44

 「小テスト 入力シート」と「小テスト 成績」のそれぞれに、INDEX関数使用の都合上行を追加してしまいますが、次のようになら可能かと思います。


 1. 「小テスト 入力シート」に2行目を追加して、B2に次のように数式を設定します。

 2. 「小テスト 入力シート」のB2をコピーして、2行目のC2から左のセルにペーストします。

 3. 「小テスト 成績」に2行目を追加して、独立したセルに教科ごとに3つ教科名を設定します

  (結合したセルだと数式をコピペしたとき参照が無効になってしまうため)。

  こんな感じです。

 4. 「小テスト 成績」のA4・B4・C4のそれぞれに、次のように数式を設定します。

  ・A4に設定する数式

  ・B4に設定する数式

  ・C4に設定する数式

 5. 「小テスト 成績」のA4〜C4を範囲選択してコピーし、次のようにペーストします。

  ・A5〜C列最終行セルを範囲選択してペースト

  ・D5〜F列最終行セルを範囲選択してペースト

  ・G5〜I列最終行セルを範囲選択してペースト

  ・J5〜L列最終行セルを範囲選択してペースト

  ・M5〜O列最終行セルを範囲選択してペースト


 こんな感じになります。


 「小テスト 入力シート」と「小テスト 成績」にそれぞれ追加した2行目は、普段は非表示にし、数式の再設定が必要になった場合などメンテナンスの際に再表示すれば良いと思います。

 「小テスト 入力シート」に列を追加した場合には、「小テスト 成績」の各セルに設定したINDEX関数の第1引数(範囲)の変更が必要になります。従いまして、あらかじめ「小テスト 入力シート」の列数を想定される上限の列数分追加しておいてから、それを前提に「小テスト 成績」に数式を設定した方が良いと思います。

 例えば、「小テスト 入力シート」がAZ列まである場合、「小テスト 成績」の各セルに設定されたINDEX関数の第1引数(範囲)は、'小テスト 入力シート'::$A:$AZ になります。

返信: 4
スレッドに付いたマーク ベストな回答

2024/01/29 22:44 yohei888 への返信

 「小テスト 入力シート」と「小テスト 成績」のそれぞれに、INDEX関数使用の都合上行を追加してしまいますが、次のようになら可能かと思います。


 1. 「小テスト 入力シート」に2行目を追加して、B2に次のように数式を設定します。

 2. 「小テスト 入力シート」のB2をコピーして、2行目のC2から左のセルにペーストします。

 3. 「小テスト 成績」に2行目を追加して、独立したセルに教科ごとに3つ教科名を設定します

  (結合したセルだと数式をコピペしたとき参照が無効になってしまうため)。

  こんな感じです。

 4. 「小テスト 成績」のA4・B4・C4のそれぞれに、次のように数式を設定します。

  ・A4に設定する数式

  ・B4に設定する数式

  ・C4に設定する数式

 5. 「小テスト 成績」のA4〜C4を範囲選択してコピーし、次のようにペーストします。

  ・A5〜C列最終行セルを範囲選択してペースト

  ・D5〜F列最終行セルを範囲選択してペースト

  ・G5〜I列最終行セルを範囲選択してペースト

  ・J5〜L列最終行セルを範囲選択してペースト

  ・M5〜O列最終行セルを範囲選択してペースト


 こんな感じになります。


 「小テスト 入力シート」と「小テスト 成績」にそれぞれ追加した2行目は、普段は非表示にし、数式の再設定が必要になった場合などメンテナンスの際に再表示すれば良いと思います。

 「小テスト 入力シート」に列を追加した場合には、「小テスト 成績」の各セルに設定したINDEX関数の第1引数(範囲)の変更が必要になります。従いまして、あらかじめ「小テスト 入力シート」の列数を想定される上限の列数分追加しておいてから、それを前提に「小テスト 成績」に数式を設定した方が良いと思います。

 例えば、「小テスト 入力シート」がAZ列まである場合、「小テスト 成績」の各セルに設定されたINDEX関数の第1引数(範囲)は、'小テスト 入力シート'::$A:$AZ になります。

2024/01/29 23:55 三毛猫大好き への返信

 何度もごめんなさい。追記です。


 私の返信投稿の例だと、あるテストを欠席したため「小テスト 入力シート」のそのテストの点数が空欄だった場合、「小テスト 成績」のそのテストの点数が0と表示されます。

 これを回避するためには、「小テスト 成績」の点数参照セルの数式で、INDEX関数の結果をIF関数でチェックし、空白以外ならINDEX関数の結果、空白なら""(長さゼロの文字列)を返すよう場合分けすれば良いようです。

2024/01/29 22:51 三毛猫大好き への返信

 ごめんなさい。一点訂正させてください。


三毛猫大好き による書き込み:

 2. 「小テスト 入力シート」のB2をコピーして、2行目のC2から左のセルにペーストします。

 「左のセルにペーストします。」は、「右のセルにペーストします。」の誤りでした。

2024/02/02 18:44 三毛猫大好き への返信

ありがとうございました!ご教授いただいても自分ではついていけない数式ですが、教えていただいたとおりにすれば無事数字を返してくれました。いろいろ検証・追記までしていただきありがとうございました。

生徒の成績管理でVLOOKUPかINDEXかmatch関数を活用したい。

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple ID を使ってご参加ください。