プロが教えるわが家の防犯対策術!

文字列で定義された日付(*)を’2001/8/1’(シリアル値?)と表示させるには
どういう関数でどういう計算をしたら効率よく変換できるでしょうか?

*:
文字列で’H130801’
1桁目(平成=H,昭和=S)+年+月+日

A 回答 (8件)

もっと簡単な方法もあるかもしれませんが


H130801という文字列をH13.08.01という文字列に書き換えて、
それを日付のシリアル値に変換する式です。
平成1年などH01ではなくH1にも対応させるようにしたので長くなりました。
A1にH130801が入っているときの式です。

=DATEVALUE(CONCATENATE(LEFT(A1,IF(LEN(A1)=7,3,2)),".",MID(A1,IF(LEN(A1)=7,4,3),2),".",RIGHT(A1,2)))

これで日付のシリアル値が得られますので、セルの書式の表示形式の日付から
表示したい形式2001/8/1を選択してください。
    • good
    • 0
この回答へのお礼

ありがとうございました。勉強になりました。

お礼日時:2001/08/02 06:39

H130801がセルA1に入っているとして、


平成1桁年の日付(例として平成9年1月1日)が、

1)H090101の様に入っているのなら、
=DATEVALUE(LEFT(A1,3)&"."&MID(A1,4,2)&"."&RIGHT(A1,2))

2)H90101の様に入っているのなら、
=IF(LEN(A1)=7,DATEVALUE(LEFT(A1,3)&"."&MID(A1,4,2)&"."&RIGHT(A1,2)),DATEVALUE(LEFT(A1,2)&"."&MID(A1,3,2)&"."&RIGHT(A1,2)))

と入力して、「セルの書式設定」→「表示形式」を「日付」→「1997/3/4」を選択。

尚、2)の場合はH090101型のデータが混在しても大丈夫です。
    • good
    • 0

CONCATENATE(MID(セル番号,1,3),"/",MID(セル番号,4,2),"/",MID(セル番号,6,2))



でどうでしょう。
CONCATENATE(文字列1,文字列2,…) : 文字列の結合
MID(文字列, 開始位置, 文字数) : 文字列の任意の位置から指定された数の文字を返す

例:D50=S511124
  B50=CONCATENATE(MID(D50,1,3),"/",MID(D50,4,2),"/",MID(D50,6,2))
  B50の表示:S51/11/24

要求している答えじゃなかったらごめんなさい。
    • good
    • 0
この回答へのお礼

ありがとうございました。勉強になりました。

お礼日時:2001/08/02 06:38

ふたたびHitomiKuroseです。


majeさんのを改造してちょっとだけ短くしました。

=DATEVALUE(CONCATENATE(LEFT(A1,LEN(A1)-4),".",MID(A1,LEN(A1)-3,2),".",RIGHT(A1,2)))
    • good
    • 0

こんにちは



多少短く(考え方は皆さんのと同じです)

年も2桁固定(例 H090801)なら
 =--(LEFT(A1,3)&"/"&MID(A1,4,2)&"/"&RIGHT(A1,2))
年が1桁~2桁非固定(例 H90801)なら
 =--(LEFT(A1,LEN(A1)-4)&"/"&MID(A1,LEN(A1)-3,2)&"/"&RIGHT(A1,2))

ご存知だとは思いますが
結果はシリアル値なので、書式設定 表示形式 で「日付」(ご質問の例だと1997/3/4形式)
を設定してください!
    • good
    • 0
この回答へのお礼

ありがとうございました。勉強になりました。

お礼日時:2001/08/02 06:37

こんにちは



=(LEFT(A1)&TEXT(MID(A1,2,6),"00!/00!/00"))*1

でシリアル値に変換します。年の部分が一桁、二桁両方に対応しています。

 この結果を 2001/8/1 のような表示形式にするには、以下の手順です。

1.セル範囲を選択
2.Ctrl+1 (メニュー[書式]-[セル])
3.[表示形式]タブの[分類]で 日付 を選択
4.[種類]で 1997/3/4 を選択
5.Enter

参考URL:http://www2.odn.ne.jp/excel/waza/format.html

この回答への補足

早速回答ありがとうございました。
あっという間に解決できてびっくりしています。
参考urlのページもとても参考になりました。お気に入りに追加しました。

追加で(調子に乗って甘えてすいません!)、、
別のファイルでは、「昭和=1,平成=2」としてあって
うまくいきません。

H130801 ー> 1130801

この場合の対応を教えてください。

補足日時:2001/07/31 07:10
    • good
    • 0

平成と昭和だけでいいですよね?今回はjanmaさんのを改造。



=(IF(LEFT(A1)="1","H","S")&TEXT(MID(A1,2,6),"00!/00!/00"))*1
    • good
    • 0
この回答へのお礼

ありがとうございました。勉強になりました。

お礼日時:2001/08/02 06:37

こんにちは



 「昭和=1,平成=2」ということでしたら、

=(INDEX({"S","H"},LEFT(A1))&TEXT(MID(A1,2,6),"00!/00!/00"))*1

でいかがでしょうか?

参考URL:http://www2.odn.ne.jp/excel/
    • good
    • 0
この回答へのお礼

ありがとうございました。勉強になりました。

お礼日時:2001/08/02 06:36

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