年を西暦とする場合と和暦とする場合に分けて紹介します。
西暦の年月を抽出する方法
TEXT関数を使う方法
次の画像では、B列に記録されている日付の値から、年月の部分だけを文字列として抽出しています。
C3セル(下方にフィルコピー)
=TEXT(B3,"yyyy/m")
TEXT関数の第2引数(表示形式)を「"yyyy/m"」とすることで年を4桁、月を1桁ないし2桁で表示させ、区切り文字を「/」としています。
次の画像ではさらにE3セルに「=DAY(C3)」と入力しています。
結果は「1」となっています。このように、年月を表す文字列はその月の1日の日付とみなされます。
ただしこれは年月を西暦の形で抽出した場合のみで、下記の例のように和暦として抽出した場合は日付とみなされません(この式はエラーとなります)。また、次の画像の右側のように「'84/10」のように抽出した場合も日付とみなされません。
次の画像では年,月をいずれも2桁に固定しています。右側では先頭に「'」をつけ、2桁の西暦であることをわかりやすくしています。
画像の左側のC3セル(下方にフィルコピー)
画像の右側のC3セル(下方にフィルコピー)
=TEXT(B3,"yy/mm") =TEXT(B3,"'yy/mm")
「yy」により年の値を2桁に固定、「mm」により月の値を2桁に固定できます。
YEAR/MONTH関数を使う方法
ここでは日付から年の値を取り出すYEAR関数と、月の値を取り出すMONTH関数を組み合わせて年月の文字列を抽出しています。
結果は最初の画像の例と同じです。
C3セル(下方にフィルコピー)
=YEAR(B3)&"/"&MONTH(B3)
数字の桁数を固定する場合はさらにTEXT関数を組み合わせる方法が考えられますが、上記例のようにはじめからTEXT関数を使った方が早いです。
和暦の年月を抽出する方法
次の画像では、B列に記録されている日付の値から、年月の部分を文字列として抽出しています。
ただし年の部分は和暦としています。
C3セル(下方にフィルコピー)
=TEXT(B3,"ggge年m月")
TEXT関数の第2引数(表示形式)を「"ggge年m月"」とすることで元号を漢字で表示、年を1桁ないし2桁、月も1桁ないし2桁で表示させています。
元号については「g」とすると英字1文字(S,H,Rなど)、「gg」とすると漢字1文字(昭,平,令など)になります。もちろん区切り文字も自由に変えられます。
次の画像では元号を英字1字、区切り文字を「.」とする簡単な表記の文字列を抽出しています。
C3セル(下方にフィルコピー)
=TEXT(B3,"ge.m")
次の画像では年,月をいずれも2桁に固定しています。
C3セル(下方にフィルコピー)
=TEXT(B3,"gggee年mm月")
「ee」により(和暦の)年の値を2桁に固定、「mm」により月の値を2桁に固定できます。
次の画像では「1年」を「元年」として表示させています。
C3セル(下方にフィルコピー)
=TEXT(B3,"[$-ja-JP-x-gannen]ggge年m月")
ちょっと複雑ですがこのような引数の指定により、「1年」を「元年」にすることができます。
次の画像でも「1年」を「元年」としています。
バージョンによっては1つ上の例のような引数が使えませんので、そのときはこちらを試してみてください。
C3セル(下方にフィルコピー)
=IF(TEXT(B3,"e")="1", TEXT(B3,"ggg元年"), TEXT(B3,"ggge年"))&TEXT(B3,"m月")
改行(Alt+Enter)はなくても構いません。
日付を和暦の年のみの値に変換してみて「1」だったら「元年」と表示させています。
最後に、年が2つの元号にまたがる場合に、一方の元号に統一して表示させる例です。
1989年は日付により昭和64年と平成1年に、2019年は平成31年と令和1年に分かれますが、それらを「平成1年」「令和1年」に統一しています。
C3セル(下方にフィルコピー)
=TEXT(DATE(YEAR(B3),12,31),"ggge年")&TEXT(B3,"m月")
最初のTEXT関数ではその年の12月31日の日付を生成してその日における元号と年を取得しています。2番目のTEXT関数では月を取得し、&でつないでいます。
DATE関数の第2、第3引数をともに「1」にすれば、その年の1月1日時点の元号と年に統一されます。