[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『日付:エクセル以外からのデータを日付に』(困った君)
日付変換:他からひっぱってきたデータを日付に認識させる。
エクセルに落としてきたデータを使用しますが、生年月日と入社年月日が
年号と年月日に分かれており、3 170602←(3 は昭和です)と4 91001←(4 は平成です)
の2パターンがあり、うまく変換できません。
日付変換が出来れば、年齢と勤務年月を計算させたいのですが・・・。
よろしくお願いします。
なお形式の変換であれば、Format関数でできます。(INA)
横から失礼します。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 の有無に関係なく表示してくれます。 一寸興味ありましたので、以上の違いを確認しました。報告まで! (シニア)
シニアさんありがとうございました。勉強になりました。エクセルは奥が深〜いですね。もっと勉強します。 まだまだ私のしらない技が多くありそうです。 (みーこ)
ところで、元スレの「困った君」は、解決したのでしょうか・・・・ (TORI)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.