電子書籍の厳選無料作品が豊富!

どなたかお力を貸して下さい。
Excel2013利用です。
日付の入力は現在 
今年2021年1月1日を表示したい時は→1/1で表示
来年2022年1月1日を表示したい時は→2022/1/1で表示
になっております。
例えば
2021年1月1日は既に過ぎているので1/1を入力した際に
2022年1月1日としてセルに表示する
今年を基準ではなく今日を基準で1年間の日付入力が
可能にする方法はありますか?
ご教示宜しくお願いします。

A 回答 (4件)

EXCELの仕様では年号を省略して日付を入力すると、年号はOS(Windows)のシステム日付の属する年として処理されると記憶しております。



従って、2021年12月31日の23:50にEXCELを起動し、直後に「1/1」と入力すると「2021/1/1」と認識され、15分後の2022年1月1日0:05になってから「1/1」と入力すると「2022/1/1」と認識されると思います。
これと同様に、「今日」を基準に変換をかける場合、上記の現場で「2021/12/31」を「12/31」と入力して作業していたとすると、同じように「12/31」と入力しているのに、0:00をまたぐと作業の途中で気づかないうちに「2022/12/31」と入力していたことになるという事態が起こります。

これは便利なことなのでしょうか?私は、逆に混乱のもとだと思います。
「できるだけ簡単に入力したい」というお気持ちはわかりますが、日付は常に年号からフル入力する癖をつけておいた方がメリットがあると思います。

なお、ご質問者の日付入力の目的は判りませんが、「ドロップダウンリストから選択する」という方法も検討する価値があると思います。

ご質問者は、
>今日を基準で1年間の日付入力が可能にする方法・・・
とおっしゃっていますが、本当に1年間のフルの日付が必要なのでしょうか?
私の経験での判断で恐縮ですが、実務での日付の取扱いの殆どは、今日を中心とした前後1カ月程度の範囲の日付入力だと思います。

添付画像をご覧ください。sheet1のA列に日付を入力するとして、A列の書式設定は予め「日付」にしておきます。A2セルを例にして、「入力規則」でリストを設定し、リスト範囲をsheet2のA1セル~A63セルにしています。sheet2のA1に、

=TODAY()+ROW(A1)-32

という数式を記述して、下方向へA63セルまでコピーしています。
こうすることで、ドロップダウンリストから今日を中心に前後1カ月の日付が選択可能になります。
今日以降の日付にしたいのであれば、sheet2のA1に

=TODAY()+ROW(A1)-1

という数式を記述し、下方向へコピーすればよいことになります。ただし、前述のとおり、深夜0:00をまたぐと、今まで選択できていた「今日」の日付は「昨日」の日付になってしまい、選択不能になってしまいます。

あるいは、毎月末日を一年分入力できるようにしたいのであれば、sheet2のA1に

=EOMONTH(today(),ROW(A1)-2)

という数式を記述して、下方向へコピーすれば、先月末日以降の日付で、毎月末日を選択できるようになります。
日付の範囲はお好みで調整可能です。業務の実情にあわせて数式を工夫すれば、活用できるのではないかと思います。
「Excelの日付表示について」の回答画像4
    • good
    • 0

安直な方法


OSの時間を都合の良い時間にずらす。
『Windows10で日付や時刻を変更する方法』
https://www.fmworld.net/cs/azbyclub/qanavi/jsp/q …

もちっとマシ?な方法
VBAでチェックして自動的に
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo errH
  If Target.Cells.Count = 1 Then 'ひとつのセルの変更時に限定
      If IsDate(Target.Value) Then '時刻型と判断出来たら
        If Format(Target.Value, "mmdd") < Format(Date, "mmdd") Then '現在日よりも過去だったら
          Application.EnableEvents = False 'Changeイベントが連鎖発生しないように
          Target.Value = DateAdd("yyyy", 1, Target.Value) '1年足す
          Application.EnableEvents = True 'Changeイベントを元に戻す
        End If
      End If
  End If
Exit Sub
errH:
Application.EnableEvents = True
Debug.Print Err.Number, Err.Description
MsgBox "エラーが発生しました" & Err.Number & vbNewLine & Err.Description
End Sub

※投稿用にタブインデントを全角スペースに変更しています。
実行には差し支えないと思います。
※VBAのコードはサンプル的なものですので其方で調整出来そうに無い場合は
手を出さない方が無難かもしれません。
    • good
    • 1

=ifs(year(today())=2021,"1/1",year(today())=2022,"2022/1/1")

    • good
    • 0

22年に直すしかありません。

来年はあとわずかです。
    • good
    • 0

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