[[20030828105334]] 『日付:エクセル以外からのデータを日付に』(困った君) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『日付:エクセル以外からのデータを日付に』(困った君)

日付変換:他からひっぱってきたデータを日付に認識させる。

エクセルに落としてきたデータを使用しますが、生年月日と入社年月日が
年号と年月日に分かれており、3 170602←(3 は昭和です)と4 91001←(4 は平成です)
の2パターンがあり、うまく変換できません。
日付変換が出来れば、年齢と勤務年月を計算させたいのですが・・・。
よろしくお願いします。


昭和と平成の数字の区別はどのように判断すればよいのでしょうか?

なお形式の変換であれば、Format関数でできます。(INA)


いちばん簡単な方法でいいのですが、ライブラリー上で[[20030730155905]]
西暦からの年数計算がありましたので、西暦(間は/を入れるパターン)に変換できれば
後はライブラリーに従い作業できると思うのですが。

3と170602はセルが違います。説明不足ですみません。したがって平成の1年〜9年までが桁数が5桁となっていますがどうでしょうか?(困った君)

 横から失礼します。Yosh!です。
 A1に3(昭和)か4(平成)、B1に年号による年月日が入力されているとします。C1に
=DATE(IF(A1=3,1925,1988)+(INT(B1/10000)),INT(MOD(B1,10000)/100),MOD(B1,100))
これで西暦に変換した日付になると思います。(Yosh!)


横からすいません。(^_^)
 A1に元号の区分、B1に年月日が入っているとして、C1に
 =(IF(A1=3,"S","H")&TEXT(B2,"00!/00!/00"))*1
 で、日付シリアル値になります。
 表示形式は、お好みで....
     (TORI)

 横から割り込んでTORIさんに質問があります。すいません。何故最後に*1がいるのですか?よければ意味を教えてください。
 別になくてもいいのでは?
(みーこ)

 TORIさんが説明されていますように
 =(IF(A1=3,"S","H")&TEXT(B1,"00!.00!.00"))*1 で、日付シリアル値になります。
仮にC1に =(IF(A1=3,"S","H")&TEXT(B1,"00!.00!.00"))*1
    C2に =(IF(A2=3,"S","H")&TEXT(B2,"00!.00!.00"))
として、C1:C2選択して「セルの書式設定・表示計式・標準」にして確認して下さい。
C1は日付のシリアル値が表示されます。C2はテキストですから、シリアル値にはなりません。
=(テキスト)*1 でテキストを数値に変換する技の操作です。
次にこの違いを確認するためにC1:C2選択して「セルの書式設定・表示計式・ユーザ定義」で ge.mm.dd(aaa) とします。
シリアル値では曜日が表示されますが、テキストではセルの書式設定が無効になります。
しかし、C1で年齢を求めるために=DATEDIF((IF(A1=3,"S","H")&TEXT(B1,"00!.00!.00"))*1,TODAY(),"y") 
「セルの書式設定・表示計式・ユーザ定義」で 0才 します。
C1をダブルクリックして、編集状態にして *1 を消しても表示の結果は同じです。
この様に年齢は標準の値ですから、日付のシリアル値の書式設定との関係から離れます。
みーこさんのお尋ねのように、計算では *1 の有無に関係なく表示してくれます。
一寸興味ありましたので、以上の違いを確認しました。報告まで!
 (シニア)


 シニアさんありがとうございました。勉強になりました。エクセルは奥が深〜いですね。もっと勉強します。
 まだまだ私のしらない技が多くありそうです。
 (みーこ)

シニアさん、適切な説明と、フォロー ありがとうございます。m(__)m
 ところで、元スレの「困った君」は、解決したのでしょうか・・・・
   (TORI)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.