- ベストアンサー
エクセルで条件式を連結したい。
IF関数を使ってAなら1、Bなら2、Cなら3、Dなら4、Eなら5・・・・というように真がそれぞれ複数ある条式を連結したいのですがどうすれば良いですか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
A1セルに入力してありA,B,C,D,E以外だったら空白にする場合なら、 IF(判定式,合致したらこれを表示,判定以外なら~しろ)という感じにすればいいので、 =IF(A1="A",1,IF(A1="B",2,IF(A1="C",3,IF(A1="D",4,IF(A1="E",5,"")))))
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17070)
AならのAは列番号・記号をさす用でもあり、紛らわしい質問。 Aというセルの値のとき1を返すなら、 E1:F5に a 1 b 2 c 3 d 4 e 5 と作っておいて A列にa-eが入るとして =VLOOKUP(A1,$E$1:$F$5,2,FALSE) が普通のやり方。IFのネストは、私は素人っぽくて好かない。
- maron--5
- ベストアンサー率36% (321/877)
>Aなら1、Bなら2、Cなら3、Dなら4、Eなら5 ◆単なる例ではなく、アルファベットを数値化したいのならこんな方法もありますよ =CODE(A1)-64 または、 =COLUMN(INDIRECT(A1&1))
- Cupper
- ベストアンサー率32% (2123/6444)
普通にIF関数をネストさせても良いかもしれませんが・・・ IF関数にこだわらないのであればこんな関数もあります。 A1が A なら 1、 B なら 2 ・・・と返ります =SEARCH(A1,"ABCDEF") A1が 1 なら A、 2 なら B ・・・と返ります =CHOOSE(A1,"A","B","C","D","E","F") また、条件が多すぎたり文字列で文字列を返すのであれば 対応する表を作っておき、VLOOKUP関数やINDIRECT関数を 使っては如何でしょうか。 見た目もスッキリして修正を加えるときに分かり易いです。
こんなのは、どうでしょう? 自分用のワークシート関数を作ります。 VBA editor画面で、下記を入力します。 Function myCondition(ByVal myvalue As String) As Variant If UCase(myvalue) = "A" Then myCondition= 1 ElseIf UCase(myvalue) = "B" Then myCondition= 2 ElseIf UCase(myvalue) = "C" Then myCondition= 3 ElseIf UCase(myvalue) = "D" Then myCondition= 4 ElseIf UCase(myvalue) = "E" Then myCondition= 5 ElseIf UCase(myvalue) = "F" Then myCondition= 6 Else myCondition= "" End If End Function ワークシートに戻って、 A1=a A2=A 適当なセルに =myCondition(A1)、別のセルに =myCondition(A2) と入れると、それぞれ、1,1と表示されます。