• ベストアンサー

EXCELの空白セルの集計方法

アンケート表を作っています。 例えば A   B 1   3 2   4 3   1 … 200  5 … 299 300 ちょっと判りにくいかも知れませんがAが通し番号でBが評価項目です。 Bの評価は1-5までの数字を記入するようにしています。 (評価項目はB以降C、Dと続きますが今回は省略しています) Aの番号は現在300まで作っていますがBは200くらいしか埋まっていません。 Bはこれからまだ増えると思います。 困っているのはBの評価項目で未記入の人が居る事です。 Bで入力した部分までの未記入(空白セル)をカウントする方法はないのでしょうか? COUNTBLANKを使おうとも思いましたが1-300までの範囲にしてしまうと まだ記入していない部分の空白までカウントしてしまいうまくいきませんでした。 何か良い方法を知っている方がいましたら、教えてください。 よろしくお願いします。 EXCELのバージョン:2000

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

私は最近index関数が好きなので、「空でない最後の行」を求めるの に =max(index(not(isblank(B1:B300))*row(B1:B300),0)) なんてヤ リます。実際に入力されている項目数はcount(B1:B300)で出ますの で、差を取れば途中の空白セルの数になりますね。 isblank(範囲)はもちろん空ならTRUE、なにか書いてあればFALSEに なりますね。それをnotで逆転させて行番号をかけ算すると、TRUEは 1でFALSEは0として扱われ、空だったところは0で空じゃなかったと ころは行番号の(1;2;0;4;0;0;7;8;........}という配列が出来上が ります。index関数でこれは配列だよって形式を整えてmax関数に渡 すことで、「空でない最後の行」が返ってくるという仕組みです。

April_23
質問者

お礼

回答ありがとうございます。 解りやすい説明で自分でも理解できました。 目的の式は回答の式を手直しして無事うまくいきました。

その他の回答 (2)

  • akiomyau
  • ベストアンサー率43% (555/1280)
回答No.2

最後のセルは入力があるものまでとして その間にある空白セルであれば以下のような式でどうでしょうか。 =COUNTBLANK(B1:INDIRECT("B"&MATCH(MAX(B:B)+1,B:B,1)))

April_23
質問者

お礼

今回はNo.3の方の回答を参考にさせてもらいました。 akiomyauさんの回答は今の自分ではちょっと理解できませんでしたので 今回はこのようなポイント割り振りにさせてもらいました。 理解できるよう勉強しておきたいと思いますので、今回はご了承をお願いします。

April_23
質問者

補足

回答ありがとうございます。 最後のセルは入力がある状態で終わる予定です。 補足で質問したいのですが「B」単体の部分はセルの参照などではなく Bだけで良いのでしょうか? (質問文では仮にBとしていますが実際はBではない物で・・・) うーん、INDIRECTとかMATCHとか見たことのない関数だ。 後で調べないと・・・

  • Us-Timoo
  • ベストアンサー率25% (914/3620)
回答No.1

あの~、評価が未記入のセル数を数えたいのではないんですか? 1~300までの範囲は指定するならその範囲の空白は全てカウントされますよ? おっしゃっていることが矛盾しているんですが…

April_23
質問者

お礼

説明の仕方が悪かったようですいません。 1-300というのは、とりあえずの範囲ということで書きました。 一々、記入した部分まで範囲を直しながらと言うのは面倒なので いい考えがないものかと思い質問しました。