• ベストアンサー

数字の集計

   A   B   C 1    1    54 2    0    30 3    1    23 4    2    1 例えばこのような表で、B列の数字はひと月たったらプラス1されようにしてA列には、B列の数字が60になったらプラス1されるようにしたいのです。又、B列の数字は60になったら1からカウントされるようにしたいのですが、教えてください。お願いします。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

この数値の規則性が分からないので、「こんな方法もある」程度に考えて下さい まずB1の数値が今月は54、来月が55になればよいなら、B1には =YEAR(TODAY()) * 12 + MONTH(TODAY()) - 24025 としてみて下さい。同様にB2は =YEAR(TODAY()) * 12 + MONTH(TODAY()) - 24049 になります。 これは2006(年)*12 + 7(月)が24079になるので、その数字から適当な数字を引いて54と30となるようにしたものです。 次にA1の数字を質問のようにかえるためには、A1に =1 + INT( B1 / 60 ) のようにすれば、とりあえずはできますが、A1の数値がどのような意味合いを持つか分からないので、汎用的に成り立つかどうか不明です。 いずれにせよ#02さんも言われるようにエクセルの式は自分の「セルの数値を加工して書き戻す」のはできませんので、他のセルの数値から算出することになります。

その他の回答 (3)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.4

#03です。 >B列の数字は60になったら1からカウントされるようにしたいのですが を忘れていました B1セルは =MOD(YEAR(TODAY()) * 12 + MONTH(TODAY()) - 24026 , 60 ) +1 になります。そしてA1セルは =1 + INT((YEAR(TODAY()) * 12 + MONTH(TODAY()) - 24025) / 60 ) です

jo-ster
質問者

補足

返事遅れましてすみません。 一応、C列にはTODAY()関数で月のみ表示するようにしています。7月4日なら7だけ表示。 それで、B列は現在まで何ヶ月経ったかの数字です。 つまり60ヶ月たつとA列が1増える感じにいしたいのです。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

A,BCなど列番号らしき記述があるので、エクセルの質問でしょう。 質問者は文章で表現できるから、関数か何かで表現(解決)できると思ったのでしょうが、全くレベルの違う対処が必要です。 (1)一月たったらといいますが、どこから判断しますか。 (2)プラス1されて60に達したらプラスする。ということは その際を捉えて+1しないとならないが、直前の値を覚えていないと ダメなのだが、これが同一セルでは難しいし、直前値列を作っても、変えた後の値を直前値セルにセットする運用が難しい。 結局プログラムのお世話にならないとおもうがその経験が質問者にあると思えないので難しいでしょう。 関数は自身のセルの現在の値を他の演算結果に置き換えていくのは不可能という原理に注目してください。

  • redowl
  • ベストアンサー率43% (2140/4926)
回答No.1

スタートとなる 年月日のデータは どのセル(列)に 入っていますか? >ひと月たったら    A   B   C 1    1    54  日付 2    0    30  日付 3    1    23   日付 となっているのであれば、 日付関数を使用しますし・・・・ また、 A列、B列に 数値を入力しているなら、別列(D, E以降)に、数式を組み入れますが・・・

jo-ster
質問者

補足

返事遅れましてすみません。 一応、C列にはTODAY()関数で月のみ表示するようにしています。7月4日なら7だけ表示。 それで、B列は現在まで何ヶ月経ったかの数字です。 つまり、60ヶ月経つとA列にプラス1したいのです。