>2.学期毎に検索を行いたい
>3.操作としては、"学期"をプルダウンにて
との事ですが、添付画像には1学期の表しか写ってはおらず、2学期や3学期のデータがありません。
存在していないデータから抽出する事は出来ませんので、2学期や3学期のデータが何処に、どの様な形で存在しているのかを御教え願います。
取り敢えずの話としまして、元データである1学期の表はSheet1に存在していて、2学期の表は1学期の表の最下段の行(9行目)から1行空けた、11行目のA列に「2学期」と入力されていて、12行目には2行目と同様に項目名が並び、2学期の各生徒のデータは13行目から始まっていて、3学期の表も、2学期の表の最下段の行から1行空けた所から始まっているものとします。
又、Sheet3のA列とB列を作業列として使用して、Sheet2のA1セルにおいてドロップダウンリストを使用して学期の指定を行い、Sheet2の3行目以下に各抽出結果を表示するものとします。(但し、Sheet2のA列は点数範囲を表示)
まず、Sheet3のA1セルに次の関数を入力して下さい。
=IF(OR(COUNTIF(INDEX(Sheet1!$A:$A,ROW()),"*学期"),ROW()=MATCH(999,Sheet1!$D:$D)+1),ROW(),"")
次に、Sheet3のB1セルに次の関数を入力して下さい。
=IF(ISNUMBER(INDEX(Sheet1!$D:$D,ROW())),INDEX(Sheet1!$A:$A,VLOOKUP(9E+99,$A$1:$A1,1))&"#"&COUNTIF(INDEX(Sheet1!$D:$D,VLOOKUP(9E+99,$A$1:$A1,1)):INDEX(Sheet1!$D:$D,SMALL($A:$A,COUNTIF($A:$A,"<"&ROW())+1)),">"&INDEX(Sheet1!$D:$D,ROW()))+COUNTIF(INDEX(Sheet1!$D:$D,VLOOKUP(9E+99,$A$1:$A1,1)):INDEX(Sheet1!$D:$D,ROW()),INDEX(Sheet1!$D:$D,ROW())),"")
次に、Sheet3のA1~B1の範囲をコピーして、同じ列の2行目以下に貼り付けて下さい。
次に、以下の様な操作を行って、Sheet2のA1セルに入力規則のドロップダウンリストを設定して下さい。
【Excel2007よりも前のバージョンのExcelの場合】
Sheet2のA1セルを選択
↓
メニューの[データ]ボタンをクリック
↓
現れた選択肢の中にある[入力規則]をクリック
↓
現れた「データの入力規則」ダイアログボックスの「設定」タブをクリック
↓
「入力値の種類」欄をクリック
↓
現れた選択肢の中にある[リスト]をクリック
↓
現れた「元の値」欄に以下の通りに入力
1学期,2学期,3学期
↓
「データの入力規則」ダイアログボックスの[OK]ボタンをクリック
【Excel2007以降のバージョンのExcelの場合】
Sheet2のA1セルを選択
↓
Excelウィンドウの[データ]タブをクリック
↓
現れた「データツール」グループの中にある[データの入力規則]ボタンをクリック
↓
現れた選択肢の中にある[データの入力規則]をクリック
↓
現れた「データの入力規則」ダイアログボックスの「設定」タブをクリック
↓
「入力値の種類」欄をクリック
↓
現れた選択肢の中にある[リスト]をクリック
↓
現れた「元の値」欄に以下の通りに入力
1学期,2学期,3学期
↓
「データの入力規則」ダイアログボックスの[OK]ボタンをクリック
次に、Sheet2のB3セルに次の関数を入力して下さい。
=IF(ROWS($3:3)>COUNTIF(Sheet3!$B:$B,$A$1&"#*"),"",INDEX(Sheet1!A:A,MATCH($A$1&"#"&ROWS($3:3),Sheet3!$B:$B,0)))
次に、Sheet2のA3セルに次の関数を入力して下さい。
=IF(ISNUMBER($E3),IF($E2<CEILING($E3+1,20)+($E3>=80),"",IF($E3<80,FLOOR($E3,20)&"以上"&CEILING($E3+1,20)&"未満","80以上")),"")
次に、Sheet2のB3セルをコピーして、Sheet2のC3~F3の範囲に貼り付けて下さい。
次に以下の操作を行って、Sheet2のA3セルに条件付き書式を設定して下さい。
【Excel2007よりも前のバージョンのExcelの場合】
Sheet2のA3セルを選択
↓
メニューの[書式]ボタンをクリック
↓
現れた選択肢の中にある[条件付き書式]をクリック
↓
現れた「条件付き書式の設定」ダイアログボックスの左端の欄をクリック
↓
現れた選択肢の中にある「数式が」をクリック
↓
「条件付き書式の設定」ダイアログボックスの左から2番目の欄に次の数式を入力
=OR(INDEX(A:A,ROW()+1)<>"",AND(INDEX($B:$B,ROW())<>"",INDEX($B:$B,ROW()+1)=""))
↓
「条件付き書式の設定」ダイアログボックスの[書式]ボタンをクリック
↓
現れた「セルの書式設定」ダイアログボックスの[罫線]タブをクリック
↓
現れた「スタイル」欄の中にある実線をクリック
↓
「罫線」欄の中の四角形の下辺をクリック
↓
「セルの書式設定」ダイアログボックスの[OK]ボタンをクリック
↓
「条件付き書式の設定」ダイアログボックスの[OK]ボタンをクリック
【Excel2007以降のバージョンのExcelの場合】
Sheet2のA3セルを選択
↓
[ホーム]タブ内の「スタイル」グループの中にある[条件付き書式]ボタンをクリック
↓
現れた選択肢の中にある[新しいルール]をクリック
↓
現れた「新しい書式ルール」ダイアログボックスの「ルールの種類を選択してください」欄の中にある[数式を使用して、書式設定するセルを決定]を選択してクリック
↓
現れた「次の数式を満たす場合に値を書式設定」欄に
=OR(INDEX(A:A,ROW()+1)<>"",AND(INDEX($B:$B,ROW())<>"",INDEX($B:$B,ROW()+1)=""))
と入力
↓
「新しい書式ルール」ダイアログボックスの[書式]ボタンをクリック
↓
現れた「セルの書式設定」ダイアログボックスの[罫線]タブをクリック
↓
現れた「スタイル」欄の中にある実線をクリック
↓
「罫線」欄の中の四角形の下辺をクリック
↓
「セルの書式設定」ダイアログボックスの[OK]ボタンをクリック
↓
「新しい書式ルール」ダイアログボックスの[OK]ボタンをクリック
次に、Sheet2のA3~F3の範囲をコピーして、同じ列の4行目以下に貼り付けて下さい。
次に以下の操作を行って、Sheet2のA列に罫線を設定して下さい。
Sheet2のA2~「A列における表中の最下段の行のセル」の範囲をまとめて範囲選択
↓
選択範囲を示す黒い太枠の内側にカーソルを合わせてからマウスを右クリック
↓
現れた選択肢の中にある[セルの書式設定]をクリック
↓
現れた「セルの書式設定」ダイアログボックスの[罫線]タブをクリック
↓
現れた「プリセット」欄の中にある[なし]ボタンをクリック
↓
「スタイル」欄の中にある実線をクリック
↓
「プリセット」欄の中にある[外枠]ボタンをクリック
↓
「セルの書式設定」ダイアログボックスの[OK]ボタンをクリック
これで、Sheet2のA1セルに、ドロップダウンリストを使用して学期の指定を行うだけで、指定した学期のデータが、Sheet2のA列には点数範囲が、Sheet2のB~F列には各項目ごとのデータが、点数の高い順に並べ替えられた上で、点数範囲毎に纏められて表示されます。
お礼
tom04さん おかげさまで、無事DBが完成しました。只々感謝の一言です。本当に短期間ではありましたが、ありがとうございました。 来週から、また、別の課題を課せられております。更なる磨きをかけるべく、今後ともよろしくお願いいたします。 PS:教科選択の所をプルダウン式にしたのですが、表全体が大きすぎて縮小しているため、プルダウンした文字が非常に小さくて困っています。セル内のフォントは大きくできますが、プルダウンリストの文字はどうすれば大きくなるがご存じでいたらお教えください。