Python における Self とは: 実際の例
Python における Self とは: 実際の例
このチュートリアルでは、 Power Query テーブル内の変化する列数を動的にマージする方法について、で提起された興味深い質問を検討します。このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。
このシナリオは、未知の数の隣接する列にデータが溢れる原因となる生データのエクスポートを扱います。この例を見ると、説明が列 4 にはみ出しており、説明 2 が 2 つの隣接する列に分割されていることがわかります。しかし、常にそうとは限りません。次のサイクルでは、この列の数が変更される可能性があります。
解決策に入る前に、列を結合するときに Power Query が生成する M コードを調べてみましょう。
目次
パワークエリテーブルMコード
列を結合するには、いくつかの方法があります。1 つは、説明列の両方を選択し、Shift キーまたは Ctrl キーを押してから列 4 も選択することです。次に、右クリックして[列の結合]を選択します。
または、[変換]タブで、[列の結合]を選択します。このダイアログ ボックスが表示され、セパレータを選択できます。
ポップアップ ボックスで [タブ] を選択すると、新しい列名を入力できます。この場合は、「説明」という名前を付けました。
数式バーには、この変換ステップで作成された M コードが表示されます。
数式バーが画面に表示されない場合は、[表示] タブに移動してオンにします。
したがって、Power Query が列を結合するために使用する関数はTable.CombinedColumnsです。最初のパラメータはテーブルです。このテーブルはコードの前のステップによって返されるため、適用ステップでは、これがSourceと呼ばれていることがわかります。
次に、リスト内の列名をハードコーディングしました。ここには、リスト初期化子と、テキスト内の値の間、列名の説明、および列名の列 4 が表示されます。次に、別の M 関数を呼び出して、これらの列内のテキスト値を結合します。
最後に、新しい列名をテキストとして渡すので、それを調整できます。
したがって、この関数で変化する数の列を動的にマージしたい場合は、ハードコーディングされた列名のリストが含まれる 2 番目のパラメーター値を変更する必要があります。
Power Query テーブル内の変化する数の列を結合する
生データのクエリに戻り、列名を詳しく見てみると、各流出列が匿名であることがわかります。これらには適切な名前はありませんが、すべてテキスト列で始まり、その後に数字が続きます。それを使えるかどうか見てみましょう。まず、ここを右クリックして [参照] を選択して参照を作成します。
数式バー内の列名を取得するには、Table.ColumnNamesを追加します。この関数は、そのテーブルのすべての列名のリストを返します。[To Table]をクリックして、これをテーブルに戻しましょう。
このポップアップ ボックスで、[OK] をクリックします。
次に、[列の追加]タブで[形式]を選択し、[トリミング]を選択します。
これは私が実行したい変換ではありませんが、大部分の M コードを生成します。私がしなければならないのは、そのトリム関数を独自のロジックに置き換えることだけです。
したがって、数式バー内で、Text.Trimの代わりにif Text.StartsWith と入力し、それをColumn 1にポイントすると、それをすぐにコピーします。探しているテキストが必要なので、それは Column になります。したがって、テキスト列で始まる場合は「null」が必要です。それ以外の場合は、列 1 にあるものがすべて必要です。その列の名前を変更することもできるので、数式バー内で、Trim の代わりにGroupColumnと呼びましょう。
あとは、これらの値を入力するだけです。そこで、ヘッダーを右クリックし、[Fill]を選択し、[Down] を選択します。
したがって、次回データが到着し、その列数が変更されたときに、このグループは自動的にそのデータを取得します。
このクエリの名前を変更して、列グループと呼びます。
これは単なるサポートクエリであるため、そのロードが無効になっていることを確認しましょう。
このサポート クエリを参照できます。後で名前を変更します。それは今は置いておきましょう。覚えていると思いますが、最初は 2 つの列を結合し、列名を含むハードコーディングされたリストを作成しましたが、今度はGroupColumn のdescription でフィルター できるようになりました。
したがって、列 1 内の説明に対してフィルターを実行すると、その基準を満たす列が得られます。
ただし、これは表であり、リストではありません。これらの列をマージ操作に含める必要があるため、最初の列に残っているものを抽出する必要があります。そのためには、列 1 のヘッダーを右クリックして[ドリルダウン]を選択します。
そして今、リストを取得します。そこで、このクエリに適切な名前 ( ListDescr ) を付けて、ロードが無効になっているかどうかを確認してみましょう。
ここで、Result クエリに戻り、ここで 2 番目の引数を動的リストに置き換えます。したがって、ここでListDescrを参照できます。
説明 2 についてもこれを繰り返してみましょう。ColumnGroups クエリに進みます。別の参照を作成し、必要な列を選択します。次に、説明 2 をフィルター処理します。これにより、これら 3 つの列が返されます。ヘッダーを右クリックして [ドリルダウン] を選択し、このクエリの名前も変更します ( ListDescr2 )。
次に、結果クエリに戻り、[説明 2] 列を選択し、Shift キーまたは Ctrl キーを押して次の列 (列 2) も選択します。ヘッダーを右クリックし、[列の結合]を選択します。
ポップアップ ボックスで、区切り記号として [タブ] を選択し、これを [説明 2] という名前にします。
ここで数式バーの列名を変更するだけです。このハードコードされたリストも、作成したばかりのリストから変更します。そしてご覧のとおり、以前に除外した列 8 も選択されています。
LuckyTemplates でクエリを結合する方法
LuckyTemplates クエリ パラメーター: テーブルの最適化
LuckyTemplates での日付テーブルの列の並べ替え
結論
このブログでは、Power Query で M コードを使用して列を動的に結合する方法を説明しました。Power Query の仕組みと使用する M コードを理解していれば、それは難しくありません。
楽しんでいただけたでしょうか。関連コンテンツの詳細については、以下のリンクをご覧ください。
ではごきげんよう!
メリッサ
Python における Self とは: 実際の例
R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。
この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。
このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。
この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。
LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。
LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。
このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。
これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。
LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて