日付入力で、スラッシュあり・なしのいずれにも対応できる設定について質問します。
Excelで日付を入力する欄に、例)「2010/8/31」と表示させたいのですが、入力する際の2つのパターンに対応させる方法がわかりません。
1つめは、「8/31または2010/8/31」とスラッシュを入れて入力
2つめは、「20100831」と数字だけを続けて入力
どちらか1つなら、セルの書式設定で対応できるのですが、そうすると、もう一方がエラーになります。
いずれの場合にも対応できるようにしたいのですが、ご存じの方がいらしたらぜひ教えてください。
No.2ベストアンサー
- 回答日時:
一つ目は日付の様に見えるしExcelは日付として扱うけど、二つ目
は誰が見ても二千十万八百三十一という数値であって日付じゃない
でしょう。
見た目だけ誤摩化すだけでデータとしては使い物にならないことを
受け入れるなら、ユーザー書式の条件式を使って巨大すぎる数値の
場合に書式を変える手があります。
[>2000000]0000!/00!/00; yyyy/mm/dd
こんな感じ。でもこれ、スラッシュ区切りで年を省略した日付は入
力出来ません。スラッシュが一つだと分数扱いになります。ハイフ
ン区切りで「9-1」のように入力すれば大丈夫なんだけど。
で、こういうバラバラな入力の仕方が出来るような工夫をすると、
見た目が同じなのに全く違う数値が入力されてるわけで、本来絶対
に許容すべきではありません。必ず区切りを入れて日付として入力
するよう強制するべきです。
grumpy_the_dwarfさん
ご回答ありがとうございます。
ユーザー書式の条件式を使う方法もよいと思ったのですが、スラッシュが一つの場合もあると思うので今回の用途では逆に混乱してしまいそうなので使わないでおきます。
が、知識としていつか役に立ちそうなのでしっかり覚えておこうと思います。
おっしゃるとおり、安易に許容すべきではないと思いますので、日付の入力方法を統一してもらうようにコメントを入れるなりして対応したいと思います。
ありがとうございました。
No.4
- 回答日時:
どのような目的で、日付と「20100831」のような数値を、日付として「表示」したいのでしょうか?
単に、2つの形式で入力されたデータを統一したいなら、「20100831」と入力されているデータを日付シリアル値に一括変換して、実際に日付データとして統一するのがお勧めの操作です。
日付の列を選択して、データ「区切り位置」で「次へ」「次へ」で最後に列のデータ形式を「日付」にチェックを入れ(YMDになっていることを確認して)「完了」してください。
MackyNo1さん
ご回答ありがとうございます。
目的としましては、社内の申請書類のフォーマット(Excel)の改訂を行っており、『「20100831」での入力が普通でしょ!直して!』という要望が出たためです。
これまで日付欄はスラッシュ入りで入力してもらうようになっていて、それが普通だと思っていたのですが、そうではない人もいるんだな…ということで、あまり難しい方法を使わずにできるのであれば両方対応できるといいなと思った次第です。
入力するのは各社員で、私の手元には印刷された状態で提出されてくるので、私が何か手を加えることはできず、単に見た目の問題なのです。
なので、今回皆さんから教えていただいたご回答を活用すると、対応できそうなのですが、上司に渋られてしまったので、そこまではしないことになりましたが…。
MackyNo1さんに教えていただいた方法も、別の機会で使えそうなのでとても勉強になりました。
ありがとうございました。
No.3
- 回答日時:
入力するセルを文字列にしたら入力はできますね、
それを他のセルで「数値だけの日付入力」と「/を含んだ日付入力」の2つをIF関数で場合分けして変換すればできます。
A1のセルを入力用で文字列にして、例えば隣のB1のセルを日付書式にして、次の式を入れます。
=IF(ISERROR(FIND("/",A1)),DATE(INT(A1/10000),MOD(INT(A1/100),100),MOD(A1,100)),DATEVALUE(A1))
こうすれば、A1が"20101101"でも"2010/11/01"でも、B2には日付に変換されて入ります。
始めの ISERROR(FIND("/",A1)) A1の文字列の中に"/"があるかどうかの判定です。
次の DATE(INT(A1/10000),MOD(INT(A1/100),100),MOD(A1,100)) は数値で入力された日付を変換する式です。
最後の DATEVALUE(A1) は"/"を含んだ文字列を日付に変換する関数です。
どうしても同じセルで入力したいのなら、これを同等の処理をVBAで組む事になりますね。
yama1718さん
ご回答ありがとうございます。
IF関数で場合分けして変換する方法は、自分でいろいろ考えてもうまくいかなかったので、ご回答いただいた内容でできることがわかり、とても勉強になりました。
できれば同じセル内がいいのですが、あまり複雑にしない方がいいという上司の意向もありまして、今回はスラッシュ入りでの入力に統一してもらうようにしました。
ですが、今後、別の機会でこの方法を使わせていただきたいと思います。
ありがとうございました。
No.1
- 回答日時:
残念ですが両方を同時に設定することはできません。
(マクロを用いた方法を除く)理由は、2010/8/31 と入力すると、実際には 40421 と言う【シリアル値】が入力され、20100831 とは異なる数値になるからです。
セルの書式設定で 20100831にスラッシュを挿入して見た目を日付風にしても、セルの数値は 20100831 なんです。シリアル値にはなりません。
どちらか片方を使うか、2010.08.31 など、スラッシュではなくピリオドを使うなどしてみましょう。
(この場合は後で該当するセルのピリオドをまとめてスラッシュに置換することで無理矢理日付に変換させることで解決します)
Cupperさん
ご回答ありがとうござます。
やはり同時に設定することはできないのですね。
わかりやすい説明で納得できました。
今回はどちらか片方を使うようにしたいと思います。
ピリオドを使ってあとでまとめて置換する方法も、今後使う機会があるかもしれないので覚えておきます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) Excelについて Excel初心者です。 日報に数字を入力する時、誤った数字を入れると、セルが赤く 6 2023/03/31 17:05
- Java Javaについて質問です。 勉強し始めたばかりの初心者です。 相続税について課税額を算出するコードを 1 2022/05/31 19:02
- Excel(エクセル) Excel関数で日またぎの勤務時間にしるしを立てる 2 2022/04/20 17:22
- UNIX・Linux bash環境でのエラー対応をお願い致します。 1 2022/11/26 17:41
- Excel(エクセル) Excelについて▶あるセルに文字を入力すると、別のセルに色がつく(条件付き書式) 1 2022/03/27 16:43
- その他(Microsoft Office) EXCELのセルへの色づけ 2 2023/06/07 01:22
- Excel(エクセル) エクセルで指定範囲にある名前と重複した場合に入力できないようにしたい 1 2023/07/13 09:58
- Excel(エクセル) エクセル関数について 2 2022/04/13 18:25
このQ&Aを見た人はこんなQ&Aも見ています
-
とっておきの「夜食」教えて下さい
真夜中に小腹がすいたときにこっそり作るメニュー、こっそり家を抜け出して食べに行くお店… 人には言えない、けど自慢したい、そんなあなたの「とっておきの夜食」を教えて下さい。
-
あなたにとってのゴールデンタイムはいつですか?
一週間の中でもっともテンションが上がる「ゴールデンタイム」はいつですか? その逆で、一週間でもっとも落ち込むタイミングでも構いません。 よかったら教えて下さい!
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
いけず言葉しりとり
はんなりと心にダメージを与える「いけず言葉」でしりとりをしましょう。 「あ」あら〜しゃれた服着てはりますな 遠くからでもわかりましたわ
-
ギリギリ行けるお一人様のライン
おひとり様需要が増えているというニュースも耳にしますが、 あなたが「ギリギリ一人でも行ける!」という場所や行為を教えてください
-
Wordの日付変換ってできますか?
Word(ワード)
-
Excelで「20080707」を『2007/07/07』というスラッシュ付日付にするには?
Excel(エクセル)
-
エクセルで数字列の間に『/』を挿入する方法
Excel(エクセル)
-
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
31:30:00が1900/1/1 7:30:0
-
日付だけを変更して印刷(Excel)
-
Excelで半年後の日付を計算したい
-
エクセルでENTERを押すと数式が...
-
入力後に日付順になるように自...
-
Excelに入力した個々の日付の数...
-
エクセルで数字列の間に『/』を...
-
エクセルで1年後の月末を表示さ...
-
WORDで翌日や翌々日の日付を表...
-
EXCELで直近の日付を抽出する関数
-
エクセル関数で日付かどうかの...
-
日付を入力したセルをファイル...
-
Excelで8/26等の日付を全てその...
-
VBAでセルに入っている日付をシ...
-
Excelで日付を4ケタで入力し、○...
-
エクセルのセルにたとえば「756...
-
【Excel質問】 「本日の日付」...
-
エクセル グラフ 軸の日付表記...
-
【エクセル】日付を表示させた...
-
ファイルのオープン時に今日の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
31:30:00が1900/1/1 7:30:0
-
入力後に日付順になるように自...
-
Excelで半年後の日付を計算したい
-
日付だけを変更して印刷(Excel)
-
エクセルでENTERを押すと数式が...
-
エクセル関数で日付かどうかの...
-
Excelで8/26等の日付を全てその...
-
Excelに入力した個々の日付の数...
-
エクセルで数字列の間に『/』を...
-
エクセル 当番表の作り方 エク...
-
EXCELで直近の日付を抽出する関数
-
ファイルのオープン時に今日の...
-
WORDで翌日や翌々日の日付を表...
-
エクセルで1年後の月末を表示さ...
-
エクセルのセルにたとえば「756...
-
日付を入力したセルをファイル...
-
☆Excelエクセルで入力した日の...
-
参照先は空白なのに、なぜ年月...
-
excelで月末日を判定したい
-
【エクセル】日付を表示させた...
おすすめ情報