• ベストアンサー

Excel : 先月の年と月

(現在 TODAY() から見て、) 先月の年と月をそれぞれ関数で表すにはどうすればいいでしょうか。最終的には、2006-6という形にしたいのです。 もちろん、単純に1を引けば、2007年1月の前の月で問題が出ますし、30 (or 31) 日を引けば、2007年3月1日の前の月が2007年1月になってしまったりします。お願いします。

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

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

#01です。無理矢理でいいなら =TEXT(DATE(YEAR(TODAY()),MONTH(TODAY()),1)-1,"yyyy") & "-" & TEXT(DATE(YEAR(TODAY()),MONTH(TODAY()),1)-1,"m")

buzhidao
質問者

お礼

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

その他の回答 (9)

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

>単純に1を引けば、2007年1月の前の月で問題が出ますし、30 (or 31) 日を引けば、2007年3月1日の前の月が2007年1月になってしまったりします。 そうですかね。 2007/7/1 2007/6/1 2007-6 2007/7/21 2007/6/1 2007-6 2007/12/23 2007/11/1 2007-11 2007/1/21 2006/12/1 2006-12 2007/3/1 2007/2/1 2007-2 2007/2/28 2007/1/1 2007-1 2007/4/1 2007/3/1 2007-3 B列は =DATE(YEAR(A1),MONTH(A1)-1,1) C列は =TEXT(B1,"yyyy-m") もちろんB列とC列の関数式を組み合わせることはできます。 >書式ではなく、データを2006-6という形にはできないものでしょうか 値を自分自身のセルに複写すればどうでしょう。 それ以上ならさっき別の質問にもあったが、VBAを使うことになりそう。

buzhidao
質問者

お礼

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

  • NCU
  • ベストアンサー率10% (32/318)
回答No.9

=TODAY()-DAY(TODAY()) 書式「yyyy-m」

buzhidao
質問者

お礼

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

  • S-Fuji
  • ベストアンサー率36% (592/1624)
回答No.8

today()がA1に有るとして、 =TEXT(EDATE(A1,-1),"yyyy-m") で、OK

buzhidao
質問者

お礼

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

  • salf
  • ベストアンサー率42% (27/64)
回答No.7

zap35 さんの答えを応用すればどうでしょう? 1.Year()関数を使用して一月前の年を出す。 2.Month()関数を使用して一月前の月を出す。 3.それを「=Year(一月前を求める処理)&"-"&Month(一月前を求める処理)」の様にして引っ付ける。 これで文字列とマッチングしたら大丈夫だと思われます。 # ありゃ、入れ違いになった。

buzhidao
質問者

お礼

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

回答No.6

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

buzhidao
質問者

お礼

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

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.5

次の方法は如何でしょうか。 =TEXT(DATE(TODAY(),MONTH(TODAY(),-1),"yyyy-m")

buzhidao
質問者

お礼

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

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

=TEXT(TODAY()-DAY(TODAY()),"yyyy-m") では如何でしょうか? =TODAY()-DAY(TODAY()) で前月の末日になります。上記はそれを書式付文字列として変換するものです。

buzhidao
質問者

お礼

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

  • salf
  • ベストアンサー率42% (27/64)
回答No.2

ヘルプから「日付を加算する 」を確認ください。 それを参考に先月を求めます。 その後書式設定にて「2006-6」のような形へ変更すればよろしいのではないでしょうか。

buzhidao
質問者

お礼

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

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

=DATE(YEAR(TODAY()),MONTH(TODAY()),1)-1 (当月の一日から1を引くと、前月の末尾) この書式を yyyy-m にするととりあえずできます  

buzhidao
質問者

お礼

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

関連するQ&A