• ベストアンサー

VLOOKUP の、エラーコードを出さずにもとのデータのままにしたい。

WIN XP EXCEL2002 sheet1 A B C 30 りんご   300 20    みかん   350     10    ばなな   200 sheet2 A   B C りんご   48    350 みかん   50   350      りんご    55    200 sheet1 の、A列に、 =VLOOKUP($B1,sheet2!$A$1:$C$10,2,FALSE) とすると、 sheet1 A B C 48 りんご   300 50    みかん   350     #N/A    ばなな   200 となるのですが、このばななのところのエラーコードを出したくないので、もとのまま、すなわち 10 になるようにしたいのですが、 どのような式にかえればよいでしょうか?よろしくお願いします。

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

  • ベストアンサー
回答No.1

A列を書き換えた時点で元の値(10)はどこにも記憶されていないので、 数式の中にそれぞれ元の値を持たせてやる必要があります。 (=この時点で数式が便利なものでなくなってしまいますが・・・) 元の値を書き換えることなく、ほかの列を使用するのが賢明ですが どうしてもというならば、下のように「VLOOKUPがERRORであれば 元の値、ERRORでなければVLOOKUPの結果」とすれば可能です。 (1個目と2個目のVLOOKUPの間の"10"が元の値です) =IF(ISERROR(VLOOKUP($B1,sheet2!$A$1:$C$10,2,FALSE)),10,VLOOKUP($B1,sheet2!$A$1:$C$10,2,FALSE))

asacchi
質問者

お礼

さっそくのご回答ありがとうございます。 そうなんですね、数式を入れてから元の値をまた呼び出すのは、 循環参照するようになってしまいますね。 結局、他の列にあらかじめA列をコピーしておいて、 教えていただいた数式の中の、10 にあたるもとのデータを 他の列から参照するようにもってきました。 ありがとうございました!

その他の回答 (2)

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

バナナのように表にないものが出現したとき、 >もとのまま、すなわち 10 になるようにしたいのですが という意味が、特殊で判りにくい。10はバナナでも、柿でも10でよいのですか。そんなケースは想像しにくいのだが。 そもそも、SheetのA列の値は何の値? 普通は空白列にVLOOKUPで引いた値をセットするもの。 元のA列の値が壊れても良いのですか。関数を入れると、元の値はつぶれるのですよ。 A1セルに数があるとして、=IF(B1>10,A1,1)はそもそもおかしい。 ーー 該当なしの場合一律に10なら ISERRORで聞いて、IFで判別し、真の場合は10、そうでなければVLOOKUP関数値をセット。 10が色々有るなら、別列にA列をコピーして、VLOOKUP関数の値がエラーだったら、コピーしたほうを持ってくるとか。

asacchi
質問者

お礼

ご回答ありがとうございます。 疑問点、ごもっともです。 A列というのは、コードナンバーです。不ぞろいなのは、他の条件でソートをかけたり省いたりした結果、そうなってしまっているのです。 そして、もとのまま・・・というのは、要するにデータが数式を入れた場合にエラーになるなら、入れる前のままの状態=もとのまま にしておきたい、ということなのです。だから、10に限らずさまざまです。 わかりにくい説明ですみませんでした。 しかし、 >該当なしの場合・・・  という部分のコメントは、参考になりました。そのとおりにやってみることにしました。 ありがとうございました!

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

方法はいくつかあります。 =IF(ISNA(VLOOKUP($B1,sheet2!$A$1:$C$10,2,FALSE)),10,VLOOKUP($B1,sheet2!$A$1:$C$10,2,FALSE)) または =IF(ISERROR(VLOOKUP($B1,sheet2!$A$1:$C$10,2,FALSE)),10,VLOOKUP($B1,sheet2!$A$1:$C$10,2,FALSE)) としてエラー時に対応するか =IF(COUNTIF(sheet2!$A$1:$A$10,B1),VLOOKUP($B1,sheet2!$A$1:$C$10,2,FALSE),10) として先に検索値の有無を確認する方法

asacchi
質問者

お礼

そんなにもやりかたがあるのですね。 いろいろお忙しいなか、ありがとうございます! 他の数式もためしてみます!

関連するQ&A