- ベストアンサー
IF関数?
こんにちわ。 このような式を作りたいのですが、うまいことできません。 たとえば、A-1がりんごだったら1、バナナだったら2、それ以外だと空白にするといったような文字列を返す式が作れません。 どなたか分かる方はよろしくお願いします。
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
No.1です。半角のバナナにもたいおうしていますが、ひらがなのばなな、半角のリンゴ、カタカナのリンゴ、漢字の林檎には対応していません。 =IF(ISNUMBER(FIND("りんご",JIS(A1))),1,IF(ISNUMBER(FIND("バナナ",JIS(A1))),2,"")) これでいかがでしょうか? どうせなら、ひらがな、カタカナ、漢字、半角、全角すべて対応させてみようかと。 =IF(ISNUMBER(FIND("リンゴ",PHONETIC(A1))),1,IF(ISNUMBER(FIND("バナナ",PHONETIC(A1))),2,"")) でうまくいくかもしれません。 椎名林檎 とか 吉本ばなな でもA1セルに手入力すると反応してしまうけど。
その他の回答 (8)
- imogasi
- ベストアンサー率27% (4737/17069)
VBA向きの問題だと思いました。 コード対応表(下記の例のような表)の(行)数が増えると、関数では長くなり過ぎます。 VBE画面の標準モジュールに Sub test01() Range("A1:A14").Select d = Range("E1").CurrentRegion.Rows.Count For i = 1 To d Set x = Selection.Find(What:=Cells(i, "E"), After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False) If Not x Is Nothing Then f = x.Address x.Offset(0, 1) = Cells(i, "F") Do c = c + 1 Set x = Worksheets(1).Cells.FindNext(x) x.Offset(0, 1) = Cells(i, "F") Loop Until x Is Nothing Or x.Address = f End If Next i End Sub を貼りつける。 (コード対応表)E1:F6 みかん 3 りんご 1 バナナ 2 リンゴ 1 バナナ 2 ミカン 3 (テストデータ)A1:A14 (A列) (B列) りんごが 1 赤いバナナ 2 青いりんごが 1 バナナ好き 2 台湾バナナを半分に 2 そろそろりんごも 1 みかんの花が 3 リンゴが 1 赤いバナナ 2 青いリンゴが 1 バナナ好き 2 台湾バナナを半分に 2 そろそろリンゴも 1 ミカンの花が 3 B列が結果です。 自分の場合に合わせて、上記コードの中の、A、E、Fの列記号を変えてください。
補足
回答ありがとうございます。 VBAですかぁ。ここまでやらなければダメなのでしょうか? でも、このように教えていただきありがとうございます。 この先勉強するときのためにこの式を保存しておきます。
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
=IF(ISERROR(FIND("りんご",A1)),IF(ISERROR(FIND("バナナ", A1)),"",2),1) なんてのもアリです。 「マジカルバナナ」で2、「焼きりんご」で1、「アップルパイ」で 空白になります。
補足
できました!ありがとうございます。 ただ「マジカルバナナ」を半角カタカナの場合でも認識できるようなやり方はありますか? このままでも十分なんですが、やり方があるのならお願いします。
- arukamun
- ベストアンサー率35% (842/2394)
No.1です。 =IF(ISNUMBER(FIND("りんご",A1)),1,IF(ISNUMBER(FIND("バナナ",A1)),2,"")) これでいかがでしょうか?
- Tsukasa0215
- ベストアンサー率22% (280/1257)
#4です。。 誤 =IF(A2<1,""… 正 =IF(A1<1,""… すみません。
補足
早速回答していただきありがとうございます。 例文で質問を作ってしまったため、聞き方を間違えてしまいました。 A-1にりんご大好き!や、りんごはおいしい。など「りんご」という文字を含んだ場合、最初に質問した式を作りたいのです。 何度もすみません。宜しくお願いします。
- Tsukasa0215
- ベストアンサー率22% (280/1257)
=CHOOSE(A1,"りんご","みかん","") こっちの方がすっきり見易いですね。 0が入力されるとエラーを吐き出すのでifでチェック。 =IF(A2<1,"",CHOOSE(A1,"りんご","みかん",""))
- ayasu
- ベストアンサー率35% (56/156)
#2です。すみません最後は0ではなく""で空白です。
補足
早速回答していただきありがとうございます。 例文で質問を作ってしまったため、聞き方を間違えてしまいました。 A-1にりんご大好き!や、りんごはおいしい。など「りんご」という文字を含んだ場合、最初に質問した式を作りたいのです。 何度もすみません。宜しくお願いします。
- ayasu
- ベストアンサー率35% (56/156)
IF(A1="りんご",1,IF(A1="バナナ",2,0))で出来ると思います。ポイントとして文字列は""で囲まなければいけません。
- arukamun
- ベストアンサー率35% (842/2394)
=IF(A1="りんご",1,IF(A1="バナナ",2,"")) で良いでしょうね。
補足
早速回答していただきありがとうございます。 例文で質問を作ってしまったため、聞き方を間違えてしまいました。 A-1にりんご大好き!や、りんごはおいしい。など「りんご」という文字を含んだ場合、最初に質問した式を作りたいのです。 何度もすみません。宜しくお願いします。
お礼
本当に詳しく教えていただきありがとうございます。 まさにやりたいことができました! 分かりやすく教えていただきありがとうございます。 また何かあったときは宜しくお願いします。