- ベストアンサー
Excel 英大文字小文字を区別せず検索対象にする
こんにちは。 Excel 2007を使っています。 表中、A列に以下のような文字列があります。 DOG house HOUSE dog housing HOUSING dog DOG たとえばcountif関数でdogの個数を数える時は =countif(A1:A100,"dog") のようにしますが dogとDOG両方を数えたいときにはどのように どのようにしたらよいでしょうか? お分かりの方お教えください。 よろしくお願いいたします。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
=countif(A1:A100,"dog") の式ではdog の場合は勿論、DOGの場合でも数えられますので、dogとDOGを区別することなく数えられますね。 ご質問はお示しの式で対応できます。 それとは別にDOGとdogの数を区別して数えるのでしたら次のような式になります。 DOGの数は =SUMPRODUCT((A1:INDIRECT("A"&MATCH("ー",A:A))="dog")*(CODE(A1:INDIRECT("A"&MATCH("ー",A:A)))=<90)*1) この式でMATCH関数の中のーは一旦式を確定した後でひらがな入力モードでーを入力するようにします。半角の-ではいけません。 dogの数は =SUMPRODUCT((A1:INDIRECT("A"&MATCH("ー",A:A))="dog")*(CODE(A1:INDIRECT("A"&MATCH("ー",A:A)))>90)*1)
その他の回答 (6)
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
No.5 です。ごめんなさい、ちょっと初心者みたいなミスしました。No.5 の 1 本目の数式に、「1*」をもう 1 つ付けてください。 2 本目はそのままで大丈夫です。 =sumproduct(1*isnumber(1*find("dog",a1:a100)))
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
大文字と小文字を区別しない場合については、既に皆さんから回答されているので、ベストアンサーは辞退します。 次式は一応、大文字と小文字を区別します。ご参考まで。なおワイルドカード(「*」など)が数式中に用いられていませんが、「doggie」などの「dog」を「含む」データも数えます。 =sumproduct(isnumber(1*find("dog",a1:a100))) 完全一致のみの個数とするなら、例えば次式です。なお「3」というのは、「dog」の文字数が 3 という意味です。 =sumproduct(isnumber(1*find("dog",a1:a100))*(len(a1:a100)=3))
- kagakusuki
- ベストアンサー率51% (2610/5101)
もし、半角文字の「dog」や「DOG」と全角文字の「dog」や「DOG」を合わせてカウントする場合には、 =COUNTIF(A1:A100,"dog")+COUNTIF(A1:A100,"dog") とする方が、SUMPRODUCT関数を使うよりも計算に要する負荷が少なく済むため、実用的です。
補足
ご回答ありがとうございます SUMPRODUCTを使うより軽くていいですね
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
まんま、そのまんま、、、 試してみた??
補足
ご回答ありがとうございます。 Windows では大文字小文字を区別しなかったのですね
- keithin
- ベストアンサー率66% (5278/7941)
=COUNTIF(A1:A100,"dog") によって、dogとDOGを両方とも数えられます。 もう一度データをよく見直し、計算してみて下さい。 #参考 ご質問で例示されている大文字と小文字ではなく、実は全角文字と半角文字を一緒にして数えたかったのなら、 =SUMPRODUCT(1*(ASC(A1:A100)="dog")) のようにする手もあります。 この場合でも同様に大文字と小文字は区別されません。
- kagakusuki
- ベストアンサー率51% (2610/5101)
Excelは大文字と小文字を区別しませんから、そのまま =COUNTIF(A1:A100,"dog") 或いは =COUNTIF(A1:A100,"DOG") として下さい。 逆に大文字と小文字を区別してカウントさせる方が難しいです。
お礼
ご回答ありがとうございます。