• ベストアンサー

Excelで連続で入力されたセルの数を数える方法は?

A列に日付、B列に金額を毎日入力して行きます。ただし、金額はある条件のときだけ入力します。このとき、下のように金額欄にデータがあるときだけ、C列にその連続回数を表示したいと思います。    A    B    C 1 1/25   100   1 2 1/26   110   2 3 1/27 4 1/28   150   1 5 1/29    6 1/30    90   1 7 1/31   160   2 8 2/1    120   3 こんな感じにしたいのですが、どうすればよろしいのでしょうか? どうぞよろしくおねがいします。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

1行目に項目(日付 金額 連続回数)があるなら C2=IF(ISNUMBER(B2),SUM(C1,1),"") で計算できます。

osayann21
質問者

お礼

完璧にできました。期待通りに動いてくれます。 ありがとうございました。 これからもよろしくおねがいします。

すると、全ての回答が全文表示されます。

その他の回答 (6)

noname#204879
noname#204879
回答No.7

  A   B  C 1 月日 金額 回数 2 1/25 100   1 3 1/26 110   2 4 1/27 5 1/28 150   1 6 1/29 7 1/30  90   1 8 1/31 160   2 9  2/1 120   3 セル C2 に式 =IF(B2="","",SUM(C1,1)) を入力して、此れを下方にズズーッと複写

osayann21
質問者

お礼

ご回答ありがとうございます。 なるほど~すばらしいですね。シンプルな式がいいですね 実は回数が複数以上ある場合の平均値を出そうと思っていたので、 シンプルな式は大変効果があります。 ご回答をよせていただいた皆様ありがとうございました。

すると、全ての回答が全文表示されます。
noname#22222
noname#22222
回答No.6

s_husky です。 補足しておきます。 Option Explicit Public Sub Update_C()   '   ' B列が入力されてC列が空欄を探す   '      '   ' C列に代入する値を計算する   '      Application.OnTime Now + TimeValue("00:00:01"), "Update_C" End Sub Public Sub Auto_Open()   Application.OnTime Now + TimeValue("00:00:01"), "Update_C" End Sub ※値の計算は、多くの方が回答されているので割愛します。 ※1秒毎にしかC列が更新されないのが難点です。

osayann21
質問者

お礼

2回にわたるご回答ありがとうございます。 VBAの世界なんでしょうが、私には理解の範囲を超えてしまいました。 折角ご回答していただきましたが、確認もできない始末です。 申し訳ありません。

すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.5

C1に1 C2に=IF(B2="","",IF(C1="",1,C1+1)) をいれ、C2で+ハンドルを出して下へ引っ張る。 (例)B列 C列 a 1 s 2 d 3 s 1 d 2 a 1 a 2 s 1 d 2 f 3 g 4

osayann21
質問者

お礼

ご回答ありがとうございます。 質問がわかりにくかったかもしれません、C1にはいつも金額が入るとは かぎらないのですが・・・

すると、全ての回答が全文表示されます。
noname#22222
noname#22222
回答No.4

Excelは良く判りませんが、一言。 私なら、Excelのシートにタイマーを配置してB列が更新された時にC列にしかるべき値をセットします。

すると、全ての回答が全文表示されます。
  • I_X
  • ベストアンサー率40% (4/10)
回答No.2

一番上の行に空行が必要ですが、C列に =IF(B2="","",IF(B1="",1,C1+1))  でできませんかね~? もし、意味の履き違いがあったら、すいません・・・

osayann21
質問者

お礼

ご回答ありがとうございます。 そういえば、1行目にタイトル行が入りますよね、 あわてて質問してしまい忘れてしまいました。すいません

すると、全ての回答が全文表示されます。
noname#16474
noname#16474
回答No.1

C1に =if(B1="",0,1) C2は =if(B2="",0,C1+1) とし、C3以降にコピー でいかがでしょう。 C列の0は、非表示にしてください (書式設定を #,###,-#,####; とするなど)

osayann21
質問者

お礼

早速のご回答ありがとうございます。 実は初めて質問したので、h20060121さんが初めての回答者となります。 これからもよろしくおねがいします。

すると、全ての回答が全文表示されます。