• ベストアンサー

EXCEL2000 でVLOOKUPの結果

よろしくおねがいします。 VLOOKUPでヒットすれば期待通りの表示になりますが、 ヒットしない時は[#N/A]となります。このセルに空白を入れたいのですが 添付のセルB2~セルJ100にデータ(活動日 活動区分 曜日 1週目~5週目)があり K列に 週1 活動区分 曜日の連結したもの、L列に 週2 活動区分 曜日の連結したものが入っています。 因にセルK2には「=IF($C2="","",IF($C2=1,F2&$C2&$D2,F2&$C2))」 P列の活動日列はB列の活動日列を参照しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • kaisendon
  • ベストアンサー率44% (114/257)
回答No.1

=IF(ISNA(VLOOKUP(…)),"",VLOOKUP(…)) こんな感じでどうでしょう? 見た目だけ見えなくするなら、 T3セル~X6セルまでドラッグして選択、 条件付書式で、数式が =ISNA(T3) 書式ボタン、フォントの色を白。 としてもよさそうですが。

shinkami
質問者

お礼

ご回答有難うございます。 昨夜一晩中悩んだのですが、これ一発で解決しました。 =IF(ISNA(VLOOKUP(1&$R5&$S5,K$2:$P$100,6,0)),"",VLOOKUP(1&$R5&$S5,K$2:$P$100,6,0))

その他の回答 (5)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.6

質問がわかりにくい。 画像添付もよいが、肝心のVLOOKUPの式はどうなっているのか。質問には見えない。こんな質問ておかしいでしょう。 しっかり関数の式の1例と関係セル(第1、第2引数)を示すべきです。 (1)エラーが出るのが、おかしいといっているのか (2)エラーの場合空白に表示したいと言っているのか 質問点がぼやけている。 エラーはVLOOKUPの場合#N/Aがほとんどで、原因は色々在っても、エクセル側は結果的に見つからないといっている。 (2)は、これは=IF(ISERROE(VLOOKUP(・・)で解決する。 書式で解決などもあるが。 第2引数は絶対番地にしないとだめだが、第1引数は絶対番地では普通ありえないでしょう。 第1引数を単一セルでなくて、数セル結合する場合は、第2引数の検索表(範囲)のデータはどうなってますか。&では詰まって結合されるので、よっぽど注意しないと危ない。 ーー 結局この質問は(1)(2)のほかに 第1引数はどうなっているか 第2引数のシート上にあるところはどうなっているか などを具体的に示さないで質問しているので、判りにくい。 VLOOKUP関数は単純な関数です。データの在り様(第1引数と第二引数のデータの全角半角余分なスペースなどの思い違い)を除けば注意点は2,3しかない。

shinkami
質問者

お礼

ご回答有難うございます。 最終的に「=IF(COUNTIF(K$2:K$100,1&$R3&$S3)=0,"",VLOOKUP(1&$R3&$S3,K$2:$P$100,6,0))」で通りました。 これでセルを右、下へコピーしてVLOOKUPの列番号 6 を 5,4,3,2と変更して完成です。 尚、ご指摘いただいた通り$の使い分けに誤りがありました。

shinkami
質問者

補足

すみません、お礼のあて先を間違えました。 こちらで改めて御礼させていただきます。 ご回答有難うございます。 分かりにくい質問で済みませんでした。 ますます分かりにくくなりますが説明させていただきます。 A列:参加者 B列:参加日 C列:イベントNo. D列:曜日(=WEAKDAY(参加日) E列:N週目(=INT(DAY(参加日)/7+1) F列~J列:週区切りの参加した=1 欠席=0 のデータです。 イベントは3種類あり、毎週同じ曜日に定期的に行われます。 イベント1:水曜と木曜 イベント2:月曜 イベント3:月毎の最終の木曜 このデータより、イベント毎に参加者一覧表(縦に参加者、横に第N週)を作成するため N列~J列に参加、イベントNo.、曜日を連結 「K2=IF($C2="","",IF($C2=1,F2&$C2&$D2,F2&$C2))」P列に参加日を参照「P2=IF(B2="","",B2)」 ここまで準備して T3=VLOOKUP(1&$R3&$S3,K$2:$P$100,6,0)とやったのが添付の上半分の結果です。 T3=if(ERROR.TYPE(VLOOKUP(1&$R3&$S3,K$2:$P$100,6,0))=7,"",VLOOKUP(1&$R3&$S3,K$2:$P$100,6,0)) とやってもダメ そこで「T9=ERROR.TYPE(T3)」としたのが添付の下半分です。 この結果エラーが発生した時は 7 ですが正常の時は#N/A これでは条件式は使えません お騒がせして申し訳ありません。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

朝からどうかしています。 回答No3です。 最後の式でVLOOKUPのPが抜けていましたね。次のようにしてください。 =IF(COUNTIF(K$2:K$100,1$R3&$S3)=0,"",VLOOKUP(1&$R3&$S3,K$2:$P$100,6,0))

shinkami
質問者

お礼

ご回答有難うございます。 最終的に「=IF(COUNTIF(K$2:K$100,1&$R3&$S3)=0,"",VLOOKUP(1&$R3&$S3,K$2:$P$100,6,0))」で通りました。 これでセルを右、下へコピーしてVLOOKUPの列番号 6 を 5,4,3,2と変更して完成です。 尚、ご指摘いただいた通り$の使い分けに誤りがありました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

回答No3です。 最後の式でVLOOKUPのPが抜けていましたね。次のようにしてください。 =IF(COUNTIF(K$2:K$100,1$R3&$S3)=0,"",VLOOKU(1&$R3&$S3,K$2:$P$100,6,0))

shinkami
質問者

お礼

ご回答有難うございます。 最終的に「=IF(COUNTIF(K$2:K$100,1&$R3&$S3)=0,"",VLOOKUP(1&$R3&$S3,K$2:$P$100,6,0))」で通りました。 これでセルを右、下へコピーしてVLOOKUPの列番号 6 を 5,4,3,2 と変更して完成です。 尚、ご指摘いただいた通り$の使い分けに誤りがありました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

図がよく見えませんが、例えばT3セルに入力されている式を見てみましょう。 =VLOOKUP(1&$R$3&$S$3,K$2:$P$100,6,0) ここで引数となる範囲、列数、検索の型については理解できるのですが、検索値については、その書き方に疑問がありますね。 セル番地にしても列、行ともに絶対参照の形になっていること、これでは下の行にオートフィルドラッグしても全く式が変化しませんね。少なくとも行番号については相対参照の形に変える必要がありますね。 たとえば=VLOOKUP(1&$R3&$S3,K$2:$P$100,6,0) T3セルがエラー表示になるのはK2セルからK100セルの間に検索値が見られない場合でしょう。 したがって次のようにしてもエラーの場合に空白とすることができます。 =IF(COUNTIF(K$2:K$100,1$R3&$S3)=0,"",VLOOKU(1&$R3&$S3,K$2:$P$100,6,0)) エラーの場合にISERROR関数などを使って処理することもできますが、そのエラーの原因がなぜ起きているかをよく理解して使うことが必要でしょう。

  • catlog
  • ベストアンサー率42% (3/7)
回答No.2

ISERROR関数を使ってみてください。 こんな感じです。  =IF(ISERROR(A1),"空白","空白でない")

shinkami
質問者

お礼

ご回答有難うございます。 No.1様の「ISNA」を「SERROR」で置き換えても通りました。