- ベストアンサー
エクセル 日付をずらして表示させたい
日付が「21.7.15~21.8.14」と表示されているものを 別セルに「21.7」と表示させたいのですが可能でしょうか? (「21.8.20」→「21.8」、「21.9.5」→「21.8」と表示させたい。)
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
A1 に日付があるとして、 =IF(DAY(A1)>=15,A1,DATE(YEAR(A1),MONTH(A1)-1,1)) として、書式を ge.m でもいけそうです。
その他の回答 (5)
- fujillin
- ベストアンサー率61% (1594/2576)
データは日付型になっていて、セルの書式設定でH21.8.5と表示されるようになっていると解釈しました。 日付型であれば、そのまま加減算が可能ですので、ご質問の場合は対象日から14日前の月を表示させればよいことになります。 (説明のため現状 H21.8.5のセルがA1だとします) 表示させたいセルに、 =A1-14 の式を入れると、そのセルの書式設定が数値表示の場合は「40016」などと、日付型の書式の場合は「H21.7.22」などのように表示されるはずです。 日にちの表示は不要なので、表示書式を「 ge.m 」のようにしてあげれば、ご希望の「H21.7」となります。
- cistronezk
- ベストアンサー率38% (120/309)
質問が簡潔すぎて、なかなか意味が分かりませんでしたが、「当月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
お礼
解りづらい説明で申し訳ありませんでした。 トライしてみましたが、マクロ初心者なので成功には至りませんでしたが、 これを機に少しずつ勉強します。アドバイスありがとうございました。
- cistronezk
- ベストアンサー率38% (120/309)
「日付」と書いていますが、単に「21.7.15」と文字として入力したものですね? また、「21.7.15~21.8.14」は、一つのセルに書かれていて、これを「21.7~21.8」としたいということでしょうか?
補足
説明不足で申し訳ありません。(Hが抜けて紛らわしくなりました) 現在、セルに「8/5」と入力すると、 「H21.8.5」と表示されるようにセルの書式設定しています。 締め日の関係上、15日から翌14日までを1ヶ月とし、 別のセルに「H21.7」と表示させたいのですが可能でしょうか。
- KURUMITO
- ベストアンサー率42% (1835/4283)
ご質問の意味がよく分かりません。 どうして21.8.20は21.8で21.9.5は21.8になるのでしょうか? 何かルールがあるのですか?
- KURUMITO
- ベストアンサー率42% (1835/4283)
A1セルから下方にデータがあるとして、B1セルに次の式を入力し下方にオートフィルドラッグします。 =IF(MID(A1,6,1)=".",LEFT(A1,5),LEFT(A1,4))
お礼
アドバイスありがとうございます。 私の理想通りになりました。