none
Power Query のクエリ式について RRS feed

  • 質問

  • マイクロソフト コミュニティのフォーラムモデレータ様より、追加投稿のアドバイスをいただきましたのでよろしく、お願いいたします。

    (下記は、一般ユーザー向けコミュニティフォーラムに投稿した内容と同一です。)

    足踏み状態になりそうなので、皆様のお力添えお願いします。

    Excel2013用のPower Queryにて外部web公開データを接続するクエリーを1000個ほど作成するのですが

    クエリー編集を施したひな形クエリを一つ用意して、複写しながら増産しようと思っています。

    通常、ウィザードでクエリを作成すると、接続対象とするテーブルの識別名称(今回は、テーブルの直前の見出し)

    がクエリー名になりシートに読み込むとクエリー名がテーブル名に自動的に設定されるようになっています。

    一方、ひな形を複写するとクエリー名は初期値としてひな形のクエリー名をベースにカウントアップして名前が

    つけられ、接続先ソーステーブルの識別名称にクエリー名を置き換えることができません。

    クエリー名の変更は手動で変更することはできるのですが、自動で接続先ソーステーブル識別名を取得して自らの

    クエリー名を更新する処理をクエリー式に追加したいのです。

    クエリー名の更新が無理な場合には、シート読み込み時のテーブル名称を接続先ソーステーブル識別名に更新する

    クエリー式の記述はできないか。

    それも難しい場合には、データ本体に列を追加して、接続先ソーステーブルの識別名を自動入力させたいのです。

    ウィザードでは自動設定されるので、参照しているのだけれど、破棄されているだと思われるのですが

    クエリー式で任意で記述し変数に取り込めないものでしょうか?

    下記は、編集済みひな形クエリーのクエリー式です。

    let
        #"コピー0" = (CD) =>
    let
        CD = Number.ToText(CD), 
        アドレス = "http://www.○○○○/" & CD & ".html",
        ソース = Web.Page(Web.Contents(アドレス)),
        Data0 = ソース{0}[Data],
        変更された型 = Table.TransformColumnTypes(Data0,{{"学部", type text}, {"学科", type text},○○○~", type text}}),
        追加されたカスタム = Table.AddColumn(変更された型, "大学CD", each  CD )
    in
        追加されたカスタム,
        #"呼び出された関数コピー0" = #"コピー0"(2478)
    in

        #"呼び出された関数コピー0"

    どれも無理な場合には、CDと名称の関連テーブルを別途用意して読み込みテーブルと結合をおこない、VBAにてテーブル名称を変更。

    クエリー名の変更はVBAからアクセスできなければ、手動変更しかないかと思い描いておりますが、どんなものでしょう?



    • 編集済み kiga_yo 2016年6月15日 3:45
    2016年6月15日 3:44