クエリを削除する


「分かってる人には簡単なことなんだけど、ビギナーって意外とこういうところで悩むんだよね」シリーズです。たとえば、Power Queryで何かのデータを読み込んだとします。

今回、データの内容とかは関係ありません。ああ、ちなみに読み込んだのは「C:\Work\Sample.csv」です。さて、このようにPower Queryで何かのデータを読み込むと、いま操作しているExcelのブックと、元のファイル(ここではC:\Work\Sample.csv)が関連付けられます。したがって、もし元のファイルが削除されたり、ファイルの名前が変更されたり、ファイルが保存されているフォルダの名前が変更されたり…などなど、元のファイルにアクセスできなくなった場合、ブック内のクエリを更新しようとするとエラーになります。

なお、話を簡単にするため、今回は元のファイルがパソコンのCドライブにありました。もしこれが、企業内で使われている共有フォルダとか、自分だけがアクセスできるクラウドのストレージなどに保存されているとしたら。このブックを第三者に渡したときも、同じようにエラーとなります。これ、困りますよね。Power Queryでデータを扱いたい。でも、それが終わったら、クエリを削除して、関連付けを解除したい。そういう運用って、ごく普通です。では、クエリを削除するには、どうしたらいいのでしょう。

まず認識していただきたいことは、Power Queryで作成したクエリは、ブックの中に情報として保存されるということです。Power Queryのセミナーでも、ときどき質問されます。「作成したクエリって、どこに記録(保存)されるんですか?」って。クエリ内に記録されている「元データとExcelブックとの関連付け」に関する情報は、ブックごとに保存されます。セルに入力した数値や計算式などが、ブック内に保存されて、次回Excelで開いたときに再現されるのと同じです。なので、「元データとExcelブックとの関連付け」を解除するには、ブックからクエリを削除すればいいです。

なお、本稿では「クエリ」とか「接続」とか「リンク」とか、意味の似たような言葉がたくさん出てきます。正確な意味はともかく、本稿では次図のように定義します。

クエリ」とはPower Queryで作成される「元データとExcelブックとの関連付け」に関する情報です。いわば"元データ"と"Excelブック"の"橋渡し役"みたいな中核的存在です。
その「クエリ」には、どのフォルダにあって、何という名前で、どんな形式の元データを扱うのかという情報が記録されています。それがなかったら、何もできませんからね。そうした「クエリ」と「元データ」を繋ぐところを「接続」と呼びます。
「クエリ」の中には、元データをどのように加工するかという操作手順も記録されています。しかし、それだけでは画面に表示されません。「クエリ」が取り決めた"こういう形式の表にしてください"という最終結果を、ワークシート上にテーブルとして展開することを「リンク」とします。このへんの用語って、コマンドの名称や、機能の解説などによって曖昧に使われます。なぜ、用語が曖昧に使われるのかというと、重要なことは用語ではなく、それがどんな仕組みなのかというイメージだからです。本稿を読む皆様も、くれぐれも用語にこだわらないでくださいね。

さて、クエリを削除するには「Excelの画面で削除する」方法と「Power Queryエディタの画面で削除する」方法があります。どちらも同じ結果になりますので、今回は「Excelの画面で削除する」方法をご紹介します。クエリが存在しているブックをアクティブブックにすると、Excel画面の右端に[クエリと接続]ペインが表示されます。

表示されていない方は、[データ]タブ[クエリと接続]グループの[クエリと接続]をクリックしてください。

[クエリと接続]ペインには、そのブック内に保存されているクエリの一覧が表示されます。ここで、削除したいクエリを右クリックして、表示されるメニューから[削除]をクリックします。

あるいは、削除したいクエリを選択して、Deleteキーを押しても削除可能です。いずれにしても、削除しようとすると次の確認画面が表示されます。

削除するときは[削除]ボタンをクリックしてください。

勘違いされる方が多いのですが、クエリを削除するということは、いわば「関連付けの情報」だけを削除するようなものです。そのクエリによって、すでにワークシート上に読み込まれているデータまで消えてなくなってしまうのではありません。読み込んだデータは、そのまま"セルに入力されている値"として残ります。

余談ですが、Power Queryで読み込んだデータはテーブル形式になるのですが、上図のように緑系の装飾が設定されます。もし、この緑系装飾をクリアしたいのでしたら、テーブル内にアクティブセルを移動して、[テーブルデザイン]タブ[テーブルスタイル]グループのリストを開いて、左上にある「なし」を選択してください。

さて、Excelの画面でクエリを削除する方法は、ほかにもあります。実はリボンにボタンが用意されているんです。ただ、似たようなボタンが2つありますので、それぞれ意味と動作を解説します。Power Queryで読み込んだテーブル内にアクティブセルを移動すると、リボンに2つのタブが表示されます。[テーブルデザイン]タブと[クエリ]タブです。

[クエリ]タブには、先ほどご紹介した[クエリと接続]ペインの右クリックメニューと似たようなコマンドが用意されていて、ここにも「クエリの削除」ボタンがあります。

このボタンをクリックすることで、アクティブセルのあるテーブルとリンクされているクエリを削除できます。さて、もうひとつの[テーブルデザイン]タブの[外部のテーブルデータ]グループに[リンク解除]ボタンがあります。これは、ここまで解説した「クエリの削除」ではありません。[リンク解除]の"リンク"とは、テーブル - クエリ間のリンクです。

ここでいう「リンク」は、クエリが外部ファイル(ここではC:\Work\Sample.csv)と"リンクしている"という意味ではなく、このテーブルはこのクエリと"リンクしている"ということです。クエリによって、外部データを取得し、それがワークシートに読み込まれます。クエリが更新されれば、当然ワークシート内のセルも自動的に更新されます。これが今回の「リンク」です。リボンの[リンク解除]ボタンをクリックすると、次の確認が表示されます。

この操作が、今までのような「クエリの削除」ではないということは、表示されているメッセージからも読み取れます。「シートから完全に削除されます」と書かれていますが、クエリというのはブック単位で保存されるものです。もし、この操作が「クエリの削除」であるなら、ここは「ブックから削除されます」と表さなければおかしいです。クエリはシート単位で保存されているのではないのですから。ということは、ここで削除されるのはクエリではなく、そのクエリとテーブル間の繋がり(リンク)です。書かれている「クエリ定義」というのが、それを表しているのだと思います。このクエリによって、これこれ、こういう状態のテーブルにしますよ…という定義です。

[リンク解除]を実行すると、テーブルとクエリ間のリンクが解除されます。テーブルは、クエリに依存しない独立したデータとなります。ここで重要なことは、この操作が「クエリの削除」ではないということ。そう、クエリ自体は削除されません。削除されずに残ったクエリは、今はどのテーブルともリンクされていないのですから、新しく、任意のテーブルに再リンクすることが可能です。だから「接続専用」となっています。

"リンク"とは何か、"接続"とは何かという、単語の意味を正確に理解しようとすると、ものすごく難しい概念になりますし、一般のExcelユーザーはそこまで理解する必要はありません。それぞれが、どういう状況で、その操作によってどうなるのかといった、イメージを重視してください。