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

Excel2000を使っています。

たとえばA列に県名、B列に支店名、C列に品名・・・と入っている表があるとします。
品名の種類は10個ですが、それが長い表に繰り返し登場します。

やりたいことは
G列に「項番」として、
品名がガムなら「100」チョコなら「250」クッキーなら「400」・・・という風に
品名に与えられた項番を表示させたいのです。

IF文を使えばできるでしょうが10個もあると面倒ですので、たとえばACCESSのSwitch関数のようなものはないでしょうか?
それともやはりVLOOKUPを使うのでしょうか?

アドバイスをよろしくお願いいたします。

A 回答 (4件)

VLOOKUP関数を利用するのが良いと思います



別にテーブルを使うことができない事情があるのであれば
=INDEX({"",100,200,300,500},SUMPRODUCT(({"チョコ","ガム","クッキー","アメ"}=B8)*({1,2,3,4}))+1)

=VLOOKUP(B5,{"チョコ",100;"ガム",200;"クッキー",300},2,0)
のような関数も考えられますが…
    • good
    • 0
この回答へのお礼

ありがとうございました。
今回は別テーブルを作る形でようやくできましたが、紹介してくださった2番目の方法もうまくいきました。
テーブルを作れないときに使ってみます。
(1番目の方法はちょっとむずかしすぎて・・・)

お礼日時:2007/01/20 00:25

エクセルではSWITH関数はありません。


エクセルにおいて形・機能で近いものにLOOKUP(HLOOKUP,VLOOKUPと違い)があり
A1にコードを入れ、B1に、
=LOOKUP(A1,{100,200,250,300;"カムリ","クラウン","ノート","レジェンド"})
のような関数を入れます。
A1に300と入れると、B1にレジェンドと出ます。
質問は割り出しが反対ですが車名ーコードを逆に並べればよい。
これはLOOKUP関数の「配列形式」といい、「ベクトル形式」が別に有ります。
A1の値が検索で見当たらない場合等はどうなるか、解説書を読んでください。
#2のご回答にも出てきていますが、形が少し違うと思ってあげます。
    • good
    • 0
この回答へのお礼

ありがとうございました。
こちらの方法でもうまくいきました。
新しいテーブルを使わなくてもいろいろ方法があるのですね。
大変勉強になりました。

お礼日時:2007/01/22 14:33

品名だけでいいなら


「データ」「入力規則」「設定」で
入力値の種類を「リスト」
元の値に「ガム,チョコ,クッキー,・・・」
と設定してみてください。
そのセルを選択すると右に[▼]ボタンがでて、これを押すと元の値が表示されます。

元の値はセル参照も可能です。
同シート内なら「=$Z$1:$Z$100」
別シートなら「挿入」「名前」「定義」でその範囲に名前を付けて、
「=範囲名」
で参照できます。
    • good
    • 0
この回答へのお礼

ありがとうございました。
が、せっかくですが今回私が知りたい方法とは違うようですが?
それとも私の(回答の)理解不足でしょうか?

お礼日時:2007/01/20 00:29

品名が10種類では if では出来ません。


VLOOKUP を使うのが妥当と思います。
    • good
    • 0
この回答へのお礼

ありがとうございました。
そうですね。IFは4つ?まででしたね。
VLOOKUPは苦手でまだうまくいきませんががんばってみます。

お礼日時:2007/01/17 23:39

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