14歳の自分に衝撃の事実を告げてください

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

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

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

A 回答 (3件)

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



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

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

=SUM(IF(EXACT(B2:C2,"aaa"),1,0))
    • good
    • 10
この回答へのお礼

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

お礼日時:2003/02/06 11:54

こんにちは。

maruru01です。

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

「=EXACT(B2,"aaa")」

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

「=COUNTIF(B3:C3,TRUE)」

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

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

お礼日時:2003/02/06 11:56

VBAでセルに入っている文字数をLEN関数で求め、LEFT関数で


左から一文字ずつ、CODE関数で英文字の大文字ですと、「Aが65」
小文字ですと「aが97」ですのでこれで判定してカウントする関数を
作られては如何ですか?
なお、VBAで関数を作るのは「Function」で宣言します。
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/02/06 11:57

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A