「これはヤバかったな」という遅刻エピソード

B1に全角で「アアア」
B2に半角で「アアア」と入っていて
A1に=COUNTIF(B:B,ASC(B1))として下へドラッグしても、
1が返ってきます。

ASC(B1)こうすることによって、「アアア」は半角になり、B列に2つある事になるはずですが
なぜ1が返るのでしょうか?

「COUNTIF 半角全角区別せずに探した」の質問画像

A 回答 (3件)

こんばんは!



お示しの数式では
COUNTIF関数の範囲B:B列そのまま(1バイトに変えていないもの)を
検索条件でB列の行を1バイトにして検索していますので、戻り値はそのようになるはずです。

今回の場合は
=SUMPRODUCT((ASC(B$1:B$1000)=ASC(B1))*(B$1:B$1000<>""))
のようにしてみてはどうでしょうか?

B列範囲を1バイトに変えたものが検索条件で1バイトに変えたものの個数を表示する!
という考え方です。

※ SUMPRODUCT関数は配列数式になりますので、極端にデータ量が多い場合はおススメしません。
そのため、とりあえず1000行まで対応できる数式にしています。m(_ _)m
    • good
    • 0
この回答へのお礼

回答頂きありがとうございました。

お礼日時:2014/01/01 22:01

>COUNTIF 半角全角区別せずに探したい


回答No.2の追加です。

=COUNTIF(B:B,ASC(B1)) では半角カタカナのみをカウントしますので、その逆もカウントして加算すれば良いと言う案もあります。

=COUNTIF(B:B,ASC(B1))+COUNTIF(B:B,JIS(B1))
「COUNTIF 半角全角区別せずに探した」の回答画像3
    • good
    • 1
この回答へのお礼

回答頂きありがとうございました。

お礼日時:2014/01/01 22:01

>ASC(B1)こうすることによって、「アアア」は半角になり、B列に2つある事になるはずですが


なぜ1が返るのでしょうか?
元データのB1の全角カタカナが半角になっていませんので比較対象のASC(B1)と一致しませんのでB2の半角カタカナのセルのみの1が帰ります。

COUNTIF関数の範囲は関数の返り値のときエラーになるので次の式は使えませんでした。

=COUNTIF(ASC(B:B),ASC(B1))

次の式で代替できるのではないでしょうか?

=IF(B1="","",COUNT(IF(ASC(B$1:B$10)=ASC(B1),1,"")))

但し、入れ子の内側にある IF(ASC(B$1:B$10)=ASC(B1),1,"") は配列の返り値を必要とするため式全体を配列式として扱わあなければなりません。
入力時にCtrl+Shift+Enterで確定してください。
    • good
    • 1
この回答へのお礼

回答頂きありがとうございました。

お礼日時:2014/01/01 22:01

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

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


おすすめ情報

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