Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

Power Queryで動的に変わる列ヘッダーを管理する方法:実践ガイド

実際の業務では、元のデータソースを頻繁に更新することが多く、その過程でPower Query内の列ヘッダーを少し変更することも少なくありません。しかし、Power Queryでヘッダーを変更すると、エラーが表示されることがあります。この問題への対処法をお探しの方にとって、本記事は役立つはずです。ここでは、Power Queryでヘッダーが変化するテーブルに対処する方法を、わかりやすい解説とともに紹介します。

Power Queryでヘッダーが変わるとエラーになる問題

通常、私たちが扱うデータソースには列ヘッダーが付いています。そこからPower Queryを作成すると、元のテーブルの列ヘッダーがそのままPower Queryテーブルの列ヘッダーとして引き継がれます。データを挿入した場合も、列ヘッダーごと自動的に更新されます。

ところが、Power Query内で手動で列ヘッダーを変更した後、しばらくして元のデータソース自体のヘッダー名が変わると、エラー表示が出ることがあります。これは大きな問題ですが、実は明確な理由があります。

具体例を見てみましょう。データソースからサンプルのPower Queryを作成しました。ここで2番目の列ヘッダーは「Category」です。次に、Power Query内でこの「Category」を「Type」に変更し、テーブルを新しいワークシートに読み込みます。

ここからが問題の領域です。元のテーブル側でヘッダー名を「Category」から「Type」に変更し、Power Queryテーブルを更新してみてください。

Power Queryで動的に変わる列ヘッダーを管理する方法:実践ガイド

  • ソースデータを更新しようとすると、エラー表示が現れます。

Power Queryで動的に変わる列ヘッダーを管理する方法:実践ガイド

  • その原因は、ヘッダー名の変更時に生成されたMコードにあります。コードは以下のようになっています。

Power Queryで動的に変わる列ヘッダーを管理する方法:実践ガイド

  • 注意深く観察すると、「Category」という単語が完全にハードコードされていることが分かります。つまり、このコードは列ヘッダーの中から「Category」を検索し、それを「Type」に置き換える動作をします。
  • しかし後の段階で元の列ヘッダー名を変更したため、このコードは列ヘッダーの中に「Category」を見つけられません。その結果、エラーが発生したのです。

本記事では、ソースデータセット側の列ヘッダー名の影響を排除する方法を解説します。これにより、ユーザーはPower Query内で自由にヘッダータイトルを選択できるようになり、列ヘッダー名が変わってもエラーは発生しなくなります。

Power Queryでヘッダーが変化するテーブルへの対処:クイックステップ

ここまで、前述のエラー警告を回避する方法について詳しく説明してきました。この警告があると、元のデータソースの更新が妨げられてしまいます。本記事の手順に従えば、好きな列ヘッダーを使ってデータセットを更新できるようになります。

ステップ1:Power Queryテーブルを作成する

問題の解決に入る前に、まずPower Queryテーブルを作成しましょう。

  • まず、データセットから新しいPower Queryテーブルを作成します。
  • そのために、セル範囲「B4:F23」を選択し、「データ」タブから「テーブル/範囲から」をクリックします。

Power Queryで動的に変わる列ヘッダーを管理する方法:実践ガイド

  • 「テーブル/範囲から」をクリックすると、Power Queryテーブルが表示された新しいウィンドウが開きます。
  • このPower Queryテーブルには、元のデータソースと同じ列ヘッダーがすべて含まれています。
  • Mコードも画面上部のバーに表示されています。

Power Queryで動的に変わる列ヘッダーを管理する方法:実践ガイド

ステップ2:ヘッダー名を変更してテーブルを読み込む

次に、ヘッダー名を変更し、テーブルを新しいシートに読み込みます。

  • 「Category」の列ヘッダーをダブルクリックし、編集ウィンドウに「Type」と入力します。
  • 同時に、Mコードも変更されていることが確認できます。
  • このMコードは、列ヘッダーの中から「Category」という単語を検索し、それを「Type」に置き換えることを意味しています。
  • この一連の操作はステップとして記録され、「名前が変更された列(Renamed Columns)」で確認できます。

Power Queryで動的に変わる列ヘッダーを管理する方法:実践ガイド

  • 続いて、「ホーム」タブの「閉じて読み込む」をクリックします。

Power Queryで動的に変わる列ヘッダーを管理する方法:実践ガイド

  • しばらく待つと、変更後のヘッダー名とともに、Power Queryテーブルが新しいシートに読み込まれていることが分かります。

Power Queryで動的に変わる列ヘッダーを管理する方法:実践ガイド

ステップ3:先頭行を降格させ、最初の行の名前を変更する

すでに説明したとおり、元のソース側のヘッダー名を変更してからテーブルを更新しようとすると、エラーが返されます。

  • 元のデータセットで、「Category」の代わりに「Type」を入力します。
  • 次に、「クエリ」タブの「更新」コマンドから、Power Queryテーブルを更新してみます。

Power Queryで動的に変わる列ヘッダーを管理する方法:実践ガイド

  • すると、警告のポップアップウィンドウが表示されます。
  • 「OK」をクリックします。

