- ベストアンサー
EXCELでの日付表示について
申し訳ありませんが、初心者ですのでお教え願います。 左記のようなデータ(文字式)を右記のようなエクセルの日付として表示する方法が分かりません。 なお、一桁目の3は昭和、4は平成です。 3230620 S23.6.20 4230620 H23.6.20
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
No.5です。 まだ見てくれるかどうかわかりませんが、一応訂正しておきます。 No.5より、こっちの方が数式が短くなります。 =--TEXT(RIGHT(A1,6),IF(--LEFT(A1)=3,"!S00-00-00","!H00-00-00")) 対象セルが空白でもエラーを出さないようにするには、 =IF(ISNUMBER(A1),--TEXT(RIGHT(A1,6),IF(--LEFT(A1)=3,"!S00-00-00","!H00-00-00")),"")
その他の回答 (6)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 「一桁目の3は昭和、4は平成」なので、明治から入れてみました。 =TEXT((CHOOSE(LEFT(A1,1),"M","T","S","H")&TEXT(RIGHT(A1,6)*1,"00!/00!/00"))*1,"GE.M.D") 単に、以下だけで、シリアル値が取れますので、 =(CHOOSE(LEFT(A1,1),"M","T","S","H")&TEXT(RIGHT(A1,6)*1,"00!/00!/00"))*1 ユーザー書式で、「GE.M.D」でも、できます。
- shiotan99
- ベストアンサー率68% (140/203)
こんにちは~ 必ず7桁で、昭和と平成だけなら、こんなふうにもできます。 =IF(LEFT(A1)="3",--TEXT(RIGHT(A1,6),"!S00-00-00"),--TEXT(RIGHT(A1,6),"!H00-00-00")) 「表示形式」を「日付」の H13.3.14 にしてください。
- imogasi
- ベストアンサー率27% (4737/17069)
エクセルの場合は質問を満たすために2つのステップを通します。 (1)エクセルで、日付書式の豊富な機能を使うためには、エクセルのシステムが、日付で前提にする、日付シリアル値(1900年初を第1日とする たとえば今日は第何番目かの数)に直さないといけない。文字列ではダメです。 たとえ数でも3230401と入っていても、体系が違うのでダメです。 それには関数を使います。DATEかDATEVALUE関数です。 この場合変に昭和年になってしまっているので、DATEVALUEが 使いごろです。 =DATEVALUE("昭和"&MID(A1,2,2)&"年"&MID(A1,4,2)&"月"&MID(A1,6,2)&"日") これで3230412の場合 17635になります。 (2)そこで17635に対し、エクセルの書式を設定します。 日付書式の「H13.3.14」(私のエクセルの例)を選びます。 S23.4.12 となりました。 質問とは別の例で、書式が見つからない場合はユーザー定義で、別途設定します。それなりの 知識がいりますが、書いた本を見つけるだけのことです。 上記で3を昭和と仮定して入れていますが、平成、大正がある場合は第1桁目で、昭和・平成・大正を分けなければならず、IF分などで長くなるので 省略してます。 DATE関数でもできそうですが、昭和を西暦かその下2桁に直す必要があるのでややこしいかなと思ってDATEVALUEにしました。 どっちにしてもはじめにエクセル書式で入力しないと、後が面倒です。
お礼
ていねいなご説明,ありがとうございます。 これからは,文字列ではなくエクセル書式で入力するようにします。 ありがとうございます。
- kaisendon
- ベストアンサー率44% (114/257)
A B 1 3230620 S23.6.20 2 4230620 H23.6.20 3 4150730 H15.7.30 4 上記A列のように値が入っていたとして B1には =IF(A1="","",IF(LEFT(A1,1)*1=3,TEXT(TEXT(A1+16250000,"0000-00-00"),"ge.m.d"),TEXT(TEXT(A1+15880000,"0000-00-00"),"ge.m.d"))) な~んてこと考えている間に 別の方から回答が^^; No.2さんの式はVALUE関数使わなくてもいけると思います。 =DATE(IF(LEFT(A1,1)="3",25,88)+MID(A1,2,2),MID(A1,4,2),MID(A1,6,2)) こっちの方がすっきりしてていいですね^^
お礼
早速試してみました。 こういう式でもできるんですね。 これを機会にいろいろな関数を勉強してみます。 ありがとうございました。
- shinkun0114
- ベストアンサー率44% (1553/3474)
A1にデータが入っているとして、 =DATE(IF(LEFT(A1,1)="3",25,88)+VALUE(MID(A1,2,2)),VALUE(MID(A1,4,2)),VALUE(MID(A1,6,2))) これで表示できます。 表示形式は別途指定してください。 なお、昭和と平成しか考えていません。
お礼
早速試してみました。 関数の意味は分からないのですが,式をコピーしたら,ほんと,目からウロコというか,今まで自分ではいくら調べてもできなかったことが,スッとできました。 本当にありがとうございました。
- kaisendon
- ベストアンサー率44% (114/257)
こんにちは 2つほど先に聞いておきたいのですが 1.データ(文字列)は必ず7桁ですか? 2.関数を使って別のセルに表示させる方法でいいですか? 補足、お待ちしていま~す(^ー^* )
お礼
詳しいご説明ありがとうございます。 対象セルが空白でもエラーがでないのは助かります。 初心者にもていねいに説明していただき,助かります。