プロが教えるわが家の防犯対策術!

 エクセル2000を使用しています。例えば
A1にコード番号を入力すると、隣りのB1に商品名が表示される
ようになっています。B1にはVLOOKUP関数が入っています。
しかし、コード番号に対応していない商品の場合はB1のセルに
直接、商品名を入力したいのですが、そうするとVLOOKUP関数
が消えてしまうので次回使うときに困ってしまいます。
リストが使えるとよいのですが、選ぶ商品の数が100個以上
あるので断念しました。
コード番号などで入力もでき、さらに特別な場合は直接入力も
できる良い方法はありますでしょうか? 教えてください。

A 回答 (3件)

(1)表1をA1:B9に挿入-名前をクリックし名前定義し、C1に値(商品コード)を入れ、それに対応する商品名を出すためD1に


=IF(ISERROR(VLOOKUP(C1,表1,2,FALSE)),$E$1,VLOOKUP(C1,表1,2,FALSE))を入れてみました。
表1にないコードを入れると、D1に「0」とでましたのでE1セルに商品名を入れる。するとC1にその商品名が入る。それで該当があった場合と同じようになる。
(2)しかしC1,E1のペアーは表1に自動的に増やす
ことは出来ません。
(3)表1の下行のほうに、行挿入しても本体表に影響が
ないなら、行挿入してC1,E1を入力すると、表1は
C!,E1のペアーも含まれる。
(4)でなければ、表の定義しなおしが必要。
本来はVBAを使わないと、目的を遂げられないとおもう。
関数はセルに値を与えるだけで、セル、行、列、罫線を挿入削除出来ないし、色、その他いろいろなものを変える機能はないです。
    • good
    • 1
この回答へのお礼

 詳しい回答をどうもありがとうございました。
試してみたらうまくできました。説明が足りなくて
申し訳なかったのですが、最後に印刷をしたいので
列を非表示にするなどで対処できそうです。

お礼日時:2003/01/09 00:06

おっしゃるように、B1に直接入力すると、VLOOKUP関数が消えてしまいます。


#1の方が言われるように間接的な方法しか無いですね!

F1:G100に商品コード:商品名のテーブルがあるとして、
B1に以下の関数を入れる。
=IF(C1<>"",C1,VLOOKUP(A1,F1:G100,2,FALSE))

ただし、この関数ですとC1に入力があれば、それが優先されます。
    • good
    • 0
この回答へのお礼

 この方法もスマートでいいですね。
どうやら間接的な方法か、全く別の操作で対応
するしかないことがわかってよかったです。
回答どうもありがとうございました。

お礼日時:2003/01/09 00:09

もっと、いい方法があるかも知れませんが。


間接的に入力するというのはダメなんでしょうか。
例えば、B1には、VLOOKUP関数とIF関数を組み合わせて
・コード番号に対応する商品ならば、その商品名を表示する
・コード番号に対応していない商品の場合は、C1のセルを参照する
という風になるように式を入れ、
直接入力したいときは、C1に入力する
という風にすればどうでしょうか。
    • good
    • 0
この回答へのお礼

 なるほど!と思いました。説明が足りなくて申し訳なかった
のですが、見積書のようなものを作成しているため、印刷する
ことを考えると少し難しいです。
早速の回答どうもありがとうございました。

お礼日時:2003/01/08 23:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています