エクセルのバージョンは2007です。

上司から仕事のスケジュール表をもらいました。

昨年度取り扱ったクライアントと仕事の工程表が既に乗っており、それを参考にして事前にこちからか連絡をとったりします。
ですので、クライアントや日付の情報はデリートできません。

今、セルの日付の欄の書式は日付で○月○日となっています。
ただ、それだと見づらいのでmm/ddの書式にしたいのです。
書式の変更で日付からmm/ddを選べばいいのですが、ここで一つ問題が。

今年のスケジュールを上書きして入力するときに、テンキーだけ
たとえば0421と入力したら4/21と表示されるようにしたいので
ユーザー定義の書式で##"/"##としたいのですが、
こうすると、日付がめちゃくちゃになってしまいます。

日付のデータだけ、別シートに数値貼り付けで張り付けて
あとから貼り直そうとしても、日付書式で入力されている数字が
実際の日付の数字に変換されるわけではないので同じことです。

セルの書式を##"/"##にして、現在入力されている日付を反映させるには
どうしたらいいのでしょう。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

0421が日付にしたときに、4/21という意味ではないからです。



要は04/21と入れないと、4/21は出ないということです。

0421が日付にすると何の値になったかわかりませんが、まずちゃんとでないでしょうね。

反対に4/21とはいっているものを数式などに変更してみてください。
数字の羅列になります。

見た目は、4/21でも日付には2011/04/21 hh:mm:ssの情報が入っているからです。

この回答への補足

そうなんです、現在入っている数値が実際の日付の見た目と違うというのはわかっているのです。
要するに、その現在入っている数値をもとにして、0421という数値を導き出し、それを上から張り付ける形で上書きしたいのです。

補足日時:2011/04/22 00:40
    • good
    • 0

そもそも「ユーザー定義」で mm/dd と定義し直し


テンキーでスラッシュ(/)を含めて入力すれば良いだけのような気がするんですけど…
ダメなんですか?

まあ、それは置いといて(問題を先送りにする悪い癖w)
>ユーザー定義の書式で##"/"##としたいのですが、
>こうすると、日付がめちゃくちゃになってしまいます。

普通に文字列として表示されますよ?
それで納得できたのではありませんか。
どのように「日付がめちゃくちゃに」なるのか、残念ですが質問文からは分かりません。
日付を計算して表示しているセルがあるのだろうと推測はしますけど…。

ですがアドバイス。
その計算をして日付を表示させているセルに、日付示す文字列をシリアル値に直す関数を加える修正しましょう。
 A1セルに参照元の値が入っているとすると、その A1 の部分を次の関数に置き換えます。
 DATEVALUE("2011/"&TEXT(A1,"##""/""##"))
 あくまでも一例ですが、とりあえずはこれでもOK。
 DATEVALUE関数と TEXT関数の 使い方の詳細は Excelのヘルプを参照してください。


あと基礎知識として、Excel の日付と時間は「シリアル値」という数値で管理されています。
1900年1月1日を1として数えた日数がシリアル値になります。半日(12時間)は シリアル値で 0.5 と示す事ができます。
 http://support.microsoft.com/kb/882391/ja
ここに詳しく書いてあります。一読しましょう。
※このページの下の方に 20110421 などと入力した数字を
 シリアル値に変換する関数が紹介されています。
 よく読んで理解して応用してみてください。
    • good
    • 0

表示形式のユーザー定義を


[>10000]mm/dd;00"/"00
としてみます。



>たとえば0421と入力したら4/21と表示されるようにしたい

それでは

>mm/ddの書式にしたいのです。

と合致しませんよ。
    • good
    • 0

「今年のスケジュールを上書きして入力するときに、テンキーだけ


たとえば0421と入力したら4/21と表示されるようにしたいので」
 入力するセル(A1)と日付を表示するセル(A2)が別で,、A1が文字列で4桁なら、A2に「=LEFT(A1,2) & "/" & RIGHT(A1,2)」で実現できます。

「要するに、その現在入っている数値をもとにして、0421という数値を導き出し、それを上から張り付ける形で上書きしたいのです。」
 日付は、Excel内部では1900/1/1からの経過日数(シリアル値)で、管理しています。A1のシリアル値をA2に「0421」のように表示するには、「=RIGHT("0" & MONTH(A1),2) & RIGHT("0" & DAY(A1),2)」とすれば可能です。
    • good
    • 0

このQ&Aに関連する人気のQ&A

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


人気Q&Aランキング