ヘルプの森~Excel・Access・Office全般ヘルプデスクサイト

No.016

日付を表す8桁の数値データを、6桁の和暦にしたい 《DATE・TEXT》

2003/2007/2010/2013

入力されている西暦日付を表す8桁数値「20100401」を和暦6桁の「220401」と表示したい、とのお問い合わせです。

8桁数値はExcelにとっては単なる数値でしかないので、まずは日付に直してやります。その後和暦にするのは関数で行ってもいいし、表示形式で行ってもいいですね。今回はもちろん、すべて関数で和暦まで求めてみます。

セルA2の8桁数値を本物の日付データにするために、DATE関数(関数の分類: 日付/時刻)をつかって変換します。

  =DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2))

DATE関数の引数3つ、[年]、[月]、[日]です。年、月、日にあたる数値を指定することで日付を作ってくれます

DATE関数

8桁の中で、年、月、日、それぞれの引数に該当する部分を、LEFT関数、MID関数、RIGHT関数(関数の分類: 文字列操作)を使って取り出しています。これで西暦の8桁数値が本物の日付データになりました。

DATE関数

できあがったセルB2の日付データを、TEXT関数(関数の分類: 文字列操作)を使って、和暦の表示形式を指定して変換します。

  =TEXT(B2,"eemmdd")

TEXT関数の1つ目の引数[値]は変換前の数値、2つめの引数[表示形式]は表示形式を設定します。TEXT関数を使用すると、答えは文字列になります。

TEXT関数

上記の2つの式を1つの式で求める場合、TEXT関数の引数[値]に最初のDATE関数をネストします。

  =TEXT(DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2)),"eemmdd")

答えを和暦6桁の数値としたい場合は、上記の数式をVALUE関数(関数の分類: 文字列操作)の引数にして数値化します。VALUE関数は、引数の数字文字列を数値化します。

  =VALUE(TEXT(DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2)),"eemmdd"))

DATE関数

別の荒業な方法として、日付データが平成の期間だけしかないような場合は、西暦の年と和暦の年の差は1988ですので次の式でも和暦の6桁数値になります。

  =A2-19880000

ヘルプmemo

<TEXT関数 (文字列操作関数)>

 数値に指定した書式を設定し、文字列に変換した結果を返します。
 数式: =TEXT(値,表示形式)
 引数:
  値 …数値、数値が返る数式またはセル参照を設定
  表示形式 …表示形式を書式記号で文字列として設定

twitter hatena line pocket

関連ヘルプ

新規メールが開くハイパーリンクをまとめて設定するには 《HYPERLINK》
重複データを調べる 《COUNTIF》
設定されているリンクを保ちながら、行と列を入れ替えて表を貼り付けたい 《配列数式/TRANSPOSE》
VLOOKUP関数の結果がエラー値の場合には空白で表示させる 《IFERROR・IF・ISERROR》
0を抜いた最小値を調べるには 《MIN・SMALL・COUNTIF・IF》
3つ以上ある範囲に条件分岐するには(多分岐) 《IF》
データに連番をふる、同じデータには同じ番号 《INDEX・MATCH・COUNTIF・MAX》
規則性がない空白セルを除いた行に連番をふるには 《IF・COUNTA・COUNTIFS》
複数条件を満たすデータの件数を求めるには 《COUNTIF・COUNTIFS・SUMPRODUCT》
奇数行の合計、偶数行の合計、n行おきの合計を求める 《配列数式/IF・SUM・MOD》
時刻を5分単位で切り上げまたは切り捨てて表示するには 《CEILING・FLOOR・ROUNDUP》
参照式の参照セルが移動しても固定されるようにしたい 《INDIRECT》
VLOOKUP関数で、複数テーブルから検索したい 《VLOOKUP・アンパサンド》
2つのデータを比較し、他方にない(両方にある)データを探す 《VLOOKUP・COUNTIF》
OR条件に当てはまるデータの合計を求める 《SUMIF・SUMIFS・SUMPRODUCT・DSUM》