- ベストアンサー
VLOOK関数と表引きについて
VLOOK関数と表引きについて 下のような住所管理をエクセルでしています。 上段がデータベースで、下段が変更後の送付先一覧です ここでしたい処理が、住所変更届けが出ている人は 変更後の住所をB2に入れたいのです。 そのチェック方法をCOUNTIF関数やVLOOKUP関数で処理したいのです。 出ていない人はそのままの住所をいれたいのです。 変更が出ているかのチェックの関数がうまく 使えないので、教えてください。 関数初心者なので、お願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
B2=IF(COUNTIF(Sheet2!A:A,B1),VLOOKUP(B1,Sheet2!A:B,2,FALSE),VLOOKUP(B1,D:E,2,FALSE))
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
データ実例を質問異書かずに質問しているから内容がわかりにくい。ぜひ書いて質問して。 B2になぜ入れるのか不明。A2に人の名でも入れるのか。A2の氏名に対応した住所でもB2に出すのか。 聞くまでも無く、変更届の記録されているセル範囲の氏名列を対象にCOUNTIF関数で、その氏名が存在するかどうかを聞き(IF関数で判別すると言うこと)1であれば、変更届の部分で氏名でVLOOKUUP関数を使い住所などをB2に持ってくる。 VLOOKUP関数を使うなら、下の部分に氏名が存在しない場合は、エラーになるからISERROR関数で聞いて判別する。 なければ(COUNTIFで0なら)、上の部分の住所録でVLOOKUP関数で、氏名で引いて住所をB2に持ってくる(B2に式を入れるということ) この質問の場合、索引する表が2つあり(ここが特殊)、それをIF関数で判別するだけのはなし。 変更届が同一人で2件出ていると上記の考えは破綻する。VLOOKUPは最初のものしか見つけられない。
- kagakusuki
- ベストアンサー率51% (2610/5101)
変更後の送付先リストが存在しているSheetのSheet名が不明なため、ここでは仮にSheet2だとします。 送付先を自動的に表示させるセルには、次の数式を入力されると、良いと思います。 =IF(OR($B$1="氏名",COUNTIF($C:$C,$B$1)=0),"該当無し",VLOOKUP($B$1,IF(COUNTIF(Sheet2!$A:$A,$B$1)=0,$C:$D,Sheet2!$A:$B),2,0))
- kmetu
- ベストアンサー率41% (562/1346)
変更届のシートがSheet2だとして =IF(ISNA(VLOOKUP(B1,Sheet2!A:B,2,FALSE)),IF(ISNA(VLOOKUP(B1,C:D,2,FALSE)),"",VLOOKUP(B1,C:D,2,FALSE)),VLOOKUP(B1,Sheet2!A:B,2,FALSE)) でいかがですか