尚、E1セルに入力する数式を次の様なものにしますと、リストの行数が何行であるのかを気にする事無く、後からでも自由に書籍データを追加する事が出来ます。
=IF($D$1="図書室にはあります",VLOOKUP($C$1,$C$2:INDEX($E:$E,ROWS($C:$C)),3,FALSE),IF($D$1="図書室にはありません","***",""))
或いは
=IF($D$1="図書室にはあります",VLOOKUP($C$1,$C$2:INDEX($E:$E,MATCH("*?",$D:$D,-1)),3,FALSE),IF($D$1="図書室にはありません","***",""))
それから、以下の様な操作を行って、C1セルに入力規則を設定しますと、書籍の入力が楽になります。
【ExcelのバージョンがExcel2007よりも前のバージョンの場合】
C1セルを選択
↓
「メニュー」バーの[データ]ボタンをクリック
↓
現れた選択肢の中にある[入力規則]をクリック
↓
現れた「データの入力規則」ダイアログボックスの[設定]タブをクリック
↓
「入力値の種類」欄をクリック
↓
現れた選択肢の中にある[リスト]をクリック
↓
現れた「元の値」欄に次の数式を入力
=OFFSET(C$2,,,MATCH("*?",$D:$D,-1)-ROW($C$2)+1)
↓
「データの入力規則」ダイアログボックスの[エラーメッセージ]タブをクリック
↓
現れた「無効なデータが入力されたらエラーメッセージを表示する」と記されている箇所をクリックして、チェックを外す
↓
「データの入力規則」ダイアログボックスの[OK]ボタンをクリック
【ExcelのバージョンがExcel2007以降のバージョンの場合】
C1セルを選択
↓
Excelウィンドウの上の方にある[データ]タブをクリック
↓
現れた[データの入力規則]ボタンをクリック
↓
現れた選択肢の中にある[データの入力規則]をクリック
↓
現れた「データの入力規則」ダイアログボックスの[設定]タブをクリック
↓
「入力値の種類」欄をクリック
↓
現れた選択肢の中にある[リスト]をクリック
↓
現れた「元の値」欄に次の数式を入力
=OFFSET(C$2,,,MATCH("*?",$D:$D,-1)-ROW($C$2)+1)
↓
「データの入力規則」ダイアログボックスの[エラーメッセージ]タブをクリック
↓
現れた「無効なデータが入力されたらエラーメッセージを表示する」と記されている箇所をクリックして、チェックを外す
↓
「データの入力規則」ダイアログボックスの[OK]ボタンをクリック
尚、上記の
=IF($D$1="図書室にはあります",VLOOKUP($C$1,$C$2:INDEX($E:$E,MATCH("*?",$D:$D,-1)),3,FALSE),IF($D$1="図書室にはありません","***",""))
や
=OFFSET(C$2,,,MATCH("*?",$D:$D,-1)-ROW($C$2)+1)
という数式は、どちらもD列に文字列が入力されている最下段の行が何行目になるのかを、自動的に調べて、その行までを検索対象やリストの表示範囲とするものですので、最も下に入力されている書籍データの著者名が入力されていなかった場合や、最も下に入力されている書籍データの著者名欄に文字ではなく数値が入力されていた場合には、最も下にある書籍データを取り扱う事が出来なくなりますので注意して下さい。(要するに、著者名は必ず入力して下さいという事)
お礼
ありがとうございました。