Salesforce
PowerQuery

【初心者向け】SalesforceのオブジェクトをエクセルのPowerQueryで表示

Salesforceのオブジェクトをエクセルで見たいという要望がお客様から出たのと、自分でもパッとオブジェクトの中身を確認したいことがあったので、それのメモです。

今回やりたいこと

・SFDCのオブジェクトをエクセルのPowerQueryで表示する

環境

Windows10 64bit
Excel 2016

PowerQueryの注意点

PowerQueryは2013からがサポートされています。Excel 2013の場合はこちらからDLしてください。
2016の場合はデフォルトで入っています。
本記事は2016での使い方を記事にしています。基本的な使い方は同じですので、問題はないと思います。

PowerQueryの使い方

データ>データの取得>オンライン サービスからでSalesforce オブジェクトからを選択します。
image.png
URLを指定されるので、運用環境(本番)かカスタムかを選択してください。
Sandboxの場合はカスタムで以下を指定してください。
https://test.salesforce.com/
image.png
Salesforceのログイン画面が表示されるのでログインし、ナビゲーターの画面で表示したいオブジェクトを選択して、読み込みを押してください。
image.png
シートが追加され、選択したオブジェクトが表示されます。
image.png

クエリの編集画面を開く

クエリと接続で右クリック>編集でクエリエディタを開きます。
image.png

表示する列を選択する

クエリエディタ画面で列の選択をクリックして、表示したい列を選択します。
image.png

表示する行を選択する(フィルタ、Where)

クエリエディタ画面で列にある矢印をクリックして、表示したい行を選択します。
image.png

列の名前を変更する

クエリエディタ画面で列名をダブルクリックして変更します。
image.png

クエリの条件を再修正する

ここがちょっとややこしいです。今回で例では上の3つをやった後で、やっぱり列を追加したいということになったとします。
クエリエディタを開くと以下のような状態であるとします。
image.png
右の適用したステップで削除されたほかの列をダブルクリックして、列を追加します。
image.png

複数のオブジェクトを結合したい(Join)

今までの話は1つのテーブルで完結していました。ですが実際には複数のオブジェクトから値を取りたいということがあると思います。今回は「Apex トリガ」オブジェクトの「作成者ID」に「ユーザ」オブジェクトを紐づけて「Username」を表示するようにします。

  • データ>データの取得>オンライン サービスからでSalesforce オブジェクトからを選択します。
    image.png

  • ナビゲーターで複数のアイテムの選択にチェックを入れて、「Apex トリガ」オブジェクトと「ユーザ」オブジェクトを選択し、編集ボタンを押します。
    image.png

  • クエリエディターでApex トリガを選択した状態で、クエリのマージをクリックします。
    image.png

  • マージ画面が表示されるので、Joinしたい「ユーザ」オブジェクトをドロップダウンから選択します。
    image.png

  • 結合したい列を選択し、結合の種類を選択します。結合の種類は今回は左外部(Left Join)とします。
    image.png
    一番右側にテーブルが結合されます。
    image.png

  • ユーザの右にあるボタンを押すと、列を選択できるので必要があれば抽出します。
    image.png

PowerQueryをマクロ(VBA)で使用する

追記予定です。しばらくお待ちください。