今回はエディタを開かないまま、セルの値を変更するだけで「クエリからの読込内容」を変更する方法を解説します
![](https://analytic-vba.com/wp/wp-content/uploads/2021/02/Change-Cell.gif)
前回は、セルの値を「名前」にて設定し、詳細エディタ画面でコードに組み込みました
今回は、ドリルダウンという方法を活用します
日本語のドリルダウンと意味合いが少し違います
これはPower Queryの特徴的な処理であるとともに、M言語の分野にまで踏み込む処理でもあります
詳細については後程解説します
今回解説する方法は、前回のように詳細エディタでコードを書かない分、処理は楽です
大きく分けて、2つの処理(①②)を行うだけです!
まず、変更するセルの値をクエリにする際、クエリを「①ドリルダウン」します
次に読み込みの変更を行うクエリを開きます
そして、ドリルダウンした「クエリ名」をPower Queryエディタの「②数式バーにて組み込み」をすれば処理は終了です
なお、今回使うデータは2つの表から構成されます
1つは元データです
こちらが、上の②の処理の対象です
![](https://analytic-vba.com/wp/wp-content/uploads/2021/02/image-41.png)
こちらのデータは、クエリに変換して「I列」にも読み込んでおきます
![](https://analytic-vba.com/wp/wp-content/uploads/2021/02/image-47.png)
もう1つは、製品をフィルタリングする為のリストデータです
こちらが上の①の対象になります
![](https://analytic-vba.com/wp/wp-content/uploads/2021/02/image-42.png)
こちらのセルの値を変更して、クエリからの読み込み内容を変更します
ちなみに、このセルの値は3つの値から選択できるようになっています
![](https://analytic-vba.com/wp/wp-content/uploads/2021/02/image-43.png)
では、本格的な解説をはじめます
目次
1.リストのドリルダウン
まずはリストが設定されているセルをテーブルにし、エディタを開きます(事前にテーブル名:Productを設定しています)
![](https://analytic-vba.com/wp/wp-content/uploads/2021/02/image-35.png)
では、冒頭に紹介した①ドリルダウンの処理をします
次のGIF画像のように「右クリック」した後に、「ドリルダウン」を選択します
![](https://analytic-vba.com/wp/wp-content/uploads/2021/02/DrillーDown.gif)
上のGIF画像の数式バーにも注目してください
下の画像は、ドリルダウン前の時点での「数式バー」の表示です
![](https://analytic-vba.com/wp/wp-content/uploads/2021/02/image-39.png)
エディタを開いた時、製品別の列がテキスト型に自動変換されていました
この自動変換は、次の画像の箇所で設定されています(こちらの画面はファイル⇒クエリ設定⇒クエリのオプション、で開きます)
![](https://analytic-vba.com/wp/wp-content/uploads/2021/02/image-38.png)
ドリルダウンを行うと、次の画像の数式が表示されます
![](https://analytic-vba.com/wp/wp-content/uploads/2021/02/image-44.png)
この{0}は「自動で変換された型」の1行目という意味になります
つまり「1行のリストデータに変換した」という意味になります
試しに、3行を読み込んでドリルダウンしてみてください
2行は削除され、1行の内容に再変換されます
では、次に読み込み処理を行います
読込先は「接続専用」を選択してください
![](https://analytic-vba.com/wp/wp-content/uploads/2021/02/image-45.png)
2.ドリルダウンの組み込み処理
では、次に元のデータのクエリをエディタで開きます
![](https://analytic-vba.com/wp/wp-content/uploads/2021/02/image-46.png)
製品別のところは、1つの値でフィルターをかけます
1.でドリルダウンした際、リストが「乗用車」になっています
セルの値を基にしてフィルタリング内容が変更になっていることが、後で明確に分かるように「軽自動車」でフィルタをします
![](https://analytic-vba.com/wp/wp-content/uploads/2021/02/image-48.png)
上の画像の数式バーに注目してください
フィルタの内容が反映されています([製品別]=”軽自動車“)
こちらに、1.でドリルダウンしたクエリの名前(Product)を組み込みます
![](https://analytic-vba.com/wp/wp-content/uploads/2021/02/image-45.png)
詳細エディタは開かずに、次のGIF画像のように「クエリ名」を数式バーに直接組み込んでください
![](https://analytic-vba.com/wp/wp-content/uploads/2021/02/Editor-Drill.gif)
数式バーを編集すると、製品別のフィルタ内容がエクセルシートのリスト内容に変更されている(軽自動車⇒乗用車)のが分かると思います
これで読込処理を行えば、処理は終了です
![](https://analytic-vba.com/wp/wp-content/uploads/2021/02/image-49.png)
<まとめ>
今回はドリルダウンという手法を使用して、セルの値の変更を「クエリの読込処理の変更」に自動で反映できるようしました
ドリルダウンは右クリックするだけで、処理が可能な単純な処理ですが、意味合いが少し難解です
エクセルの表にあるデータは、Accessなどと違い、非構造化データです
ドリルダウンした時には、「リストとして利用するための構造化が行われている」と割り切って理解した方がいいかもしれませんね
今回は以上です
長文に最後までお付き合い頂き、誠にありがとうございました
参考までに今回の内容を反映したエクセルファイルを添付します
ではまた次回!
![にほんブログ村 資格ブログ ビジネススキルへ](http://qualification.blogmura.com/businessskill/img/businessskill88_31.gif)
![にほんブログ村 IT技術ブログ VBAへ](http://it.blogmura.com/vba/img/vba88_31.gif)