質問 |
||
| 質問者:yuuki56 | エクセル 文字列(数値)を日付データに変換 | |
|---|---|---|
困り度:
|
システムからCSVデータを抽出したのですが、日付データと時刻データが数値としてあります。これを日付、時刻データに変換したいのですが良い方法はありますでしょうか。 A1 20070601 → 2007/6/1 B1 1230 → 12:30 としたいのです。 データは1万件以上あるため、手入力で「/」を入れて いくわけにはいかず困っています。 またA1セルを「left関数」などで分割してから、 「&」で結合させても文字列として認識して うまくいきません。 何か良い方法がないかよろしくご教示を お願いします。 |
|
質問投稿日時:08/07/03 17:19 質問番号:4148581 |
||
回答 |
|
| 回答者:wisemac21 | A1はA列を選択して、データ→区切り位置でウイザードの1/3、2/3はそのまま次へとしてウイザード3/3で列のデータ形式を日付(YMD)にしてOK これで日付に変わります。 B1はC1に =INT(B1/100)/24+MOD(B1,100)/24/60 で表示形式をh:mmにして、下へコピー |
|---|---|
| 種類:回答 どんな人:経験者 自信:自信あり |
|
| |
回答日時:08/07/03 19:42 回答番号:No.5 |
|
| この回答へのお礼 | 本当にいろいろな方法があるのですね。大変参考になりました。ありがとうございました。ポイントつけられずに申し訳ありません。全部の方にポイント付与できればよいのですが、申し訳ありません、投稿の早い順にさせていただきました。申し訳ありません。 |
回答 |
|
| 回答者:mshr1962 | A1の日付の方は列を選択してから、「データ」「区切り位置」で「次へ」を2回押して 表示形式を「日付:YMD」で「完了」が一番早いです。 数式で行なう場合は、#1,2の方のでできますがLEFT関数等に拘るなら =DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2)) =TIME(LEFT(B1,2),RIGHT(B1,2)) で日付と時刻に出来ます。 |
|---|---|
| 種類:回答 どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/07/03 19:23 回答番号:No.4 |
|
| この回答へのお礼 | こちらの方法もできました。ありがとうございました〜 いろいろな方法があるのですね。全部の方にポイントをつけたいのですがそうもいかず、早い投稿順にさせていただきました。申し訳ありません。 |
回答 |
|
| 回答者:mike_g | 「日付データ」=TEXT(A1,"00-00-00")+0 「時刻データ」B1 が2400未満の場合なら、=TIME(B1/100,MOD(B1,100),) でもOKかと。 |
|---|---|
| 種類:回答 どんな人:経験者 自信:自信あり |
|
| |
回答日時:08/07/03 18:19 回答番号:No.3 |
|
| この回答へのお礼 | この方法でもちゃんとできました。助かりました。ありがとうございました〜 |
回答良回答10pt |
|
| 回答者:kiskfry | >またA1セルを「left関数」などで分割してから、 >「&」で結合させても文字列として認識して >うまくいきません。 色々方法がありますが、↑ここまで出来るのであれば 文字列としてできあがった"2007/06/01"(C1あるとすると)を 隣のセルに=datevalue(C1) でいけるのではないかと思います。 時間に関しても同じくTimevalue("12:30")で可能です。 これで表示が変であれば書式設定であわせるだけできちんと表示されると思います。 |
|---|---|
| 種類:回答 どんな人:専門家 自信:自信あり |
|
| |
回答日時:08/07/03 17:36 回答番号:No.2 |
|
| この回答へのお礼 | このやり方もきちんとできました!ありがとうございました〜 |
回答良回答20pt |
|
| 回答者:mu2011 | 次の方法は如何でしょうか。 =TEXT(A1,"0000!/00!/00")*1 =TEXT(B1,"00!:00")*1 セルの書式設定をお忘れなく! |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/07/03 17:27 回答番号:No.1 |
|
| この回答へのお礼 | 期待どおりの結果がでました!ありがとうございました〜 |