はじめに
カレンダーを作成している際など、Excel で祝日の名称を自動的に表示させたい場合があります。
内閣府のサイトには当年分しかなく、取り込むのもVBAを使用する必要があり手間がかかります。
カレンダーなどから祝日リストを取得してVLOOKUPで表示する方法もありますが、定期的なメンテナンスが必要となるため、できるだけ自動化したいものです。
このような場合に、関数でインターネット上から簡単に祝日名を取得する方法を紹介します。
完成形
完成形として、このような表を作成します。
手順
- まず雛形として以下のような表を作成します。
※ なお、A列の書式設定は次のように設定してあります。 「yyyy/m/d(aaa)」としておくことで曜日を表示できます。
表示形式 | 表示例 | |
---|---|---|
曜日 | aaa | 月 |
曜日 | aaaa | 月曜日 |
曜日 | ddd | Mon |
曜日 | dddd | Monday |
- B2に以下の関数を入力する
B2に以下の関数をコピーして貼り付けてください
=WEBSERVICE("http://api.excelapi.org/datetime/holiday?date="&A2)
- オートフィルで下部までフィル
これで完成です。
とても簡単ですね。
必要に応じて範囲を広げれば日付に応じて祝日が返されます。
解説
http://api.excelapi.org/datetime/holiday?date=44197 にアクセスすると「元旦」という祝日名が返ってきます。
WEBSERVICE 関数は、Webサイトから取得したデータをExcelのセルに表示する関数のため、=WEBSERVICE("http://api.excelapi.org/datetime/holiday?date="&A2)
とすることで、A2 の日付の祝日名をB2に表示しています。
なお、「44197」はエクセルが内部で日付を管理するために使用している数値で、「シリアル値」と呼ばれています。
使用時は特に留意する必要はありませんが、内部的にはこのようになっています。
WebAPI の詳細については祝日の名称をご確認ください。
この祝日機能は自動的に計算されており、特別な祝日が制定された際にもメンテナンスされています。