ストアドプロシージャを2つのプロシージャに分割し、それぞれが別々のテーブルを返し、それらを異なるワークシートに呼び出すことをお勧めします。
SQLを使用してExcelにデータを返すにはさまざまな方法があります
Joshuaによるコードからの私のお気に入りは次のとおりです(パラメーターを使用する必要はありません):
-
Excelのリボンの[データ]タブを選択し、[外部データの取得]グループ内で[他のソースから]ドロップダウンを選択します。次に、[Microsoftクエリから]を選択します
-
[データソースの選択]ポップアップボックスで、SQL Serverを選択し、[OK]をクリックします。
-
必要に応じて、[テーブルの追加]ポップアップを閉じます。
-
[SQL]ボタンをクリックするか、[表示]> [SQL]を選択して、SQLポップアップエディタを開きます。
-
次の構文を入力します:{CALL myDatabaseName.dbo.myStoredProc(?、?、?)}
例:{CALL northwind.dbo.spGetMaxCost(?、?、?)}
callステートメントの前後に波状の中括弧を必ず含めてください。各疑問符(?)はパラメーターを示します。ストアドプロシージャが多かれ少なかれパラメータを必要とする場合は、必要に応じて疑問符を加算または減算します。
-
OKボタンを押します。 「SQLクエリをグラフィカルに表示できません。とにかく続行しますか?」という質問ボックスがポップアップ表示されたら、[OK]ボタンを押すだけです。
-
上記で含めた疑問符ごとに、サンプルパラメータの入力を求められます。クエリするデータの有効なパラメータ値を入力してください。
-
最後のパラメータを入力すると、MicrosoftQueryでいくつかの結果が返されます。見栄えがよい場合は、MicrosoftQueryを閉じます。
-
これで、「データのインポート」ポップアップが表示されます。 [プロパティ]ボタンをクリックすると、[接続のプロパティ]ポップアップが表示されます。
-
「定義」タブを選択してから、「パラメーター」ボタンを選択します。これで、「パラメータ」ポップアップが表示され、パラメータを特定のセルに接続できます。
-
[次のセルから値を取得]を選択し、矢印の付いた小さなボックスをクリックして、パラメータを保持するExcelの適切なセルに接続します。
-
パラメータを含むセルを変更するたびにデータを更新する場合は、[セルの値が変更されたときに自動的に更新する]チェックボックスをオンにします
-
他のパラメータについては、上記のように続けます。終了したら、[OK]をクリックして、[接続のプロパティ]ポップアップに戻ります。 [OK]をクリックして[データのインポート]ポップアップに戻り、もう一度[OK]をクリックします。
-
これで、ストアドプロシージャから直接データが得られるはずです。
最終的には次のような接続情報になります:
接続情報
そして、シートのパラメータを使用する場合、私の例では