• 締切済み

Excel 検索関数

名簿を作り、出欠を記録しておくのですが、その際に別枠で、氏名を入力したら出欠がわかるようにしたいのです。しかし、下の図(お絵かきですみません)のような表になっているため、LOOKUPなどの関数だと出すことが出来ません。 どうにかして表の形は変えずに、出欠を出すことは出来ますでしょうか?

みんなの回答

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.6

>Excelのバージョンは? >Excel 2003以前と2007以降では組み込み関数が異なりますので提示された方が良いでしょう。 と言われたので念のために >一応言わせていただくと、バージョンは2016です。 と応えられたまでの事ですね。  大丈夫です、Excel2016であれば最新版ですので、Excel2013をはじめとする古いバージョンで出来た事は大抵出来ます。  私の回答No.4の方法は無論の事、回答No.2様の方法もExcel2016であれば使う事が出来ます。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.5

>一応言わせていただくと、バージョンは2016です。 Excel 2013でできることはExcel 2016でもできるはずです。 試された結果は如何でしたか? もし、数式の解説が必要でしたら理解できない部分をお知らせください。 別枠の氏名で出欠表に無い者はいないですよね? 別枠の氏名入力でタイプミス等で出欠表に無いときの処理が必要でしたらIF関数で条件分岐してください。 条件式は COUNTIF(A1:F11,H5) の応答が0のとき"該当なし"と表示させれば良いでしょう。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

 VLOOKUP関数の検索範囲を指定する際に、IF関数などを使って自動的に選択される様にすれば良いと思います。  例えば、表がAB列CD列、氏名欄がF3、出欠欄がG3とした場合、G3セルに入力する関数を次の様なものにされれば良い訳です。 =IF(F3="","",IFERROR(VLOOKUP(F3,IF(COUNTIF($A:$A,F3),$A:$B,$C:$D),2,FALSE)&"","該当者なし"))

lapis0311
質問者

お礼

ありがとうございました。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

>どうにかして表の形は変えずに、出欠を出すことは出来ますでしょうか? Excelのバージョンは? Excel 2003以前と2007以降では組み込み関数が異なりますので提示された方が良いでしょう。 私はExcel 2013を使用していますので添付画像のような模擬データで検証してみました。 INDEX関数の応用で比較的簡単に抽出できます。 I5=INDEX(A1:F11,MAX(INDEX((A1:F11=H5)*ROW(A1:F11),0)),MAX(INDEX((A1:F11=H5)*COLUMN(A1:F11),0))+1) 但し、同姓同名のメンバーがいない条件です。 尚、IFERRR関数とVLOOKUP関数で多重化(入れ子構造)にすることでも抽出可能です。 I5=IFERROR(VLOOKUP(H5,A:B,2,FALSE),IFERROR(VLOOKUP(H5,C:D,2,FALSE),IFERROR(VLOOKUP(H5,E:F,2,FALSE),"")))

lapis0311
質問者

補足

すみませんでした。 一応言わせていただくと、バージョンは2016です。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

表がAB列CD列、氏名欄がF3、出欠欄がG3として =IFERROR(VLOOKUP(F3,A:B,2,FALSE),IFERROR(VLOOKUP(F3,C:D,2,FALSE),"該当者がいません"))

lapis0311
質問者

お礼

ありがとうございました。

  • f272
  • ベストアンサー率46% (8469/18131)
回答No.1

こんな感じです。 =IF(左の2列で見つからなかったら,右の2つ列でVLOOKUP,左の2つ列でVLOOKUP)

lapis0311
質問者

お礼

ありがとうございました。

関連するQ&A