
A1からA16まで数式が入っています。
ただし数式の結果によっては、空欄になっているセルがあります。
COUNTA関数を使ってA1からA16までのデーターが入っている個数を調べた場合、空白のセルにも数式が入っているためカウントされますよね。
では、COUNTBLANK関数を使ってA1からA16までの空白の個数を調べた場合どうなりますか?
実際には空白のセルにも式が入っているのだから、0にならないとおかしくないですか?
実際の結果は空白の個数をちゃんとカウントできます。
なぜでしょうか?
矛盾していると思うのですが・・・
No.4ベストアンサー
- 回答日時:
>見た目が空白じゃないセル(答えが表示されている)はカウントされないのでふしぎなのですが・・・
COUNTBLANK関数では、数式の結果が表示される場合は、ブランク以外ですので、もちろんカウント対象になりません。
ただし、数式で空白文字列を返す場合は(数式の結果が重要)、未入力セルと同様にカウント対象になるということです。
No.5
- 回答日時:
No.3 です。
ごめんなさい、単なる不注意ですが、割と致命的なミスしました。No.3 のコード中、「TypeName(c.Value) = "String"」→「TypeName(c.Value) <> "String"」と訂正させていただきます。
Function CountTrueBlank(rng As Range) As Long
Dim c As Range, n As Long
For Each c In rng
If c.Value = "" And TypeName(c.Value) <> "String" Then n = n + 1
Next c
CountTrueBlank = n
End Function
No.3
- 回答日時:
質問者さんが「空白」と表現されているのは、本当の空白ではなくて、空文字列、空白文字列などと呼ばれている「""」のことですね。
Excel のヘルプの「関数リファレンス(関数参照)」にて COUNTA、COUNTBLANK 関数のページを見ると、次のとおりに書いてあります。
● COUNTA
「セル範囲に空の文字列を返す数式が含まれている場合、その値を計算の対象とします。空白セルは計算の対象にはなりません。」
● COUNTBLANK
「空白文字列 ("") を返す数式が入力されているセルも計算の対象となります。」
ここに言う「計算の対象」とは、「それを 1 個と数えて関数の戻り値に加算する対象であるセル」を意味しています。
従ってどちらの関数についても、少しも矛盾はなく、仕様どおりの動作になっています。他の Excel の諸機能と同様に、関数についても、まずはヘルプを確認し、その仕様を理解した上で利用してください。
組み込みの関数について質問者さんにお伝えすべき情報は、以上です。
上の仕様が気に入らない場合は、ご自分で工夫して、ユーザー定義関数を作るなどします。例えば次のコードを標準モジュールに貼り付けると、セルで CountTrueBlank 関数というのが使えます。「""」を除いて、空白セルの個数を数えます。
Function CountTrueBlank(rng As Range) As Long
Dim c As Range, n As Long
For Each c In rng
If c.Value = "" And TypeName(c.Value) = "String" Then n = n + 1
Next c
CountTrueBlank = n
End Function
No.2
- 回答日時:
こんばんは!
COUNTA関数とCOUNTBLANK関数の違いですね!
>ただし数式の結果によっては、空欄になっているセルがあります。
IF関数等で「""」のセルの扱いについては
↓のサイトに
>「未入力セル」と「""」(長さ0の文字列)ではカウントのされ方が違います
と載っています。m(_ _)m
http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu …
No.1
- 回答日時:
COUNTA関数は文字列をカウントする関数ですが、数式で返る「""」の場合も空白文字列(文字数0の文字列)として認識しますので、カウント対象になります。
一方、COUNTBLANK関数は、本当の空白セルだけでなく空白文字列の「""」もブランクとして認識する仕様になっていますので、ご質問のような結果となるわけです。
以下COUNTBLANK関数のヘルプより
空白文字列 ("") を返す数式が入力されているセルも計算の対象となります。ただし、数値の 0 を含むセルは計算の対象となりません。
この回答への補足
>空白文字列 ("") を返す数式が入力されているセルも計算の対象となります
ということは、すべてのセルに(””)を含む数式が入っているわけですからすべてカウントされるはず。
なのに、見た目が空白じゃないセル(答えが表示されている)はカウントされないのでふしぎなのですが・・・
頭悪くてすみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IF関数で空欄("")の時、Null...
-
【画像あり】オートフィルター...
-
エクセルでCSVを編集するとき、...
-
「データ要素を線で結ぶ」がチ...
-
Excel:関数が入っているセルに...
-
Excel > ピボットテーブル「(空...
-
空白セル内の数式を残したまま...
-
エクセルで入力すると隣のセル...
-
エクセルで上の行の値を自動的...
-
VBA スペースが入力されて...
-
Excelで、入力文字の後に自動で...
-
【関数】=EXACT(a1,b1) a1とb1...
-
vlookup にて、返す値が、空白...
-
エクセル 連番が途切れていると...
-
エクセルのIF関数で、隣のセル...
-
空白行がある場合削除 マクロ
-
数式による空白を無視して最終...
-
SUMIFS関数で「計算式による空...
-
ピボットテーブルで空白セルの...
-
エクセルのグラフで式や文字列...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【画像あり】オートフィルター...
-
IF関数で空欄("")の時、Null...
-
エクセルでCSVを編集するとき、...
-
Excel > ピボットテーブル「(空...
-
エクセル 連番が途切れていると...
-
「データ要素を線で結ぶ」がチ...
-
エクセルで入力すると隣のセル...
-
ピボットテーブルで空白セルの...
-
Excel:関数が入っているセルに...
-
Excelで、入力文字の後に自動で...
-
形式貼り付けの「空白を無視す...
-
数式による空白を無視して最終...
-
空白セル内の数式を残したまま...
-
excel2010 空白セルにのみ貼り...
-
関数TRANSPOSEで空白セルを0に...
-
【Excel】 csvの作成時、空白セ...
-
エクセルのIF関数で、隣のセル...
-
エクセル セルのコピー元が空...
-
エクセルで、「複数のセルの中...
-
エクセルで上の行の値を自動的...
おすすめ情報