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

エクセル初心者です。
よろしくお願いいたします。
エクセルでこのような表を作っています。

  A  B  C
1 10 15
2 20
3    10
4    15
5 10
6 10 10



この時、データの入っている行数をカウントしたいのです。
上の例では 「6」 です。
途中に空白の行はありません。
A列、B列にはどちらにも数字が入る場合と、どちらかにしか
入らない場合があります。
なので COUNT は使えないですよね?

今まではデータを入力後、下の空白の行を削除し、C列で COUNTBLANK
として求めていたのですが、表の長さ(行数)が一定でないため、
体裁が悪くなってしまっていました。

希望としては。

最終行のC列に「終了」などと入れると、その文字列を判別
してくれて、それより上の行数をカウントしてくれる。

または

例えば OR を使って、A列B列どちらかにデータがある
場合のみ、カウントしてくれる。

こんなワガママなことができたら、と思っております。

補足が必要ならばいたします。
それと、遅くなるかもしれませんが、お礼は必ずさせていただきます。

A 回答 (8件)

C欄に空白以外のセルの個数を数える


COUNTA(値1,値2,...)を使ってはいかがでしょうか。
複合式になりますが
C1には=IF(COUNTA(A1,B1)>=1,1,0)を代入します。
D9(じゃなくても適当なセル)で=SUM(D1:D8)=列数が返ります。
もっとスマートな方法があればよいのですが。

  A  B  C
1 10 15 1
2 20    1
3    10 1
4    15 1
5 10    1
6 10 10 1
7       0
8       0
9       6
    • good
    • 0

すみません#1です、訂正です。



誤:D9(じゃなくても適当なセル)で=SUM(D1:D8)=列数が返ります。
正:C9(じゃなくても適当なセル)で=SUM(C1:C8)=列数が返ります。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>C欄に空白以外のセルの個数を数える
COUNTA(値1,値2,...)を使ってはいかがでしょうか。

私が最初に思いついたのがこの方法でした。
ですが、エラーが出たりして数式がうまく作れず、苦心しておりました。

>=IF(COUNTA(A1,B1)>=1,1,0)
>=SUM(C1:C8)

で、C列を表示しないようにすればすっきりしますね。
私のしたいことがばっちりできました。
参考にさせていただきます。ありがとうございました。

お礼日時:2007/11/09 07:28

=MAX(MATCH(10^10,A:A),MATCH(10^10,B:B))



で、A列またはB列の中で数値が入っている最終行を返します(10^10以上の数値は入っていないものとします)。

=MATCH("終了",A:A,0)

で、A列の中で「終了」と入力されている行を返します。

詳しくはヘルプを参照してください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

恥ずかしながら MATCH についてまだ何も知らなかった私なので、
ちょっとだけですが、ヘルプを見て勉強してみました。

C列最終行にはできれば「終了」をいれたく、
そして行数を返したいセルは、任意の位置にしたいので、
そこに

=MATCH("終了",A:A,0)

というのがシンプルで私にもわかりやすいようです。
参考にさせていただきます。ありがとうございました。

お礼日時:2007/11/09 07:31

C列にはデータが有る行の累計を表示しておいて、その最大値(この場合は"6")を見れば良いのではと思いますが、それではダメでしょうか。


 C2 には次の式を入れ、下にコピーします。
   =IF(COUNT(A2:B2)>0,C1+1,0)

1 A  B  C
2 10 15 1
3 20    2
4    10 3
5    15 4
6 10    5
7 10 10 6
8       0
9       0
10    10 1
11    15 2
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
「なるほど」と思ってしまいました。
「累計」ですね、考えてもみませんでした。
教えていただいた方法で、C列を非表示にして、任意のセルで
「C列の最大値」を返すようにすれば、私のしたいことが
できると思います。
参考にさせていただきます。ありがとうございました。

お礼日時:2007/11/09 07:33

こんばんは。



>最終行のC列に「終了」などと入れると、その文字列を判別してくれて、それより上の行数をカウントしてくれる。

言い換えると、C列の「終了」の後の数字の行はカウントしません。

これは、A~C列には置けません。(循環参照エラーが発生します)

=IF(ISERROR(MATCH("終了",C:C,0)),"",MAX(INDEX(ISNUMBER(INDIRECT("A1:B" &MATCH("終了",C:C,0)))*ROW(INDIRECT("A1:B"&MATCH("終了",C:C,0))),,)))

