![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.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](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/7/142736_61c510e8d0b4e/M.png)
No.3
- 回答日時:
安直な方法
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のコードはサンプル的なものですので其方で調整出来そうに無い場合は
手を出さない方が無難かもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/01/10 09:15
- Excel(エクセル) エクセルについて教えてください。 1 2023/03/03 08:38
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/10 08:51
- Excel(エクセル) Excel2019、2021の日付、曜日の表示について 2 2022/11/29 15:01
- Excel(エクセル) エクセルの数式で教えてください。 3 2023/04/17 09:25
- Excel(エクセル) エクセルでセルの日付を和暦表示設定にしたらおかしなことに? 3 2022/05/25 11:47
- Excel(エクセル) エクセルの数式で教えてください。 2 2022/12/23 14:57
- Excel(エクセル) Excelで【1-1】【1-2】【1-3】という連番の文字の入力が上手く出来ません。 5 2022/11/16 13:24
- Excel(エクセル) Excelで2つのセルにある日付を参照させ期間として1つのセルに表示したいです。 例 c9セルに開始 3 2023/04/06 12:16
- Excel(エクセル) エクセルの数式で教えてください。 3 2022/12/22 17:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで半年後の日付を計算したい
-
31:30:00が1900/1/1 7:30:0
-
エクセル関数で日付かどうかの...
-
エクセルでENTERを押すと数式が...
-
入力後に日付順になるように自...
-
エクセル 当番表の作り方 エク...
-
日付だけを変更して印刷(Excel)
-
◆ EXCEL自動入力日付を自動で...
-
エクセルのセルにカレンダーを...
-
日付を入力したセルをファイル...
-
EXCEL 日付の入力形式
-
海外の日付を表示させたい
-
EXCELで直近の日付を抽出する関数
-
EXCELで同時アクセス数をカウン...
-
Excelでセルの書式が勝手に日付...
-
日付入力→指定のセルの色を塗り...
-
ワード差込について
-
Excelで、年だけの「西暦」から...
-
エクセルのデータから「/」を抜...
-
エクセルの項目軸に
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
31:30:00が1900/1/1 7:30:0
-
入力後に日付順になるように自...
-
日付だけを変更して印刷(Excel)
-
Excelで半年後の日付を計算したい
-
エクセルでENTERを押すと数式が...
-
エクセルで数字列の間に『/』を...
-
エクセルのセルにカレンダーを...
-
エクセル関数で日付かどうかの...
-
ファイルのオープン時に今日の...
-
Excelで、年だけの「西暦」から...
-
エクセル 当番表の作り方 エク...
-
日付入力→指定のセルの色を塗り...
-
Excelに入力した個々の日付の数...
-
Excelで8/26等の日付を全てその...
-
日付を入力したセルをファイル...
-
WORDで翌日や翌々日の日付を表...
-
EXCELで直近の日付を抽出する関数
-
エクセルで月日を入力すると190...
-
☆Excelエクセルで入力した日の...
-
◆ EXCEL自動入力日付を自動で...
おすすめ情報