yymmdd 形式の数値・文字データを日付データに変換する

yymmdd形式の数値データを日付データへ変換するシンプルな方法

Excelでデータを扱う際、特定の形式で入力された日付データを変換する必要があることがあります。ここでは、yymmdd形式(6桁の文字列型数値)の数値データを標準の日付データに変換する方法について解説します。この方法では、1940年から2039年の範囲内で適切に年を解釈します。

100年間の範囲で使用できる式です。取り扱い範囲の数字はお好みで変更してください。

手順

計算手順のおおまかな流れです。詳しくは次節以降で解説します。

  1. 年の取得と調整:yymmdd形式の最初の2桁が年を表します。この年を取得し、1940年から2039年の範囲で適切に解釈するために、年を調整します。IF関数LEFT関数を用いて最初の2桁が39より小さいかどうかで場合分けをします。
  2. 年の部分を数値に変換:ただし、場合分けをする際は文字列型の数値をそのままでは取り扱えません。VALUE関数で先頭の2文字の文字列型数値を一般数値に変換しします。
  3. 月と日の取得:次の2桁が月、最後の2桁が日を表します。これらはそのまま MID関数RIGHT関数で取得します。
  4. 日付の組み立てDATE関数を使用して、取得した年、月、日から日付を作成します。

具体的なExcel式

セル A1 に yymmdd形式の数値データが入力されていると仮定します。以下の式を使用して日付データに変換します。セルA1の部分(6桁の数値型文字列が入力されているセル)はお好みで置き換えてください。

=DATE(IF(VALUE(LEFT(A1, 2)) <= 39, 2000 + VALUE(LEFT(A1, 2)), 1900 + VALUE(LEFT(A1, 2))), VALUE(MID(A1, 3, 2)), VALUE(RIGHT(A1, 2)))

LET関数を用いた下記の式も同等の効果を発生します。こちらではセル A1 (参照セル)の指定が一度で済みます。

=LET(data, A1, DATE(IF(VALUE(LEFT(data, 2)) <= 39, 2000 + VALUE(LEFT(data, 2)), 1900 + VALUE(LEFT(data, 2))), VALUE(MID(data, 3, 2)), VALUE(RIGHT(data, 2))))

式の解説

この式の各部分は以下のように機能します。IF関数VALUE関数LEFT関数MID関数RIGHT関数DATE関数を組み合わせます。

  • IF(VALUE(LEFT(A1, 2)) <= 39, 2000 + VALUE(LEFT(A1, 2)), 1900 + VALUE(LEFT(A1, 2))):yymmdd形式の最初の2桁を取得し、それを数値に変換します。値が39以下の場合、2000年に加算し、それ以外の場合は1900年に加算します。
  • VALUE(MID(A1, 3, 2)):yymmdd形式の3番目と4番目の文字(=月)を取得し、それを数値に変換します。
  • VALUE(RIGHT(A1, 2)):yymmdd形式の最後の2文字(=日)を取得し、それを数値に変換します。
  • DATE(year, month, day):取得した年、月、日を組み合わせて、正しい日付データを作成します。

具体例

セル A1 に 010504(2001年5月4日)が入力されている場合、この式を使用すると、Excelはこれを正しい日付として解釈し、2020年5月4日と表示します。また、セル A1 に 491231(1949年12月31日)が入力されている場合でも、この式を使用すると、Excelはこれを1949年12月31日と解釈します。

ただし入力されているものは6桁の文字列型数値データである必要があります。

まとめ

この方法により、yymmdd形式の文字列型数値データを1940年から2039年の範囲内で適切に日付データに変換することができます。これにより、データの一貫性が保たれ、正確な日付情報の管理が可能になります。

参考:8桁のyyyymmdd 形式の数値・文字データを日付データに変換する手順

yyyymmdd、8桁の場合は以下のページの情報を参照してください。

yyyymmdd 形式の数値・文字データを日付データに変換する
Excelで yyyymmdd 形式(8桁)の数値データを日付データに変換する際には、DATE, LEFT, MID, RIGHT 関数を使う方法がシンプルで効果的です。この形式では、最初の4桁が年、次の2桁が月、最後の2桁が日を表します。...

コメント