なお、A1 から始まらない場合は、
ISNUMBER(INDIRECT("A1:B" の側のみの変更をしてください。ROW側の変更はしないでください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>C列の「終了」の後の数字の行はカウントしません。
>これは、A~C列には置けません。(循環参照エラーが発生します)

はい、この循環参照についてはわかります。
ですが、教えていただいた数式は私には複雑すぎて・・・
初めて見る関数ばかりでした・・・
コピペしてみたところ、行数は正しく示してくれましたが。
おいおい勉強して行きたいと思います。
複雑な数式を教えていただき、ありがとうございました

お礼日時:2007/11/09 19:35

こういう関数もあり?



=sum(if((a1:a50<>"")+(b1:b50<>""),1,""))

と入力して、ShiftとCtrlを押しながら、Enterを押す。
このような関数を配列関数 と いいます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
配列関数、というのもまだまだ私の知らない世界で・・・
ヘルプを読んで少し勉強してみました。
まだ?の部分が多いですが、この教えていただいた数式は、
わからないなりにも納得できる(?)ような気がします。

参考にさせていただきます。ありがとうございました。

お礼日時:2007/11/09 19:37

例データA1:B6


A列   B列
1015
20
ー10
ー   15
10
1010
ーー
A,Bとも空白の行を除く行数
=SUMPRODUCT(((A1:A6="")+(B1:B6=""))*1)
または
=SUM(IF(((A1:A6="")+(B1:B6="")),1,0))
と入れて、SHIFT,CTRL,ENTERの3つのキーを同時押しする。
(配列数式)
ーー
A,Bとそろって空白で無い行
=SUMPRODUCT((A1:A6<>"")*(B1:B6<>"")*1)
=SUM(IF(((A1:A6="")*(B1:B6="")),1,0))
と入れて、SHIFT,CTRL,ENTERの3つのキーを同時押しする。
(配列数式)

この回答への補足

回答ありがとうございます。
教えていただいたまま、コピペしてみましたが、

=SUM(IF(((A1:A6="")+(B1:B6="")),1,0))

だと「4」が返ってしまいます。

また、

=SUM(IF(((A1:A6="")*(B1:B6="")),1,0))

ですが、これだと「0」が返るので、
「空白の行が0」ということで、わかるのですが。

申し訳ありません、配列数式については、こちらで回答を
いただくまでまるで知らなかったので、にわか勉強では
とても理解できず、どこが間違っているのかも自分では
わかりません。

補足日時:2007/11/10 07:21
    • good
    • 0

こんばんは。


#5の回答者です。

>教えていただいた数式は私には複雑すぎて・・・
>初めて見る関数ばかりでした・・・
>コピペしてみたところ、行数は正しく示してくれましたが。
>おいおい勉強して行きたいと思います。

私が、掲示板に書き出した数年前には、#5の書き方はなかったです。こういうのは、日進月歩で進化しているのです。世界中の人が、掲示板の中で書いていて、一人の人の思いつきが世界中に広まるわけですね。私の書き方は、Excel Ver.4 の書き方からヒントを得たもので、自分が最初に使ったとは思ってはいても、いつの間にか広まって、本当に、自分は最初だったのか分からなくなっているものがありますね。

VBAやマクロで覚えて、再び、ワークシート関数に戻ってくると、また、違った姿に見えてきます。数式は、おぼろげながらイメージは、最初にはあっても、いじっているうちに出来上がるものであって、組み立てていくものではないようです。それが、マクロなどと比較する難しいものなのです。
    • good
    • 0
この回答へのお礼

たびたびの回答ありがとうございます。

私にはこのようなサイトを除けば、エクセルに関して周りに質問できる人も、
教えてくれる人もおらず、独学、といえば聞こえはいいですが、
本当に我流で今現在もやっております。

思えば自営業をやっている主人の、経理の手助けになれば、と
Windowsのエクセルを初めて起動してみたのがきっかけでした。
そんな私が初めて作ったワークシートは、なんとSUM関数もなく(知らず)、
+や-をズラズラとつなげただけの、なんともお粗末なものでした(笑)

それでも、エクセルに興味を持ったのは間違いなく、徐々に
それこそカメの歩みのごとく、関数もひとつまたひとつと覚えて
いっています。

教えていただいた数式が、理解できる日が来るよう、これからも
マイペースでやっていきたいと思います。
また、こちらでお世話になることがあると思いますが、
どうぞよろしくお願いいたします。

お礼日時:2007/11/17 07:26

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