システムから出力したデータに「20240401」のような8桁の数字が日付として含まれていて、エクセルで正しい日付形式に変換できないと困った経験はありませんか。
8桁の数字を日付に変換する方法はいくつかあり、目的や状況に応じて適切な方法を選ぶことが重要です。
この記事では【Excel】エクセルで8桁の数字を日付に変換する(スラッシュなし・DATEVALUE・TEXT関数・8桁日付)方法について解説していきます。
ポイントは
です。それでは詳しく見ていきましょう。
LEFT・MID・RIGHT関数とDATEVALUE関数を組み合わせた変換方法
8桁の数字を日付に変換する最も基本的な方法は、LEFT・MID・RIGHT関数で年・月・日を取り出してDATEVALUE関数で日付に変換する方法です。
以下のサンプルデータを例に解説します。

「20240401」という8桁の数字から「2024/4/1」という日付に変換するには、まずスラッシュ区切りの文字列に変換してからDATEVALUE関数でシリアル値に変換します。
B2セルに以下の数式を入力します。

LEFT(A2,4)で左から4文字(「2024」)・MID(A2,5,2)で5文字目から2文字(「04」)・RIGHT(A2,2)で右から2文字(「01」)を取り出し、スラッシュで連結して「2024/04/01」という文字列を作り、DATEVALUE関数でシリアル値に変換しています。
結果はシリアル値として返るためセルの書式設定を「日付」に変更します。

変換後のセルの書式設定を「yyyy/m/d」などの日付形式に変更することで「2024/4/1」と表示されます。

A列が数値として入力されている場合の注意点
A列の「20240401」が文字列ではなく数値として入力されている場合、LEFT・MID・RIGHT関数はそのまま使えないことがあります。
数値に対してこれらの関数を使う場合はTEXT関数で文字列に変換してから処理します。

TEXT(A2,”00000000″)で数値を8桁の文字列に変換してからLEFT・MID・RIGHT関数を適用しています。
DATE関数とMID関数を使った変換方法
DATEVALUE関数を使わずにDATE関数で直接日付を組み立てる方法もあります。
B2セルに以下の数式を入力します。

LEFT(A2,4)で年(「2024」)・MID(A2,5,2)で月(「04」)・RIGHT(A2,2)で日(「01」)を取り出してDATE関数に渡します。
この方法はDATEVALUE関数を使わずに直接シリアル値が返るため、セルの書式設定を「日付」に変更するだけで完了します。
DATE関数は引数が文字列(”04″など)でも数値として自動的に解釈するため、LEFT・MID・RIGHT関数で取り出した文字列をそのまま渡せます。
DATEVALUE関数を使う方法よりも数式がシンプルで分かりやすいため、こちらの方法を基本として使うことをおすすめします。
数式を使わずに一括変換する方法
数式を使わずに「20240401」という8桁の数字を日付に変換するには「区切り位置」機能が使えます。
変換したい範囲を選択して「データ」タブ→「区切り位置」をクリックします。
ウィザードの最初の2画面はそのまま「次へ」をクリックし、3画面目の「列のデータ形式」で「日付」を選択します。
日付の形式ドロップダウンから「YMD」(年月日)を選択して「完了」をクリックすると、8桁の数字が日付データに変換されます。


区切り位置機能を使った変換は数式が不要なため、元のデータをそのまま日付に変換したい場合に便利です。
TEXT関数で8桁の数字を表示形式だけ変える方法
日付データへの変換ではなく、8桁の数字を「2024/04/01」のような見た目で表示したいだけの場合はTEXT関数が使えます。
この数式はA2の「20240401」という数値を「2024/04/01」という文字列として表示します。
「!」はその直後の文字をエスケープ(特別な意味を持たない文字として扱う)するための記号で、スラッシュを区切り文字として表示させています。
ただしこの結果は文字列のため日付計算には使えません。
日付計算に使いたい場合はDATE関数またはDATEVALUE関数で実際の日付データに変換する方法を選びましょう。
変換後の日付を使って集計・計算する活用例
8桁の数字を日付に変換した後は通常の日付と同様にすべての日付関数が使えるようになります。
変換後の日付からWEEKDAY関数で曜日を取得したり、DATEDIF関数で期間を計算したりできます。
SUMIFS関数やCOUNTIFS関数の条件として日付範囲を指定することで、期間ごとの集計も可能になります。
大量の8桁日付データを一括変換する場合は、作業列を設けてDATE関数で変換した後、変換列の値をコピーして元の列に「値として貼り付け」を行うことで数式なしの日付データとして管理できます。
まとめ エクセルで8桁の数字を日付に変える(スラッシュなし・文字列・区切り位置や書式設定・和暦・DATEVALUE・TEXT関数)方法
エクセルで8桁の数字を日付に変換する方法についてまとめます。
DATE関数を使う方法は「=DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2))」でシンプルに日付データに変換でき、最もおすすめの方法です。
DATEVALUE関数を使う方法は「=DATEVALUE(LEFT(A2,4)&”/”&MID(A2,5,2)&”/”&RIGHT(A2,2))」でスラッシュ区切りに変換してから日付に変換します。
数値として入力されている場合はTEXT関数で「TEXT(A2,”00000000″)」として文字列化してから処理します。
数式を使わない方法は「データ」タブ→「区切り位置」→「日付(YMD)」で一括変換できます。
表示だけ変えたい場合はTEXT関数で「=TEXT(A2,”0000!/00!/00″)」を使いますが、計算には使えません。
8桁日付の変換を正しく行うことでシステムから出力したデータをエクセルで効率よく活用できます。ぜひ活用してみてください。


コメント