R5(令和5年)やH15(平成15年)のように、和暦の年号をS、H、Rなどのアルファベットで示す場合もある。今回は、こういった年表記を「西暦の数値」に換算する方法を紹介していこう。また、今回の内容に関連する話として「文字列を操作する関数」の使い方も覚えていくとよい。Excelには、文字列を操作する関数が幅広く用意されている。
H15のように記された「平成の年」を西暦に換算
今回は「関数REPLACE」を使って、R5(令和5年)などの年表記を「西暦の数値」に換算する方法を紹介していこう。そのほか、文字列データを数値データに変換する「関数VALUE」、日付データから年だけを取り出す「関数YEAR」なども使い方次第で便利に活用できる。あわせて覚えておくと役に立つだろう。
ここでは、会員の「氏名」と「登録年」をまとめた表を使って具体的な操作手順を示していこう。この表には「登録年」のデータがH15(平成15年)やH3(平成3年)といった形式で記録されている。このままでは少しわかりづらいので、これらの年表記を「西暦の数値」に換算してみよう。
平成X年を西暦に換算するときは、X年に1988年を足し算してあげればよい。ただし、現時点では「H15」などのデータが「文字列」として扱われているため、そのまま計算しようとするとエラーが発生してしまう。
このような場合は「H」の文字を削除して「数字だけのデータ」に変更してあげると、計算を実行できるようになる。文字を削除する方法は色々と考えられるが、今回は文字を置き換える関数「REPLACE」を使ってみよう。
関数REPLACEを使用するときは、以下のような書式で関数を記述する。第1引数には、置換前の「文字列データ」をセル参照などで指定する。続いて、第2引数以降で「置き換える文字」を指定していく。
◆関数REPLACEの書式
=REPLACE(文字列, 開始位置, 文字数, 置換文字列)
関数REPLACEは、「N文字目」から「M個の文字」を「置換文字列」に置き換える、という形式で置き換える文字を指定する仕組みになっている。
今回の例のように「最初の1文字」を削除したい場合は、「1文字目」から「1個の文字」を「空文字」に置き換える、と指定すればよい。よって、以下の図のように関数REPLACEを記述する。
「Enter」キーを押して関数を実行すると、最初の1文字(H)が削除されて、数字だけのデータになることを確認できる。
このデータは「H15」の文字列から「H」を削除したデータになるため、現時点ではまだ「文字列データ」として扱われている。このため、データは「左揃え」で配置されている。
一般的に「文字列データ」は計算できないため、「+」(足し算)や「*」(掛け算)などの演算記号で計算しようとするとエラーが発生してしまう。ただし、「文字列」を「数値」とみなせる場合は例外となる。この場合は、Excelが自動的に「文字列」→「数値」の型変換を行ってくれるため、そのまま数式を記述しても構わない仕様になっている。
今回の例の場合、関数REPLACEで「H」を削除すると「15」という文字列データになる。このデータは「数値」とみなせるため、文字列データであってもそのまま計算することが可能だ。よって、以下のように数式を記述してもエラーは発生しない。
あとは、この数式をオートフィルでコピーするだけ。これで全データの「登録年」を「西暦の数値」に換算できる。
このように「数字以外の文字」を削除することで、「文字列」を計算可能なデータに変更する手法もある。単位付きの数字(文字列データ)を計算したい場合にも応用できるので、その仕組みをよく理解しておくとよいだろう。