
説明するよりキャプチャーの方が分かりやすいと思って画像を貼りました。
A列からある数以上の値が入っているセル個数をカウントするために、
「=COUNTIF(A:A,">="&C1)」という数式を作りました。
C1に入っている値でカウントできるようにしていて、例では8000を入れています。
E1に入っている式だと、本来「5」が返されるべきですが「4」となる場合の対処法について質問です。
A列の表示形式が標準でも文字列でも正しく「5」とカウントしてくれましたが、
A3だけダブルクリック又はF2で編集状態にしてEnterすると、
セルの左上に緑の▲マークが出て、
「数値が文字列として保存されています」という警告が表示されます。
するとそこだけカウントされなくなります。
実際にはA列には数百レコードあるので、いちいちこの状態のセルをチェックせずに
正常にカウントするために、数式の工夫で対処できないでしょうか?

No.2ベストアンサー
- 回答日時:
おそらく、元々はA列のデータも文字列なんでしょうね。
>A列の表示形式が標準でも文字列でも
すでに入力されたデータのデータ型は表示形式では変えることはできません。表示形式は見た目(右寄せとか左寄せとか)を変える程度です。
ですから表示形式をいくら変えても元が文字列データで、C1も文字列なのでその時はうまくいっていたのかと思います。
ですが、A3を数値にしてしまうと、文字列の8000以上と数値の8000以上は比較できません(というか文字列は必ず数値より大きいと判断されるので桁とかの問題ではなく比較にならない)のでカウントの対象にならなくなってしまうのです。
>正常にカウントするために、数式の工夫で対処できないでしょうか
まずはすべてのデータ型を揃えるようにするしかないでしょうね。
全て文字列か全て数値か。
No.4
- 回答日時:
こんにちは
No2様のご指摘はごもっともと思います。
そのままでも無理矢理計算はできますが(後述)、面倒がって膠着をしていれば、いつまでたってもそのデータは使いにくい(=使い物にならない)データのままです。
そのデータを利用しようとする毎に、ご質問の問題が発生することになり、ご自分で解決することになりますけれど・・・?
数値化する簡単な方法は、
1)A列の書式を「標準」等に設定
2)数値の「1」をコピーしておきます
3)A列の値のあるセル範囲を選択した状態で、貼り付けのオプションから
値、乗算にチェックを入れてOK
以上の操作で、数値に変換できるものは変換されると思います。
(空白セルがあると「0」になりますので、ご注意)
さて、ご質問の件ですが・・
少々回りくどい方法ですが、
=SUMPRODUCT(NOT(ISERROR(1/(-A:A<=-C1)))*1)
で求められると思います。
No.3
- 回答日時:
COUNTIF関数では参照範囲にある文字列数字を数値に変換できないと思われます。
SUMPRODUCT(N(--(A:A>=C1)))で試してください。
※ -- で文字列認識の8002を数値変換しています。
No.1
- 回答日時:
A3のセルだけ、書式が数値でない、文字列として
判断されているので、カウントされてないんでしょうね。
A列の条件に、設定されてる値を「数値変換して」
判断するようにしてみたらいいんじゃないでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
VBA2005 16進を2桁で表示したい。
-
エクセルで文字列をtxtファイル...
-
文字列からタブコードを取り除...
-
同一セル内に関数と文字列を同...
-
Left関数とRight関数を合わせた...
-
VBAでの Replace関数で、ワイル...
-
アクセスで特定の数字以外(複...
-
エクセルで文字列の最大値を抽...
-
エクセル 数値データを桁をそ...
-
Excel COUNTIF の仕様について
-
エクセルでセル内の文字列の最...
-
Excelで指数表現しないようにす...
-
OnTime 使用時のプロシージャへ...
-
アクセスでのインポート時の改...
-
csvファイルを読み込んでデータ...
-
VB.NETでティッカーのようなも...
-
Pro c/c++ でホスト変数の後に....
-
エクセルマクロ 特定の文字列...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
VBAでの Replace関数で、ワイル...
-
文字列からタブコードを取り除...
-
VBA2005 16進を2桁で表示したい。
-
エクセルで文字列をtxtファイル...
-
エクセルで文字列の最大値を抽...
-
Excelで3E8を3.00E+8にしない方...
-
Left関数とRight関数を合わせた...
-
アクセスで特定の数字以外(複...
-
Msgboxの×が押されたとき
-
MS SQLServer のSQLで文字列の...
-
Excelで指数表現しないようにす...
-
ORCLEでの小数の表示方法の変更...
-
【Excel VBA】複数ある特定の文...
-
エクセル 数値データを桁をそ...
-
SQL の Update文(?) と ...
-
VBの「As String * 128」とは?
-
aaa.bbb.ccc という、「ドット...
-
同一セル内に関数と文字列を同...
おすすめ情報