アプリ版:「スタンプのみでお礼する」機能のリリースについて

説明するよりキャプチャーの方が分かりやすいと思って画像を貼りました。

A列からある数以上の値が入っているセル個数をカウントするために、
「=COUNTIF(A:A,">="&C1)」という数式を作りました。
C1に入っている値でカウントできるようにしていて、例では8000を入れています。

E1に入っている式だと、本来「5」が返されるべきですが「4」となる場合の対処法について質問です。
A列の表示形式が標準でも文字列でも正しく「5」とカウントしてくれましたが、
A3だけダブルクリック又はF2で編集状態にしてEnterすると、
セルの左上に緑の▲マークが出て、
「数値が文字列として保存されています」という警告が表示されます。
するとそこだけカウントされなくなります。

実際にはA列には数百レコードあるので、いちいちこの状態のセルをチェックせずに
正常にカウントするために、数式の工夫で対処できないでしょうか?

「countif関数について質問」の質問画像

A 回答 (4件)

おそらく、元々はA列のデータも文字列なんでしょうね。



>A列の表示形式が標準でも文字列でも

すでに入力されたデータのデータ型は表示形式では変えることはできません。表示形式は見た目(右寄せとか左寄せとか)を変える程度です。
ですから表示形式をいくら変えても元が文字列データで、C1も文字列なのでその時はうまくいっていたのかと思います。

ですが、A3を数値にしてしまうと、文字列の8000以上と数値の8000以上は比較できません(というか文字列は必ず数値より大きいと判断されるので桁とかの問題ではなく比較にならない)のでカウントの対象にならなくなってしまうのです。

>正常にカウントするために、数式の工夫で対処できないでしょうか

まずはすべてのデータ型を揃えるようにするしかないでしょうね。
全て文字列か全て数値か。
    • good
    • 0

こんにちは



No2様のご指摘はごもっともと思います。

そのままでも無理矢理計算はできますが(後述)、面倒がって膠着をしていれば、いつまでたってもそのデータは使いにくい(=使い物にならない)データのままです。
そのデータを利用しようとする毎に、ご質問の問題が発生することになり、ご自分で解決することになりますけれど・・・?

数値化する簡単な方法は、
 1)A列の書式を「標準」等に設定
 2)数値の「1」をコピーしておきます
 3)A列の値のあるセル範囲を選択した状態で、貼り付けのオプションから
   値、乗算にチェックを入れてOK
以上の操作で、数値に変換できるものは変換されると思います。
(空白セルがあると「0」になりますので、ご注意)


さて、ご質問の件ですが・・
少々回りくどい方法ですが、
 =SUMPRODUCT(NOT(ISERROR(1/(-A:A<=-C1)))*1)
で求められると思います。
    • good
    • 0

COUNTIF関数では参照範囲にある文字列数字を数値に変換できないと思われます。



SUMPRODUCT(N(--(A:A>=C1)))で試してください。
※ -- で文字列認識の8002を数値変換しています。
    • good
    • 0

A3のセルだけ、書式が数値でない、文字列として


判断されているので、カウントされてないんでしょうね。

A列の条件に、設定されてる値を「数値変換して」
判断するようにしてみたらいいんじゃないでしょうか。
    • good
    • 0

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