問題:下図のように和暦で生年月日を管理しています。 セルには「昭35/12/06」という文字列で入力されています。 データとして活用するため、これを西暦に変換する方法を教えてください。 ▼ 回答と解説(クリックしてください) ■回答:このデータには、「昭」もしくは、「平」の2種類のみが存在しています。 またその後に年、月、日が2桁数値で「/」区切りで入力されています。 昭和の場合は和暦に1925を、平成の場合は1988を足せば西暦となります。 これを数式にすると、以下となります(B2セルの場合) =DATE(IF(LEFT(A2,1)="昭",1925,1988)+MID(A2,2,2),MID(A2,5,2),RIGHT(A2,2)) 上の数式は、1つのセルに入れる数式の長さとしては許容範囲ですが、少し複雑ですね。 また、特定の誕生月の人を集計するなどの作業が今後発生するのであれば、年、月、日をそれぞれ分けて管理するほうが使い勝手が良い場合もあります。 B2セル =IF(LEFT(A2,1)="昭",1925,1988)+MID(A2,2,2)C2セル =MID(A2,5,2) D2セル =RIGHT(A2,2) E2セル =DATE(B2,C2,D2) 今回のデータのように、昭和と平成だけでなく大正や令和のデータもある場合など、条件が複数あるときには、IF関数ではなく、マスタ表を別途作ってVLOOKUP関数で変換を行うことをおすすめします。 B2セル =VLOOKUP(LEFT(A2,1),H:I,2,0)+MID(A2,2,2) ■解説:Excelで日付を扱う際には、西暦で、年を省略せずに入力することが基本です。回答にもありますが、入力もれなどを防ぐには、年、月、日を分けてデータベース項目を作っておくと便利です。西暦で入力されたデータは、セルの書式設定で表示形式を変更することで和暦に簡単に変換(データの見た目を変える)ことができます。 【関連記事】 DATE関数 IF関数 LEFT関数 MID関数 RIGHT関数 VLOOKUP関数 6大必須関数(1) IF関数~条件よって処理を変える関数 LEFT関数~セルの左から指定した文字数だけ取り出す MID関数~セル内文字列の途中から指定した文字数だけ取り出す RIGHT関数~セルの右から指定した文字数だけ取り出す VLOOKUP関数で検索値より左側の値を取得できるか? 独学でやってきた方、体系的に学びたい方、もっと効率的に使いたい方へ… 過去10年間毎週開催・400回以上の開催で3700名以上が参加したExcelセミナーです。 実務直結・超実践型・一日完結・生涯無期限アフターサポートがついてます。 合わせて読みたい [関連記事]