[[20041117220559]] 『1月の先月表示?』(kira) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『1月の先月表示?』(kira)

データ集計で先月分・今月分の集計をする際、Month関数を使用。
今月:Month(now())
先月:Month(now())-1
としてセル指定で数値にしてコントロールしています。
問い:今月が1月の場合、先月は数値として"0"になって12月(先月)を表示しないのでは?
   今月が1月でも先月(12月)表示させる良い方法はありませんか?


 これでどうでしょうか。
 =MONTH(DATE(YEAR(NOW()),MONTH(NOW())-1,DAY(1)))
 DAY(1)のDAYは必要ないですね。
 =MONTH(DATE(YEAR(NOW()),MONTH(NOW())-1,1))

 (川野鮎太郎)


 =MONTH(TODAY()-DAY(NOW()))とか、=MOD(MONTH(NOW())-2,12)+1などもどうでしょう?   (LOOKUP)


 >=MONTH(TODAY()-DAY(NOW()))
 なるほど。必ず月末日を出す方法ですね。_〆\(..;) メモメモ
 両方NOW()にしていないのは、0:00近辺で誤差が出るかもしれないからでしょうか。
 誤差は出なそうですね。 DAY(NOW())だから、TODAY()と考えておられるんでしょうね。
 単位を合わせるって感じでしょうか。
 (川野鮎太郎)


 >両方NOW()にしていないのは、0:00近辺で誤差が出るかもしれないからでしょうか。
 まったく意味がありません。私が、単に臆病なだけです。             (LOOKUP)


確認できました。
ありがとうございました。
(kira)


再度、質問です。
回答頂きました数式はセルに直接セットするには問題ありませんでしたが
VBAで下記のようにセットすると、YEARの部分でエラーになります。
どこを訂正すれば良いのですか?

ActiveSheet.Range("A6").Value = Month(Now()) - 1 で

ActiveSheet.Range("A6").Value = MONTH(DATE(YEAR(NOW()),MONTH(NOW())-1,1)) に
するとエラーになります。


 マクロなら関数が違います。
 ActiveSheet.Range("A6").Value = Month(DateSerial(Year(Now()), Month(Now()) - 1, 1))

 LOOKUPさんの式を使うならこうでしょうか。
 ActiveSheet.Range("A6").Value = Month(Date - Day(Now()))

 (川野鮎太郎)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.