次の方法で共有

空白以外のセルのカウントをしたいが、範囲にはすべて計算式が入っている

Anonymous
2022-06-01T15:50:44+00:00

B4からB13の10個のセル範囲にはすべて式が入っているとします。

その式は他の同じシートの左側に、日と開始時刻と終了時刻の列があり

その3つすべてにデータが入っていたら「1」入っていなかったら空白("")

にする式が入っています。

=COUNTA(B4:B13)でも=COUNTIF(B4:B13,"<>" & "") でも結果は10です

式が入っているから空白でないと判断すると考え、

空白でない値だったらと「1」と「0」をとる式に変え

=COUNTIF(B4:B13,1)とすると思いどおりのカウントができました。

質問の整理

・(上記のようにすべて式が入った範囲を指定して)

 空白以外の個数を数える方法はあるのでしょうか

・もし無いという答えなら空白を除く値を作る必要がある

 (作らなければならない)ということになるのでしょうか

よろしくお願いします。

Microsoft 365 と Office | Excel | ビジネス向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません
質問作成者が受け入れた回答
  1. Anonymous
    2022-06-02T08:48:19+00:00

    解決策になったようであれば、よかったと思います。

    使用する関数によって空白セルと判断するものが違うのは、それぞれの関数の仕様というしかないと思います。

    詳しいことは分かりませんが、<空白セル 数式>・<空白セル 文字列>・<空白セル 関数 数式>などのキーワードでネット検索すれば、下の参考例のように多くの情報が見つかると思います。

      参考例:COUNT 関数と COUNTA 関数・・・

          COUNTBLANK 関数

    ・・・ということで検索してみたら、[Concatenate]が見つかりました。

    使ったことがなく確認もしていませんが、下のサイトを参照してください。

       式を入力していても、空白セルとして認識させたい

    2 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません

9 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2022-06-27T12:42:44+00:00

    少し時間がたってしまいましたが、過去に自分が作っ たExcelに

    COUNTIFを使って空白以外の件数をカウントしているもの

    を発見しました。

    =COUNTIF(範囲,"?*")

    昔、ワイルドカードの書き方を知っていて、今はすっかり

    忘れて、恥ずかしいことですが、

    COUNTIFで「"<>"&""」が効かないのか「""」という記述が

    特殊なのかわかりませんが、「?*」も空白以外という意味で

    使えると思います。

    COUNTA関数はパラメータが範囲だけなので、工夫のしようが

    ありませんが、それならCOUNT関数はどうかと試してみると

    これは、計算式の結果を見てカウントしています。

    たとえば B4,B5,B6セルに 「りんご」「""」「かき」

    と入力し。右隣のC4,C5,C6セルに

    =IF(B4<>"",LEN(B4),"") などと数値と空白を作る計算式

    で埋めたとき C列のCOUNT結果はすべて計算式が入っている

    がゼロにはなりません。

    4 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません
  2. Anonymous
    2022-06-03T05:44:04+00:00

    Hebikuzureさん

    ありがとうございます。

    COUNTIFは、計算式の結果がたとえば1と0にすれば

    =COUNTIF(B4:B13,1) 1のものを数えることができますから

    計算式の結果は判定できます。

    空白だけが例外的に判定できない =COUNTIF(B4:B13,"<>" & "")

    と考えます。

    これまで教えていただいたことから思うことは、

    極端になるかもしれませんが、計算式の結果を判定できない

    関数なんてありえないと思うんです。

    Excelは計算結果を見て他のセルの計算式も連動していくものです。

    教えていただいたCOUNTBLANKが特殊なのではなく、これが普通で

    COUNTIFやCOUNTAが異常だと思います。

    また我々Excelユーザが関数を使う時に

    文字が入っているセルの数をカウントできるCOUNTA関数を

    使うときに生データだけに使うこと、関数結果は見ていない

    なんてどこにも書いてないようなことを覚えてないと使えない

    というのも変ですよね。

    有効行数をカウントする方法は、有効=1,無効=0と判定する列を

    作り、これをSUM関数でカウントするのが良い方法です。

    (これも他の人から教えてもらった)

    COUNTBLANKは空白以外を本来はカウントしたいことから、

    全件-COUNTBLANK値とする必要があるため

    全件というのをたとえば ROW(範囲終了行)-ROW(範囲開始行)+1

    などと考えなければならないので、COUNTNOTBLANK関数が欲しいです。

    開発元のマイクロソフトさんにはCOUNTIF,COUNTAを直してほしい。

    1 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません
  3. Anonymous
    2022-06-01T23:24:50+00:00

    もしB4:B13が1の数をカウントする以外に使い道がないとした場合の別解ですが、そもそもここを1にするかどうかでCOUNTIFSとか使っていると思うので、であれば

    =COUNTIFS(日付範囲,"<>",開始時刻,"<>",終了時刻,"<>")

    でもよいかと。言うまでもなく「日付範囲」とかは"B4:B13"と同様のセルの範囲です。

     ただ「同じシートの(B列より)左側に」三つの数値があるということは、別々の列にあるという訳ではなく、上のように一発で計算するのが面倒だからワンクッションおいてるということなのですかね。

    0 件のコメント コメントはありません
  4. Anonymous
    2022-06-01T20:25:14+00:00

    [数値]があるセルだけをカウントして[文字列]・[エラー値]・[論理値]などはカウントしないので目的によっては使えない場合もありますが、<COUNT>関数を使ったらどうでしょうか。

      =COUNT(B4:B13)

    セルが[1]と[空白]だけで個数計算するなら、次の式でもいいと思います。

      =SUM(B4:B13)

    あるいは、空白セルをカウントする<COUNTBLANK>関数を使って、総数からマイナスするという方法もあります。

      =10-COUNTBLANK(B4:B13)

    0 件のコメント コメントはありません