実務で使えるExcel入門セミナー 「日付データがおかしい?」文字列になった日付を「年/月/日」の形に変換する方法

Excelで日付のデータがうまく扱えなかった経験はないでしょうか。「日付データをいつも通りの処理をしているのにエラーが出てしまう」そんな時は、日付が文字列になっていることを疑いましょう。

 

”さらっ”とまとめると

・日付が文字列になっていると、数式や関数の要素として使えなくなるので、Excel上では文字列から「年/月/日」の形に直しておく必要がある。

・セル内のデータを編集する「LEFT関数」「MID関数」「RIGHT関数」と「DATE関数」を使うことで、文字列になった日付データを「年/月/日」の形に変換することができる。

 

スポンサーリンク

日付が文字列になるケース

Excelでデータを処理している時、日付のデータが次のように表示されているケースを見たことはないでしょうか。

 

スクリーンショット 2017 04 17 17 05 51

 

通常、「2017年7月1日」であれば、「2017/7/1」のように「年/月/日」「/」(スラッシュ)で区切って入力しますが、「20170701」と8桁の数字が並んでいるだけです。

「20170701」と入力されたデータは、見た目は完全に日付ですよね。ですが、Excel上は日付とは認識されずに文字列として認識されてまうんです。日付をこのままの状態にしていると、いつも通りにデータ処理しようとしてもエラーが出てしまいます。

 

日付が文字列になるのは、次のようなケースでよく起こります。

 

ソフトからダウンロードしたデータ

ネットからダウンロードしたデータ

 

もし、データを処理しようとしてエラーが出た場合は、そこで諦めずにデータが文字列になっていないかを疑ってみて下さい。ダウンロードしたデータであればその可能性は高いです。

 

Point

・ソフトからダウンロードしたデータ

・ネットからダウンロードしたデータ

この2つについて、データ処理がうまくできない場合は、入力されたデータが文字列になっていないかを疑う

 

 

日付が文字列のままだと何が問題なのか?

先ほど触れたとおり、日付が文字列になっていると、データ処理の上で問題が生じます。
具体的には、数式や関数の中で日付のデータを使えなくなることです。

 

日付データが文字列であることの問題点

数式や関数で日付のデータが使えなくなる

 

たとえば、DATEDIF関数を使う場合。DATEDIF関数は、このように

 

スクリーンショット 2017 04 17 16 47 47

 

始点となる日付と終点となる日付を入力するとその期間を計算してくれる関数ですが、文字列になった日付を始点と終点に指定しても、エラーになり正しい計算ができなくなります。

 

スクリーンショット 2017 04 17 17 43 56

 

Excelは、数式や関数、機能を使ってデータを集計するのがメインの役割です。
実務でも、減価償却費、利息、支払期限、在職期間、など日付データを使った計算もよく使われます。ですので、日付もデータ処理できる状態で入力しておかなければいけません。見た目の好みなどは人それぞれあると思いますが、日付を使ったデータ処理の観点から、日付のデータは文字列ではなく「/」を使った形式で入力するようにしましょう

 

Excelで日付データを入力する際の注意点

・日付データは、データ処理できる「年/月/日」の形で入力する

文字列になっている場合も、「年/月/日」の形に修正する

 

 

文字列になった日付を「年/月/日」の形に修正する

日付の入力は「年/月/日」の形で行うべきですが、すでに文字列として日付が入力されている場合は修正しなければいけません。

データの数が多いと、「1つ1つを入力するのはムリ!」と思うかもしれませんが、もちろん手入力する必要はありません。関数を使えばまとめて修正することができます。

 

例として「20170701」を「2017/7/17」に修正することを考えます。

 

「LEFT関数」「MID関数」「RIGHT関数」で分割する

まず、「20170701」を「年」「月」「日」に分割して別のセルに入力します。
ここで使うのが「LEFT関数」「MID関数」「RIGHT関数」です。

 

※セル内のデータを操作する関数をこちらの記事でまとめています。

 

LEFT関数

・指定したセルの入力内容を、左から順番に指定した文字数分表示する

・=LEFT (セル番地, 文字数)

(例)
スクリーンショット 2017 04 17 18 14 39

 

MID関数

・指定したセルの入力内容を、開始位置から指定した文字数分表示する

・=MID(セル番地, 開始位置, 文字数)

(例)
スクリーンショット 2017 04 17 18 52 51

 

RIGHT関数

・指定したセルの入力内容を、右から順番に指定した文字数分表示する

・=RIGHT関数 (セル番地, 文字数)

(例)
スクリーンショット 2017 04 17 18 59 37

 

この3つの関数を使って、「20170701」を「2017」「07」「01」に分割します。

 

スクリーンショット 2017 04 17 19 07 21

 

DATE関数に「年」「月」「日」を入力

「年」「月」「日」のデータに分割できたら、DATE関数を使って日付データに変換します。

 

DATE関数

・「年」「月」「日」のデータを入力すると、日付データに変換する

・=DATE(年, 月, 日)

(例)

スクリーンショット 2017 04 17 19 15 33

 

先ほど分割した「年」「月」「日」のデータをDATE関数に入力すると、

 

スクリーンショット 2017 04 17 19 25 08

 

2017/7/1と日付データに変換されました。

なお、データ数が多い場合でも1行目に関数を入力して、2行目以下にコピー&ペーストすれば、まとめて日付データに変換できるのでそれほど手間はかかりません。

 

スクリーンショット 2017 04 17 19 33 03

 

 

まとめ

会計ソフトやネットからダウンロードしたデータの中には、日付が文字列で表示されているものもあります。文字列のままでは関数や数式による処理できないので、日付データを正しい形(「年/月/日」)に変換しておきましょう

 

おまけ

アキレス腱の負傷で長時間のランに出られないので、プールで泳ぐことに。後半、死にそうになるけど意外に楽しめてます。

タイトルとURLをコピーしました