• ベストアンサー

Excel 英大文字小文字を区別せず検索対象にする

こんにちは。 Excel 2007を使っています。 表中、A列に以下のような文字列があります。 DOG house HOUSE dog housing HOUSING dog DOG たとえばcountif関数でdogの個数を数える時は =countif(A1:A100,"dog") のようにしますが dogとDOG両方を数えたいときにはどのように どのようにしたらよいでしょうか? お分かりの方お教えください。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.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)

回答No.6

No.5 です。ごめんなさい、ちょっと初心者みたいなミスしました。No.5 の 1 本目の数式に、「1*」をもう 1 つ付けてください。 2 本目はそのままで大丈夫です。 =sumproduct(1*isnumber(1*find("dog",a1:a100)))

sherman
質問者

お礼

ご回答ありがとうございます。

回答No.5

大文字と小文字を区別しない場合については、既に皆さんから回答されているので、ベストアンサーは辞退します。 次式は一応、大文字と小文字を区別します。ご参考まで。なおワイルドカード(「*」など)が数式中に用いられていませんが、「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)
回答No.4

 もし、半角文字の「dog」や「DOG」と全角文字の「dog」や「DOG」を合わせてカウントする場合には、 =COUNTIF(A1:A100,"dog")+COUNTIF(A1:A100,"dog") とする方が、SUMPRODUCT関数を使うよりも計算に要する負荷が少なく済むため、実用的です。

sherman
質問者

補足

ご回答ありがとうございます SUMPRODUCTを使うより軽くていいですね

回答No.3

まんま、そのまんま、、、 試してみた??

sherman
質問者

補足

ご回答ありがとうございます。 Windows では大文字小文字を区別しなかったのですね

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

=COUNTIF(A1:A100,"dog") によって、dogとDOGを両方とも数えられます。 もう一度データをよく見直し、計算してみて下さい。 #参考 ご質問で例示されている大文字と小文字ではなく、実は全角文字と半角文字を一緒にして数えたかったのなら、 =SUMPRODUCT(1*(ASC(A1:A100)="dog")) のようにする手もあります。 この場合でも同様に大文字と小文字は区別されません。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 Excelは大文字と小文字を区別しませんから、そのまま =COUNTIF(A1:A100,"dog") 或いは =COUNTIF(A1:A100,"DOG") として下さい。  逆に大文字と小文字を区別してカウントさせる方が難しいです。

関連するQ&A