Power Queryで動的に変わる列ヘッダーを管理する方法:実践ガイド

  • これを回避するために、今度はテーブルの先頭行を降格させます。
  • テーブルをクリックすると、「クエリと接続」ウィンドウに警告マークが表示されます。
  • その警告マークを右クリックし、「編集」をクリックします。

Power Queryで動的に変わる列ヘッダーを管理する方法:実践ガイド

  • 再びPower Queryテーブルに戻ると、黄色いボックスで問題の内容が示されています。
  • ウィンドウ右側の「適用したステップ(APPLIED STEPS)」で「ソース(Source)」をクリックします。

Power Queryで動的に変わる列ヘッダーを管理する方法:実践ガイド

  • 次に、メインのPower Queryソースデータで、「変換」タブ > 「先頭の行を見出しとして使用」へ進みます。
  • ドロップダウンメニューから「見出しを先頭行として使用」をクリックします。

Power Queryで動的に変わる列ヘッダーを管理する方法:実践ガイド

  • 「ステップの挿入」という警告ボックスが表示されるので、「挿入」をクリックします。

Power Queryで動的に変わる列ヘッダーを管理する方法:実践ガイド

  • すると、先頭行が一段下に移動していることが確認できます。

Power Queryで動的に変わる列ヘッダーを管理する方法:実践ガイド

  • 次に、「Column1」「Column2」などの各列ヘッダーをダブルクリックします。
  • そして、元のデータソースとまったく同じ名前になるよう変更します。

Power Queryで動的に変わる列ヘッダーを管理する方法:実践ガイド

  • これで列ヘッダー名が先頭行に移ったので、2行目にある古い列ヘッダーは不要になります。
  • それらの行を削除するには、「ホーム」タブ > 「行の削除」へ進みます。
  • 次に「上位の行の削除」をクリックします。

Power Queryで動的に変わる列ヘッダーを管理する方法:実践ガイド

  • 再び警告が表示されたら、「挿入」をクリックします。

Power Queryで動的に変わる列ヘッダーを管理する方法:実践ガイド

  • これで以前の列ヘッダー行は削除されました。
  • 「適用したステップ」内の他のステップ、特に「変更された型(Changed Type)」ステップを削除します。
  • 最後に、通常どおりPower Queryを閉じて読み込みます。

Power Queryで動的に変わる列ヘッダーを管理する方法:実践ガイド

ステップ4:Power Queryテーブルを検証する

親となる列ヘッダーの降格と削除が完了したので、警告が再び表示されるかどうかをテストできます。

Power Queryで動的に変わる列ヘッダーを管理する方法:実践ガイド

💬 注記

  • ここではデモンストレーションのために、列ヘッダーをa、b、c、dに変更してテーブルへの影響を確認しています。ユーザーは自由に好みの列ヘッダーを設定して構いません。
  • 「データ」タブからもPower Queryテーブルを更新できます。
  • Power Queryテーブルを選択し、「すべて更新」コマンドをクリックします。
  • 「クエリと接続」ペインに短い読み込みアニメーションが表示されます。
  • 読み込み完了後、警告マークが表示されなくなっていることを確認できます。
  • さらに、列ヘッダーを好きなように変更して「更新」を実行し、その影響を試してみるのもおすすめです。

Power Queryで動的に変わる列ヘッダーを管理する方法:実践ガイド

以上で、Power Queryにおけるヘッダーが変化するテーブルへの対処は完了です。

練習用ワークブックのダウンロード

以下から、この記事で使用した練習用ワークブックをダウンロードできます。

まとめ

本記事では、Power Queryでヘッダーが変化するテーブルに対処する方法を、詳細な解説とともに紹介しました。

この問題の練習用として、ダウンロード可能なワークブックも用意しています。

質問やフィードバックがあれば、コメント欄でお気軽にお知らせください。ご提案も大歓迎です。

関連記事

  • ExcelのPower Queryで2つのテーブルを比較する方法
  • Excel Power Queryで列を分割する方法

<< Power Queryの使用例に戻る | Power Query Excel | Excelを学ぶ


無料の高度なExcel演習問題(解答付き)を受け取ろう!

  1. Outlook Customer Managerで「エラーが発生しました」と表示される場合の対処法

    Outlook Customer Managerは、Office 365 Business Premiumの契約者向けに無料で提供されているアドインです。顧客との関係を追跡・育成するための機能をOutlookに追加し、商談の進捗や重要なタスクをひとつの場所で管理できるようにします。Outlookに標準で組み込まれているため、別途インストール作業は不要です。 ビジネス向けプランをご利用の場合、このアドインは管理者によって自動的にインストールされます。Outlookのリボンに「Outlook Customer Manager」の項目が表示されているかどうかで導入状況を確認できます。もし表示されてい

  2. Outlook for Macで自動検出(Autodiscover)リダイレクトの警告を抑制する方法

    Office 365環境のMacでOutlookを使用していると、アカウント設定の取得時に次のような警告メッセージが表示されることがあります。「Outlook was redirected to the server autodiscover-s.outlook.com to get new settings for your account. Do you want to allow this server to configure your settings?」(サーバーautodiscover-s.outlook.comにリダイレクトされ、アカウントの新しい設定を取得しました。このサーバ