- ベストアンサー
数字のカウント
A B C 1 1 54 7 2 0 30 7 3 1 23 7 4 2 1 7 例えばこのような表で、B列の数字はひと月たったらプラス1されようにしてA列には、B列の数字が60になったらプラス1されるようにしたいのです。又、B列の数字は60になったら1からカウントされるようにしたいのですが、教えてください。お願いします。 (A列、B列は任意の数字でC列は日付関数で月だけを表示。)
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
今月(7月)であれば、基準日によってA列の値、B列の値は以下のようにカウントアップされれば良いですか? A列 B列 C列 0 1 2006/7/1 0 2 2006/6/1 0 3 2006/5/1 中略 0 58 2001/10/1 0 59 2001/9/1 1 1 2001/8/1 1 2 2001/7/1 また月数は毎月の1日を過ぎたらカウントアップするものとします。(2006/6/15が基準日のとき暦日の1カ月経たなくても2006/7/1になったらカウントアップ) この前提で書きますので、前提が間違っていたら補足して下さい A列の式は =INT((YEAR(TODAY())*12+MONTH(TODAY())-YEAR(C1)*12-MONTH(C1)+1)/60) B列の式は =MOD(YEAR(TODAY())*12+MONTH(TODAY())-YEAR(C1)*12-MONTH(C1),59)+1 となります。 質問の通りにA,B列を表示したいなら、各行の基準日は 1行目 (1,54) 1997/3/1 2行目 (0,30) 2004/2/1 3行目 (1,23) 1999/10/1 のように設定すれば表示されるはずです。
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
基点の月(年月日)は例えば具体的に、式の中に2006/4/1と持てば良いでしょう。 >はひと月たったら 暦の上の月の移り数でいいのか 実質的に、次月応答日をもって1月の経過とするのか ○その場合MONTH関数での引き算か、DATEDIFFか を使うことになるでしょう >B列の数字は60になったら1からカウント 基準月から現在月までの経過月数を、60で割って余り(MOD関数で出す)を加えると良いようにおもう ーー 基準月は具体的にいつなのか 現在月はどう・どこのセルに表現されるのか 「1月たったら」の厳密な表現 を補足すべきと思う。
補足
基準月は特に設けてないですが、7月からカウントしたいのです。(2006/7/1から) セルはC列以降どこでも使用可能なので基準月、現在月の入れ方教えてもらえれば幸いです。
- 134
- ベストアンサー率27% (162/600)
VBAマクロで処理する必要があるように思います。 例えば F1セルに 1ヶ月経過を計算する基準データを日付形式で入れたとして、以下のモジュールを入れるなどする必要があるかと思います。 (ファイルを開いたときに、データの更新を「自動」でする形式になっています。必要なら、MsgBoxなどで、更新するかどうかを入力できる記述を、個人的にはお勧めします) Private Sub Workbook_Open() Dim Mydate As Date, MyLow As Long Mydate = Date MyLow = Range("B65535").End(xlUp).Row If Mydate > Range("f1").Value + 30 Then For i = 1 To MyLow Cells(i, 2).Value = Cells(i, 2).Value + 1 If Cells(i, 2) >= 60 Then Cells(i, 2) = 1: Cells(i, 1).Value = Cells(i, 1) + 1 Next End If End Sub マクロプログラムは、より詳しい人により、改良可能かもしれませんけど
- NCU
- ベストアンサー率10% (32/318)
「ひと月たったら」というのを、Excelはどのようにして知る事ができるのでしょうか?
- zap35
- ベストアンサー率44% (1383/3079)
http://oshiete1.goo.ne.jp/kotaeru.php3?q=2249450 でも同じような質問をされて、まだクローズされていませんが… 前回の補足を拝見すると、B列の数字はある起点からの月数になるそうですね。その起点の年月はどこかのセルに格納されていないのでしょうか。もしあれば比較的簡単なのですが、それがないとなると前回もお答えしたように、以下のような数式をひねり出すしかないでしょう。もし起点の年月をどこかのセルに書いてよいなら補足でその旨を教えて下さい。 B1セルは =MOD(YEAR(TODAY()) * 12 + MONTH(TODAY()) - 24026 , 59 ) +1 になります。そしてA1セルは =1 + INT((YEAR(TODAY()) * 12 + MONTH(TODAY()) - 24025) / 60 ) です なお式を入れたセルの書式は標準または数値にしてください。
補足
特に基準月は設けてなかったんですけど、D列以降あたりに基準月入れればいいんですか? A列とB列の数字があれば良いです。 できれば、7月からカウントしていきたいんですけど。
お礼
どうもありがとうございます。 教えてもらったとおりやってみようと思います。 いろいろと説明不足のためお手数かけました。