プロが教える店舗&オフィスのセキュリティ対策術

エクセル2013を使っています。
セルAに日付の数字「2016810」と入力したら「2016/8/10」と表示させたいのですが
「7425/11/2」と表示されてしまいます。
セルAには「セルの書式設定」の「表示形式」で、「分類」を”日付”、「種類」を"2016/3/15"
と設定しています。
どうしたら「2016/8/10」と表示できるのでしょうか?

A 回答 (7件)

エクセルの中で日付として扱っているのは、シリアル値と言う数値です。


2016年8月10日なら「42592」という数字になります。
1900年1月1日 0時00分を1として、そこから24時間で1ずつ増えている値です。

なので、日付としたセルで「2016810」と入力すると「7421/11/1」になります。

セルの表示形式を日付以外にしないと「2016/8/16」という表記にはなりません。
それにしても、すげー面倒な処理をしないと無理。(月の桁合わせが煩雑なんですよ)
素直に日付を入力することを勧めます。
テンキーを使っての入力ならスラッシュ(/)の入力も簡単ですよ。

・・・妥協案・・・
「2016810」
ではなく
「20160810」
と入力し
セルの表示形式を「ユーザー定義」にし、
「0000"/"00"/"00」を設定する。
年は4桁、月と日は2桁で入力すること。
ただしこれはExcel内部では日付としては扱われないので、このまま日付として計算させようとしない事!
    • good
    • 0
この回答へのお礼

詳しく説明してくださり、ありがとうございます。
上記の方法と悩んだのですが、条件付き書式で日付に関する設定をしているので
「2016/8/10」とそのまま入力することにしました。
シリアル値についても勉強になりました。
ありがとうございます。

お礼日時:2016/08/31 18:31

とりあえずVBAで作りました。

対象のシートモジュールに書き込んでください。(8桁の数字で「20000101」~「99991231」で日付に変更出来る物を日付に変更します)
---------------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

Dim 日時 As String
If Target.Column <> 1 Then Exit Sub
If IsNumeric(Target.Value) Then
If Target.Value > 20000101 Then
If Target.Value < 99991231 Then
日時 = Left(Target.Value, 4) & "/" & Mid(Target.Value, 5, 2) & "/" & Right(Target.Value, 2)
If IsDate(日時) Then
Target.Value = CDate(日時)
End If
End If
End If
End If
End Sub
---------------------------------------------------------------------------
とりあえずA列以外は反応しないようにしました。列を変えたい場合などは「If Target.Column <> 1 Then Exit Sub」の部分を変更などしてください。表示形式はお好きなようにしてください。
    • good
    • 0
この回答へのお礼

ありがとございます。
やっぱり全然読めません(笑)
まだまだ勉強不足です・・。
もう少しVBAを学んでから、使わせて頂きますm(__)m
本当にありがとうございます。

お礼日時:2016/08/31 18:46

8/10でも、2016/8/10と出せますけど。

    • good
    • 0
この回答へのお礼

書類の提出日一覧の表を作っていまして、年が今年とは限らなかったので、
「2016810」という形式の記述で「2016/8/10」と表示出来る方法を探していました。
説明不足ですみません。
ありがとうございます。

お礼日時:2016/08/31 17:48

VBAで出来るかも?と思いましたが出来ません。


なぜならば「2016111」これは「2016/11/1」「2016/1/11」のどちらだか判りませんよね。
せめて「20160810」のように8桁で入力されているならば可能性はあります。それでよければVBAを使えば可能です。
    • good
    • 0
この回答へのお礼

8桁でも大丈夫です。
元々、8桁で入力しようとしていたのですが、上手くいかなかったので
今の記述に変えたので・・。
VBAでも出来るのですね!
最近勉強を始めたばかりだったので、勉強不足でした。
コードを調べてみます。
ありがとうございます。

お礼日時:2016/08/31 17:42

セルに直接「2016/8/10」と入力すれば。


「2016810」と、そんなに手間は変わりませんよね。
多分「7425/11/2」はシリアル値だと思いますよ。
    • good
    • 1
この回答へのお礼

書類の提出日の一覧の表を作成していまして、日付を入力する箇所が多いので
「/」を入力する手間が省ける方法があればと思いまして。
ありがとうございました。

お礼日時:2016/08/31 17:29

入力「2016810」→表示「7425/11/2」は、


入力がシリアル値に解釈された結果です。

数字の連続を年月日に分離する機能は無いので、"/"を入れてください。
表示形式は入力形式とはなりません。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2016/08/31 18:27

入力時に


「2016810」と入力されてますよね?
これを
「2016/08/10」と入力すれば解決します。
「2016/8/10」でもOKです
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2016/08/31 17:22

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