- ベストアンサー
エクセルの関数ネスト
10個の商品にナンバーを割り当てたいのですが、IF関数をつなげても、ネストの限界からして、一つの式では無理でしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
予め、使う予定の無いセルに、商品と割り当てるナンバーを入力した欄を作り、 "LOOKUP"関数で、参照するのが良いのではないかと思います。 | A | B | C | D | 1|商品名1| |商品名1 | 10001 | 2| | |商品名2 | 10002 | 3| | |商品名3 | 10003 | ・ ・・・ 10| | |商品名10 | 10010| セルB1に =LOOKUP(A1,$C$1:$D$10) と入力すると、B1に10001が入ります。
その他の回答 (2)
- papayuka
- ベストアンサー率45% (1388/3066)
こんにちは。 IFの7回ネスト制限はやり方次第で回避出来ます。 ただ、関数が長くなるうえに増えた場合に対処が難しいので、他の方の回答のようにVLOOKUP関数等を使用するのが現実的でしょう。 ちなみに#2さんの例をムリムリIF関数でやると、、、 =IF(AND(A1>0,A1<6),IF(A1=1,"機械",IF(A1=2,"工具",IF(A1=3,"潤滑油",IF(A1=4,"ソフト","運搬具")))),IF(AND(A1>5,A1<11),IF(A1=6,"車両",IF(A1=7,"作業着",IF(A1=8,"シート",IF(A1=9,"棚","ケース")))),""))
お礼
有難うございました。
- imogasi
- ベストアンサー率27% (4737/17069)
普通はこう言うケースはIFを使わないでしょう。 VLOOKUP関数を使います。 A1:B10に 1 機械 2 工具 3 潤滑油 4 ソフト 5 運搬具 6 車両 7 作業着 8 シート 9 棚 10 ケース のように表を作ります。 (関数式) A列に商品番号を入れるとして B列に商品名を出します。 B1に式=VLOOKUP(A1,$F$1:$G$10,2,FALSE)をいれB2以下の 行に複写します。 A列に入力してない行のB列に#N/Aがでて目障りですが =IF(A1="","",VLOOKUP(A1,$F$1:$G$10,2,FALSE)) とすると解決します。 表を表す$F$1:$G$10部分は絶対番地にすること。 最後の引数はFALSEです。 ()内の2は、表で商品番号の隣列に商品番号があることをエクセルに知らせています。 表は番号順である必要はありません。 表はF1:G10を範囲指定して、その範囲の下辺でマウスアイコンを上矢印にした状態で範囲を移動させれば、VLOOKUP 関数の中の表の(絶対)番地も自動的に変ります。
お礼
有難うございました。
お礼
有難うございました。