エクセルで作成した団体職員の管理台帳があるが、生年月日が和暦年・月・日で別々のセルに登録されている。これを西暦年月日の一つのデータに変換したいとの話がありました。
1.西暦への変換
知り尽くされていることですが、
・明治の場合、和暦数+1867
・大正の場合、和暦数+1911
・昭和の場合、和暦数+1925
・平成の場合、和暦数+1988
で、西暦に変更します。
幸いなことに元号が省略アルファベットで一つのセルに入力されているとのことなので、IF関数を使って判断します。このとき、和暦の元号は、
・明治の場合、M
・大正の場合、T
・昭和の場合、S
・平成の場合、H
で入力されているとのことです。
ここで使うサンプル・データは、
・元号; C5
・年 ; D5
・月 ; D6
・日 ; D7
従って、和暦年を西暦年に変換する式は、
if(c5="M",d5+1867,if(c5="T",d5+1911,if(c5="S",d5+1925,if(c5="H",d5+1988," "))))
となります。(M・T・S・Hに該当しなければ空白を返す指定です。)
2.別々のセルのデータを一つに連結する
別々のセルに入力されたデータは、以下の式で一つのデータに連結することができます。
=データA&データB データが文字列の場合は、「“”」で囲みます。
3.「/」で区分された西暦年月日に変換する式
上記「1、2」を組み合わせて、以下の式を立てます。
=if(c5="M",d5+1867,if(c5="T",d5+1911,if(c5="S",d5+1925,if(c5="H",d5+1988," ")))) &"/"&d6&"/"&d7
また、M、T、S、H以外の文字が入力されていた場合は、ブランク表示します。
このため、和暦の元号がM、T、S、Hの場合のみ計算し、それ以外の場合「ブランク」を返すよう、IF関数とOR関数を組み合わせた式を立てます。
=if(or(c5="M",c5="T",c5="S",c5="H"),(if(c5="M",d5+1867,if(c5="T",d5+1911,if(c5="S",d5+1925,if(c5="H",d5+1988))))&"/"&d6&"/"&d7)," ")
因みに、明治5年(1872年)までは陰暦が使用されており、新暦(グレゴリオ暦-太陽暦)は明治6年(1873年)1月1日(旧暦の明治5年12月2日の翌日)水曜日から適用されました。
各年号の期間は以下の通りです。
明治;1868年1月25日(土)(明治元年1月1日)~1912年7月29日(月)
大正;1912年7月30日(火)~1926年12月24日(金)
昭和;1926年12月25日(土)~1989年1月7日(土)
平成;1989年1月8日(日)~
最新の画像[もっと見る]
- 干支と人柄 2年前
- 干支と人柄 2年前
- 販売予約ポスター 2年前
- 天気予報と木枯らし 2年前
- 皆既月食と惑星食 2年前
- Microsoft office2019がひらかない 2年前
- Microsoft office2019がひらかない 2年前
- Microsoft office2019がひらかない 2年前
- Microsoft office2019がひらかない 2年前
- 還暦とは 2年前