こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

EXCELのcountif関数での大文字と小文字は区別できるのでしょうか

EXCELのcountif関数での大文字と小文字を別々にカウントする方法をご存知の方がいましたら教えて下さい。

入力値
セルB2 aaa
セルC2 aAa
=COUNTIF(B2:C2,"aaa")とすると 2  が返ってきます。
aaaのみカウントしてaAaはカウントしないようにしたいのです。

もしかしたらcountifの制限なのでしょうか?そうだとしたら他の方法が思いつきません。ご存知の方みえましたら、教えて下さい。お願いします。

投稿日時 - 2003-02-05 12:57:02

QNo.464499

暇なときに回答ください

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

=SUMPRODUCT((EXACT(B2:C2,"aaa"))*1)

とすれば、計算できるでしょう。

また、下は配列数式です。
登録するとき、Ctrl + Shift + Enter とします。
 (CtrlキーとShiftキーを押した状態でEnterキーを押します)

=SUM(IF(EXACT(B2:C2,"aaa"),1,0))

投稿日時 - 2003-02-05 16:17:58

お礼

ありがとうございました!できました。
モジュールを作ろうと思っていましたが関数のみで出来て助かりました。
EXCEL関数は奥が深いですね!

投稿日時 - 2003-02-06 11:54:53

ANo.3

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

こんにちは。maruru01です。

作業行を1行使用します。
仮に3行目を作業行とすると、B3に、

「=EXACT(B2,"aaa")」

と入力し、C3(必要列)までコピーします。
そして、個数を出したいセルに、

「=COUNTIF(B3:C3,TRUE)」

と入力します。
COUNTIF関数の第1引数の範囲は、作業行の範囲(この場合は3行目)として下さい。
これで、この場合は、1が返ります。
本当は配列数式を使いたいところですが、COUNTIF関数は配列数式で使えないので、作業行を使用する方法にしました。
作業行を作りたくないなら、No.1の方の通り、VBAでユーザー定義関数を自作することになります。

投稿日時 - 2003-02-05 14:39:32

お礼

ありがとうございます。こんなやり方あるんですね。助かりました。

投稿日時 - 2003-02-06 11:56:02

ANo.1

VBAでセルに入っている文字数をLEN関数で求め、LEFT関数で
左から一文字ずつ、CODE関数で英文字の大文字ですと、「Aが65」
小文字ですと「aが97」ですのでこれで判定してカウントする関数を
作られては如何ですか?
なお、VBAで関数を作るのは「Function」で宣言します。

投稿日時 - 2003-02-05 14:18:30

お礼

やはり、VBA関数作るしかないのですね。チャレンジしてみます。
ありがとうございました。

投稿日時 - 2003-02-06 11:57:25

あなたにオススメの質問