dポイントプレゼントキャンペーン実施中!

(現在 TODAY() から見て、) 先月の年と月をそれぞれ関数で表すにはどうすればいいでしょうか。最終的には、2006-6という形にしたいのです。

もちろん、単純に1を引けば、2007年1月の前の月で問題が出ますし、30 (or 31) 日を引けば、2007年3月1日の前の月が2007年1月になってしまったりします。お願いします。

A 回答 (10件)

#01です。

無理矢理でいいなら

=TEXT(DATE(YEAR(TODAY()),MONTH(TODAY()),1)-1,"yyyy") & "-" & TEXT(DATE(YEAR(TODAY()),MONTH(TODAY()),1)-1,"m")
    • good
    • 1
この回答へのお礼

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

お礼日時:2006/07/11 09:12

>単純に1を引けば、2007年1月の前の月で問題が出ますし、30 (or 31) 日を引けば、2007年3月1日の前の月が2007年1月になってしまったりします。


そうですかね。
2007/7/12007/6/12007-6
2007/7/212007/6/12007-6
2007/12/232007/11/12007-11
2007/1/212006/12/12006-12
2007/3/12007/2/12007-2
2007/2/282007/1/12007-1
2007/4/12007/3/12007-3
B列は
=DATE(YEAR(A1),MONTH(A1)-1,1)
C列は
=TEXT(B1,"yyyy-m")
もちろんB列とC列の関数式を組み合わせることはできます。
>書式ではなく、データを2006-6という形にはできないものでしょうか
値を自分自身のセルに複写すればどうでしょう。
それ以上ならさっき別の質問にもあったが、VBAを使うことになりそう。
    • good
    • 0
この回答へのお礼

いろいろと勉強になりました。
ありがとうございました。(^^)

お礼日時:2006/07/11 09:44

=TODAY()-DAY(TODAY())


書式「yyyy-m」
    • good
    • 4
この回答へのお礼

簡単な式で表現できますね。
ありがとうございました。(^^)

お礼日時:2006/07/11 09:39

today()がA1に有るとして、


=TEXT(EDATE(A1,-1),"yyyy-m")
で、OK
    • good
    • 4
この回答へのお礼

EDATEなんて関数、知りませんでした。
勉強になりました。
ありがとうございました。

お礼日時:2006/07/11 09:38

zap35 さんの答えを応用すればどうでしょう?



1.Year()関数を使用して一月前の年を出す。
2.Month()関数を使用して一月前の月を出す。
3.それを「=Year(一月前を求める処理)&"-"&Month(一月前を求める処理)」の様にして引っ付ける。

これで文字列とマッチングしたら大丈夫だと思われます。
# ありゃ、入れ違いになった。
    • good
    • 0
この回答へのお礼

これでできました。
ありがとうございました。(^^)

お礼日時:2006/07/11 09:38

=today()のセルをa1として


=date(year(a1),month(a1)-1,1)で
このセルの書式をユーザー定義でyyyy"-"mと指定して下さい
これで如何でしょうか?
    • good
    • 0
この回答へのお礼

実にシンプルにできますね。
ありがとうございました。(^^)

お礼日時:2006/07/11 09:37

次の方法は如何でしょうか。


=TEXT(DATE(TODAY(),MONTH(TODAY(),-1),"yyyy-m")
    • good
    • 1
この回答へのお礼

残念ながら、エラーが出てしまいました。
でもありがとうございました。

お礼日時:2006/07/11 09:13

=TEXT(TODAY()-DAY(TODAY()),"yyyy-m")


では如何でしょうか?
=TODAY()-DAY(TODAY())
で前月の末日になります。上記はそれを書式付文字列として変換するものです。
    • good
    • 2
この回答へのお礼

こういう発想もあるのですね。ありがとうございました。

お礼日時:2006/07/11 09:09

ヘルプから「日付を加算する 」を確認ください。


それを参考に先月を求めます。

その後書式設定にて「2006-6」のような形へ変更すればよろしいのではないでしょうか。
    • good
    • 0
この回答へのお礼

ヘルプにも詳しく書かれていますね。ありがとうございました。

お礼日時:2006/07/11 09:05

=DATE(YEAR(TODAY()),MONTH(TODAY()),1)-1


(当月の一日から1を引くと、前月の末尾)

この書式を yyyy-m にするととりあえずできます
 
    • good
    • 0
この回答へのお礼

ありがとうございます。
書式ではなく、データを2006-6という形にはできないものでしょうか。
このデータを他のデータとMATCHさせたいのですが、書式だけそうなっていてもMATCHしてくれません。。。

お礼日時:2006/07/10 16:46

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

このQ&Aを見た人はこんなQ&Aも見ています