shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Power Query】WebページからデータをExcelに読み込む事例(kintoneのAPI連携)

Power Queryで、WebページからデータをExcelに読み込む事例です。kintoneのREST APIを使用し、PowerQueryでkintoneに登録されたレコードをExcelで読み込み、使い慣れたExcelで集計やグラフ化ができるようにします。

内容:

アウトプットイメージ

PowerQueryにより「指定したkintoneアプリに登録のデータ一覧」をExcelで表示します。設定後は「更新」ボタンをクリックで、都度データが読み込まれます。

PowerQueryでExcelのシートに取り込みをしている

Webページ(kintone)のレコードをExcelに取り込むイメージ

前提条件

なお、確認のExcelは「Microsoft® Excel® for Microsoft 365 MSO」(バージョン2406)です。

kintoneのREST APIを利用するには「スタンダードコース」の契約が必要です。

また、kintoneのREST APIの仕様は次のとおりです。一度に取得できるレコードは、500件までなど、制限事項があります。cybozu.dev

実施手順

以降の手順は、Excel 2016やPower BIからkintoneのレコードをREST APIで取り出す - アールスリーインスティテュート |R3 Institute の情報を参考にさせていただき、PowerQuery部分の手順で「Table.FromRecords」を用いた方法です。

1.PowerQueryで「データの取得」-「Webから」の設定

PowerQueryで「データの取得」-「Webから」の設定で、詳細設定の画面とし、「URL部分」「HTTP要求ヘッダー パラメーター」を次のように設定します。

  • HTTP要求ヘッダー パラメーター
    ヘッダー部分: X-Cybozu-API-Token
    パラメーター部分:APIトークン
    参考: 認証 - cybozu developer network

 

URL部分、HTTP要求ヘッダー パラメーターを設定している

PowerQueryで「データの取得」-「Webから」の設定例

上記の結果、次のようにソースが読み込まれた画面になります。

Json.Documentで、JSONドキュメントが取得され、recordsにListがある

JSON ドキュメントの取得

2.Table.FromRecordsで、ソース[records]からテーブル作成

上記の「JSON ドキュメントの取得」の画面で、[records]のListをクリックし、必要な値を取得していくことは可能です。

この事例は、ステップを省略する方法として、Table.FromRecordsを使用します。

取得したkintoneのJSONドキュメントは、ソース[records]のListにあるRecordに欲しい情報があるため、「後にステップの挿入」により、

Table.FromRecords(ソース[records])

のステップを追加する。

上記の結果、次の状態となります。

kintoneのフィールドと、Recordの一覧が表示されます

Table.FromRecords(ソース[records])のステップ挿入後

3.必要な列のみ残し、列の並び替え

PowerQueryの「ホーム」タブで、「列の削除」-「他の列の削除」を使用するなどして、Excelに表示したい列のみ残します。また表示したい順番に応じて列を並び替えします。

「他の列の削除」で必要な列のみ残しています

必要な列のみ残した状態

4.各列を一つずつ展開し、valueを表示する

各列のデータがRecordのままであるため、各列を一つずつ展開し、valueを表示し、値そのものを表示します。

typeのチェックを外し、valueのみチェックします。

各列を一つずつ展開し、valueを表示する設定イメージ

以上で設定完了です。PowerQueryの設定完了の状態は次のとおりで、kintoneのデータが取得できています。

各列に値が表示された状態になっている

PowerQueryの設定完了

補足説明

Table.FromRecordsの説明

この事例は、ステップを省略する方法として、Table.FromRecordsを使用し、レコードのリスト records をテーブルに変換しました。詳細は以下をご覧ください。

learn.microsoft.com

なお、JSONを取り込む他の事例を以下に記載しています。

shikumika.org

kintoneの列の名前表示について

kintoneのREST APIの列名については、「フィールドコード」の値が使用されています。

kintoneのアプリ設定で、必要に応じてわかりやすい名前に変更しておくと、設定も容易となります。

フィールドコードの値がJSONで取り込まれている

kintoneのフィールドの設定画面イメージ

以上、Power Queryで、WebページからデータをExcelに読み込む事例(kintoneのAPI連携)でした。