プロが教える店舗&オフィスのセキュリティ対策術

こんにちわ。

このような式を作りたいのですが、うまいことできません。

たとえば、A-1がりんごだったら1、バナナだったら2、それ以外だと空白にするといったような文字列を返す式が作れません。

どなたか分かる方はよろしくお願いします。

A 回答 (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セルに手入力すると反応してしまうけど。
    • good
    • 0
この回答へのお礼

本当に詳しく教えていただきありがとうございます。

まさにやりたいことができました!
分かりやすく教えていただきありがとうございます。

また何かあったときは宜しくお願いします。

お礼日時:2004/07/02 23:37

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ですかぁ。ここまでやらなければダメなのでしょうか?
でも、このように教えていただきありがとうございます。
この先勉強するときのためにこの式を保存しておきます。

補足日時:2004/07/02 23:23
    • good
    • 0

=IF(ISERROR(FIND("りんご",A1)),IF(ISERROR(FIND("バナナ", A1)),"",2),1)



なんてのもアリです。
「マジカルバナナ」で2、「焼きりんご」で1、「アップルパイ」で
空白になります。

この回答への補足

できました!ありがとうございます。

ただ「マジカルバナナ」を半角カタカナの場合でも認識できるようなやり方はありますか?

このままでも十分なんですが、やり方があるのならお願いします。

補足日時:2004/07/02 17:52
    • good
    • 0

No.1です。



=IF(ISNUMBER(FIND("りんご",A1)),1,IF(ISNUMBER(FIND("バナナ",A1)),2,""))

これでいかがでしょうか?
    • good
    • 0

#4です。


誤 =IF(A2<1,""…
正 =IF(A1<1,""…

すみません。

この回答への補足

早速回答していただきありがとうございます。

例文で質問を作ってしまったため、聞き方を間違えてしまいました。

A-1にりんご大好き!や、りんごはおいしい。など「りんご」という文字を含んだ場合、最初に質問した式を作りたいのです。

何度もすみません。宜しくお願いします。

補足日時:2004/07/02 16:05
    • good
    • 0

=CHOOSE(A1,"りんご","みかん","")



こっちの方がすっきり見易いですね。

0が入力されるとエラーを吐き出すのでifでチェック。
=IF(A2<1,"",CHOOSE(A1,"りんご","みかん",""))
    • good
    • 0

#2です。

すみません最後は0ではなく""で空白です。

この回答への補足

早速回答していただきありがとうございます。

例文で質問を作ってしまったため、聞き方を間違えてしまいました。

A-1にりんご大好き!や、りんごはおいしい。など「りんご」という文字を含んだ場合、最初に質問した式を作りたいのです。

何度もすみません。宜しくお願いします。

補足日時:2004/07/02 16:05
    • good
    • 0

IF(A1="りんご",1,IF(A1="バナナ",2,0))で出来ると思います。

ポイントとして文字列は""で囲まなければいけません。
    • good
    • 0

=IF(A1="りんご",1,IF(A1="バナナ",2,""))



で良いでしょうね。

この回答への補足

早速回答していただきありがとうございます。

例文で質問を作ってしまったため、聞き方を間違えてしまいました。

A-1にりんご大好き!や、りんごはおいしい。など「りんご」という文字を含んだ場合、最初に質問した式を作りたいのです。

何度もすみません。宜しくお願いします。

補足日時:2004/07/02 15:56
    • good
    • 0

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