Excel で複数の年・月が別セルに書かれたものを統合して和暦にする（スピルを利用したり表示で元年の表記を使ったりも）

あるデータをまとめる作業をする際、以下の要件を求められることがありました。
そして、Excel では自分は基本的に和暦を使わないので、そのあたりの使い方も含めて進めた内容をメモ的な記事にしてみます。

- 要件
   - 元データは「年」と「月」が別セルに分かれている
   - まとめた後のデータは年月を和暦にする必要がある
      - ついでに「元年」の表記に対応
   - 複数のデータに対して上記の対応を行う必要がある

例えば、以下の緑で囲まれた部分を、以下の赤で囲まれた部分にするというものです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/9cda2ec3-88d3-ea2f-9541-e95a6b5789f5.png)

## 行った作業（必要な部分のみ抽出したもの）
上記の要件に従って行った作業について、以下に記載します。

### 今回の記事用に用意したデータサンプル
実際は、他にもあれこれデータ処理を行ったのですが、今回の趣旨から外れる部分なので、そのあたりは省略しています。

以下は、今回の記事用に作った仮のデータです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/97c098fd-6127-f4a4-b352-1fae3b315840.png)

### 手順
#### 年月日が書かれた日付の表記にする
まず、年と月を日付表示の表記にします。

それには `DATE()` を使います。
具体的には `=DATE(B3, C3, 1)` という形で、年と月のそれぞれの数字と数字の 1（※ 日付をひとまず仮に設定する）を引数に指定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/482d419a-6f98-6143-aa7f-3e8c01c0852e.png)

さらに、これを下の行にも適用していきます。

その際にスピルを使って、結果を縦方向に展開します。
上で書いていた内容を `=DATE(B3:B25, C3:C25, 1)` という「B3 ⇒ B3:B25」「C3 ⇒ C3:C25」という変更を加えた形にします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/138a9287-3f02-14a8-9ed8-90433e9e0a64.png)

これで、D3 にのみ入力をしていた結果が、D3 から D25 まで展開された形になります。

#### 和暦表示にする
その展開後の　内容の書式を、この後は和暦になるように変更していきます。

やることとしては、セルの書式設定を開いて、以下のように分類などを指定していきます。


まずはセルの書式設定を開いて、以下のように分類などを指定していきます。
赤い線・赤矢印で示した部分を、以下のようにしてから、右下の「OK」ボタンを押してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/d156363d-4be8-1685-84ad-3c351a13af2f.png)

その結果、以下の和暦の表示になったものが得られます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/a8331620-6e7e-ff58-f373-7c64a5a5d5e6.png)

上記のサンプルは、元年の表示が使われる例になっていなかったので、その部分を確認してみました。

以下のように、令和1年となる部分が令和元年という表記になっているのが分かります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/07b42c03-9ae8-82ab-37a9-11f8bb23911c.png)

#### 年月のみの表示にする
最後の仕上げで、年月のみの表示にします。

また、上記のセルの書式設定を開きます。
それから、「分類」の部分を「日付 ⇒ ユーザー定義」と変更します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/5e84ca05-7649-4ef2-f1fc-acaffe2d3614.png)

そうすると上記のように、「種類」の部分に `[$-ja-JP-x-gannen]ggge"年"m"月"d"日";@` という内容が入力された状態になります。

どうやら先ほど日付の表示方法を設定した際のフォーマットになるよう、「和暦で元旦を使う設定」や「年月日の表示フォーマットの指定」が入力された状態になっているようです。そこから、日付の部分を削ります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/2d880d63-4582-01ed-9ef8-7c0ea35a47aa.png)

上記の赤い線で示した部分が残るよう、 `d"日"` の部分を削除して、 `[$-ja-JP-x-gannen]ggge"年"m"月";@` という内容が残るようにします。

そうすると以下のように、和暦の年月のみが表示された状態となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/8b9ae856-8a52-f832-643d-a20a6d8a3671.png)

今回の内容は以上です。

#### 和暦表示と年月のみの表示を一気に対応する
上記の手順では、セルの書式設定の変更を複数回行いました。

もちろん、それを毎回たどる必要はなく、上の「[和暦表示にする](https://qiita.com/youtoy/items/2720377a88c0a35b5197#%E5%92%8C%E6%9A%A6%E8%A1%A8%E7%A4%BA%E3%81%AB%E3%81%99%E3%82%8B)」という手順のところでいきなり書式設定でユーザー定義を選択し、 `[$-ja-JP-x-gannen]ggge"年"m"月";@` という内容を入力して表示を変更しても大丈夫です。

## 参考
- [年・月・日が違うセルに分かれたExcelデータ、DATE関数で瞬時に計算](https://xtech.nikkei.com/atcl/nxt/column/18/00286/021100147/)
- [【EXCEL】業務を効率化できる！“スピル機能”の便利な使い方](https://coeure.co.jp/blog/excel/spill)
- [Excel(エクセル)で日付を令和などの和暦表示にする方法](https://curio-kumegawa.com/column-excel48/)
- [《表示形式》 日付の表示形式（和暦のカスタマイズ）｜Excel](https://www.helpforest.com/excel/1_cell/ex020005.htm)