• ベストアンサー

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/17068)
回答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% (7418/18948)
回答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

  • エクセル自動で先月分の途中までの総額の出し方

    エクセル2010を使ってます。 店舗の売り上げ管理をしているものです。 例えば今日が5月27日だとして先月分の4月1日から4月27日までの売り上げの総額と5月1日から今日(5月27日)までの売り上げを比べたいのですが、4月のシートには4月1日から30日までのデータが入力されています。 わからないのが4月の末日までの総額じゃなくて途中の日付までの総額の出し方を知りたいです。 Aの列が日付の列、Bの列が売り上げの列だとします。 5月分は明日以降の分のデータが入力されていないので単純にSUMで出せばわかるのですが、 4月は途中の総額なのでわかりません。 今日の日付はTODAY関数を使って出して、セルの書式設定で日付だけを表示させて何かできないでしょうか? ちなみに4月と5月は同じブックですがシートは別です。 教えてください。

  • エクセルで、日付「先月初め」と「先月終わり」を自動表示させたい

    エクセル2000で任意のセルに 「先月初め」と「先月終わり」を自動入力するにはどうしたら良いですか? 例えば、今日2月1日なら「平成17年1月1日」と「平成17年1月31日」を表示さえたいのですが・・・・ そのまま貼り付けれる式を記入頂けたら助かります。

  • 先月が6月19日でした

    先月が6月19日でした 先々月が5月13日でした 7月1日に性行為しました 最初から最後まで ゴムをつけてしました 排卵日わ12日で 予定日わ26日でした でもなかなか生理がきません なので勇気だして 8月13日に妊娠検査薬を しました そしたら妊娠してませんでしたなのに生理きません 妊娠なんでしょうか?

  • エクセルの月表示について

    エクセルで月だけを表示させたいです。 たとえば 開いた日がtodayで自動で入るとしてそのセルは月のみ表示させます。 その次のセルに翌月、翌々月と1年先まで自動で表示させたいのです。 何かいい関数はありますか?

  • エクセル日付関数について

    TODAY関数よりもとめた月日からその月の土・日・祭を 除いた月の初日(平日)をもとめたいのです。 (例) 16年8月1日から31日までファイルを開いた場合 平成16年8月の場合は、平成16年8月2日となるよう 宜しくお願いします。

  • エクセルの月の設定ですが…

    TODAY関数を使って月の設定をしたまでは良かったんですが…。 よく考えたら前月を表示するべき箇所でした。 どこかで”-1”を設定するんでしょうがうまく設定できません。 どうしたらTODAY関数を使って前月表示できるでしょうか?よろしくお願いします。

  • EXCEL  「200×年××月分」の関数

    エクセルで毎月作成している請求書に 「200×年××月分」という部分があり それを関数を使って表示させたいのですが・・・ =TODAY() を使ったあと、セルの書式>日付>種類>”××年×月”を選択し「200×年××月」まで完成させました。 が、最後の「分」の文字をどうやって数式に組み込むのか解りません。 「200×年××月分」と表示させる数式を教えてください。

  • エクセル 関数のあわせ技 

    お世話になります。 最終目的は年齢表示です。 生年月日の元データは他システムからCSVカンマ形式で出力されたものをエクセルで表示しているため、問題箇所があります。 ・年月日のいずれかが一桁の場合、「空白」+「半角数字」+「年月日」となっています。   例えば、昭和20年5月1日   の場合は         昭和20年 5月 1日 となっています。(数字は半角です) ・元データのほとんどはテキスト形式なのですが、一部日付データ形式があります。   セル表示は「元号+年月日形式」ですが、数式バーは西暦表示です   例えば、昭和24年12月11日 とセル上は表示されますが、         1949/12/11   と数式バーでは表示されます。 まず、生年月日データに混じっている空白を消すため、SUBSTITUTE関数を使って別の列に書き出しました。 =IF($J3="","空白行",SUBSTITUTE(AM3," ","")) これで、昭和20年 5月 1日は昭和20年5月1日になりました。 その後、DATEDIF関数で年齢を表示させました。 =IF(ISERROR(DATEDIF(AJ3,today(),"Y"))=TRUE,"",DATEDIF(AJ3,today(),"Y")) ただし、日付データの 1949/12/11 のセルは、18243 になってしまいました。 これでも年齢計算はできるのですが、生年月日確認用に使いますし、後で印刷時に利用するデータですので、「テキスト形式」として、昭和24年12月11日 と表示させたいのです。 上記の関数式に別の関数を組み合わせればいいのだろうと思いましたが、うまくいきません。 どうか、よろしくご教示ください。  

  • 対象月が何日まであるか調べたい。

    C#環境です。 たとえば、2000年2月の月末日(最終日)が何日なのかを 調べたいと思っているのですが、そのような関数などが ありましたら教えていただけないでしょうか? 現在、コンストで1月は31日が最終日…と設定していますが、 2月に関してはうるう年の絡みもあるので、入力年月から 最終日が調べられたらな…と思っています。

  • Excelの関数について。

    いつもお世話になっております。 Excelの関数について教えて下さい。 実は、 "この資料は平成17年11月1日現在のものです。" という文を作りたく、日付の所は、「TODAY」を 使用したいと思っています。 これを一つのセルの中だけで作りたいのですが、やりかたが分かりません。 一応過去の質問を見てみたのですが、よく分かりませんでした。 皆様お忙しいと思いますが、教えて下さい。 宜しくお願いします。

専門家に質問してみよう