• ベストアンサー

エクセル 日付をずらして表示させたい

日付が「21.7.15~21.8.14」と表示されているものを 別セルに「21.7」と表示させたいのですが可能でしょうか? (「21.8.20」→「21.8」、「21.9.5」→「21.8」と表示させたい。)

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

  • ベストアンサー
  • BookerL
  • ベストアンサー率52% (599/1132)
回答No.5

A1 に日付があるとして、 =IF(DAY(A1)>=15,A1,DATE(YEAR(A1),MONTH(A1)-1,1)) として、書式を ge.m でもいけそうです。

mohjoo
質問者

お礼

アドバイスありがとうございます。 私の理想通りになりました。

その他の回答 (5)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.6

データは日付型になっていて、セルの書式設定でH21.8.5と表示されるようになっていると解釈しました。 日付型であれば、そのまま加減算が可能ですので、ご質問の場合は対象日から14日前の月を表示させればよいことになります。 (説明のため現状 H21.8.5のセルがA1だとします) 表示させたいセルに、  =A1-14 の式を入れると、そのセルの書式設定が数値表示の場合は「40016」などと、日付型の書式の場合は「H21.7.22」などのように表示されるはずです。 日にちの表示は不要なので、表示書式を「 ge.m 」のようにしてあげれば、ご希望の「H21.7」となります。

回答No.4

質問が簡潔すぎて、なかなか意味が分かりませんでしたが、「当月15日ー翌月14日までを当月とみなしたい」ということだったのですね。 Excel関数でやるとかなり煩雑になりそうです。間違いがあっても直せないでしょう。なのでマクロ関数の方法を示します。 Function GetMyterm(ByVal datestr As String) As String Dim gmd As Variant gmd = Split(datestr, ".") If UBound(gmd) < 1 Then Exit Function If CInt(gmd(2)) < 15 Then gmd(1) = CInt(gmd(1)) - 1 GetMyterm = gmd(0) & "." & gmd(1) End Function

mohjoo
質問者

お礼

解りづらい説明で申し訳ありませんでした。 トライしてみましたが、マクロ初心者なので成功には至りませんでしたが、 これを機に少しずつ勉強します。アドバイスありがとうございました。

回答No.3

「日付」と書いていますが、単に「21.7.15」と文字として入力したものですね? また、「21.7.15~21.8.14」は、一つのセルに書かれていて、これを「21.7~21.8」としたいということでしょうか?

mohjoo
質問者

補足

説明不足で申し訳ありません。(Hが抜けて紛らわしくなりました) 現在、セルに「8/5」と入力すると、 「H21.8.5」と表示されるようにセルの書式設定しています。 締め日の関係上、15日から翌14日までを1ヶ月とし、 別のセルに「H21.7」と表示させたいのですが可能でしょうか。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

ご質問の意味がよく分かりません。 どうして21.8.20は21.8で21.9.5は21.8になるのでしょうか? 何かルールがあるのですか?

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

A1セルから下方にデータがあるとして、B1セルに次の式を入力し下方にオートフィルドラッグします。 =IF(MID(A1,6,1)=".",LEFT(A1,5),LEFT(A1,4))

関連するQ&A