dポイントプレゼントキャンペーン実施中!

初めまして。Excel2003のマクロについて質問です。売上のデータベースがあって、各データには製品コードが付されています。コードのままだと直感的にどの製品か分かりづらいので、例えば”100”というコードは”A製品””200”というコードは”B製品”というようにマクロにより自動的にデータベースを変換、若しくは列に”製品名”を自動で追加するようなことが行いたいのですが、全くの初心者であるためどうやればよいか分かりません。
どなたかプログラムの方法を教えていただけないでしょうか?

A 回答 (2件)

コードを入力して隣のセルに製品名を出したいのでしたら


マクロを使わず関数で以下のようにして実現できます。

[入力]シート

A1セル:製品コードを入力
B1セル:=INDEX(製品コード!B:B,MATCH(入力!A1,製品コード!A:A,0))

[製品コード]シート

A  B
100 A製品
200 B製品
300 C製品
400 D製品

これでA1に製品コードを入力すると
対応した製品名がB1に表示されます。


なお、LOOKUP関数でも同様のことができますが
動作に不安定な部分があるため今回はMATCHとINDEXを使用しました。
    • good
    • 0
この回答へのお礼

saintandreさん>
早速のご回答ありがとうございます。
こちらであれば私でも分かり、助かりました。
ちなみに製品コードはダウンロードされており、(既に入力されている状態)そこから製品名を表示させることも可能でしょうか?

↓この状態です。
A(製品コード)B(製品名)C(売上高)
100              ¥100  
200              ¥150 
300              ¥200
400              ¥250




お手数ですがお分かりになればご教示下さい。
宜しくお願い致します。

お礼日時:2009/09/01 14:44

この程度のことであれば、マクロを使わずに関数で十分事足りると思います。


製品コードと製品名の対比表がsheet1にあるとします。そしてA列に製品コード、B列に製品名とします。
MATCH関数でどの行にあるかを調べ、次にその行のどの列かを指定します。
調べる製品コードが A1 にあり H1 に製品名を表示する場合
H1に =INDEX(Sheet1!B:B,MATCH(A1,Sheet1!A:A,0)) と書けばよいはずです。
    • good
    • 0

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