Python における Self とは: 実際の例
Python における Self とは: 実際の例
今日のブログでは、LuckyTemplates を使用して DAX を使用して区切り文字で列を分割する方法を学びます。これは、Power Query を使用して簡単に実行する方法をおそらくご存じのはずであり、一般的にはそれが最善の方法です。
ただし、問題の動的な性質とデータ モデル内の特定の考慮事項により、DAX を使用した方がより良い解決策が提供される場合があります。 このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。
目次
サンプル問題
これは LuckyTemplates のサンプル問題です。
約 600 の映画タイトルのリストがあり、その中で最も一般的な単語を特定したいと考えています。これを行うには、以下に示すパラメーター スライダーを使用して、各タイトルから単語を計算します。
スライダーでは、返したい上位の単語の数を設定できます。このチュートリアルでは、単語を 5 つに設定したとします。
次の目標は、選択した 5 つの単語のうち少なくとも 1 つを含むすべてのタイトルを返すことです。そうすることは簡単に聞こえるかもしれませんが、思っているよりも少し難しいです。そこで、これらの目標を達成するための手順を次に示します。
区切り文字を使用して列を分割する方法の手順
このセクションでは、DAX で列を分割することで特定の問題を解決する方法を説明します。最初のステップは、左側にある 2 番目のアイコンをクリックしてムービー データを開き、フィールド ペインで [フィルム] をクリックします。
表示される映画のリストでは、タイトルを個々の単語に分解する方法を考える必要があります。
考えられる解決策の 1 つは、以下に示すように 2 つの仮想テーブルを使用することです。表 1 は、スライダーで定義された上位 N 語の 1 列の表です。2 番目のテーブルは、各映画タイトルの単語の仮想列です。
関数を使用して、それらの間で共通する単語を特定できます。次に、その仮想テーブルに対してを実行して、その数値が 1 以上であるかどうかを確認します。
答えが「はい」の場合、ターゲット単語の少なくとも 1 つは映画のタイトルに含まれています。そして、これらは私たちが最終結果に残したいタイトルです。
SQLBI DAX ガイドで便利な LuckyTemplates 列分割ツールを見つける
これを実装する方法を検討するには、 「外部ツール」、「DAX ガイド」の順に進み、SQLBI DAX ガイドを参照してください。
このページでは、「グループ」をクリックして、タイプ別に関数を検索できます。
[関数]で、 [テキスト]から開始して、区切り文字による列の分割に似たテキスト関数があるかどうかを確認します。そうすれば作業は非常に簡単になりますが、残念ながら、DAX にはこれに相当するものはありません。
代わりに、区切り文字で分割するのと同じことを行うを使用します。
親子階層関数
親子階層関数または PATH 関数は通常、階層状況に使用されます。企業の CEO、取締役レベルのマネージャー、支店長レベルのマネージャーなどの人事分析が必要だとします。
PATH 関数は、この階層を特定の方法で表現し、階層内を行き来できます。これは親子階層関数の伝統的な使用方法ですが、テキスト操作と DAX にとって非常に便利なプロパティもいくつかあることがわかります。
これを使用するのは LuckyTemplates よりもはるかに難しいですが、段階的なソリューションを提供することでプロセスを容易にしたいと考えています。これは学習すると便利なテクニックであり、信じられないほど強力な DAX 関数ファミリーを知ることができます。
DAX での LuckyTemplates の分割列
親子階層関数には多くの手順が必要ですが、これら 5 つの関数は非常に強力で柔軟であるため、検討してみる価値はあります。
まず、テーブルに戻り、フィールド ペインの [フィルム
以下に示すように、コマンドを使用してフィルム パスを作成します。
このコマンドは、すべてのスペースを縦棒文字に置き換えます。
これは、LuckyTemplates でパスをフォーマットする必要があるのと同じ方法であるため、通常、これは Power Query で行われます。ただし、この方法はコマンドを表示するために実行したものであり、Power Query の M コマンドとは異なります。
SUBSTITUTE関数必要なパス構造を作成し、コマンドは結果に影響を与える可能性のある先頭または末尾のスペースを削除します。
2 番目の計算列はパスの長さです。これは、フィルム パスに適用する関数の直接的なコマンドです。そのパス上にあるアイテムの数が表示されるため、この場合はタイトルの単語数になります。
同じコマンドを使用して、たとえば、レポート チェーン内の人数を決定することができます。ただし、この場合は単純な単語数にすぎません。
次に行うことは、[フィールド] ペインの[最大パス インデックス]に移動することです。次に、ムービー テーブル全体を調べ、フィルターを削除し、データベース内の最長のタイトルを知るための最大パス長を計算する計算テーブルを作成します。
関数を使用すると、1 から最大パスまで 1 ずつカウントする一連のインデックスを生成できます。
これがテーブルの外観です。これがなぜ価値があるのかはすぐにわかります。
ここでは、LuckyTemplates に戻り、フィールド ウィンドウの[フィルム パスの上位の単語]をクリックします。
ここでは、一般的な解が前に示したベン図であるこの仮想テーブルに焦点を当てます。
よりよく理解するために分解してみましょう。以下の行では、以下で計算した上位 N 語の仮想テーブルを使用しました。
次に、区切り文字による列の分割が以下の行で計算されます。
次に、これら 2 つの列の交差を適用しました。その交差がゼロより大きい場合は、それに 1 を与えるか、それ以外の場合は 0 を与えます。最後に、結果を返しました。
複雑な仮想テーブルを操作する場合、最も簡単な方法は、表形式エディターに移動し、DAX クエリでこれらの仮想テーブルを具体化することです。そのためには、以下で強調表示されている行に注目する必要があります。
したがって、次の手順に備えて、このコードをコピーしてクリップボードに置いておきます。
表形式エディターを使用した LuckyTemplates 分割列の処理 3
外部ツールで、「表形式エディタ 3」をクリックします。これには DAX Studio を使用することもできますが、追加のデバッグ機能やその他の優れた機能があるため、表形式エディターをお勧めします。DAX クエリの場合は、DAX Studio も適切に機能し、完全に無料です。
表形式エディターに戻り、リボンの紙のアイコンをクリックして、新しい DAX クエリを作成します。1 行目に「EVALUATE」と入力し、コピーしたコードを貼り付けて、F5 キーを押します。
最初の 2 つの列にフィルム パスと最大パスを含むテーブルが表示されます。コマンドとフィルム パスを 使用して、パス インデックスの増分 (1 から 9) ごとに最初の単語が何であるかを決定します。
このコードは、3 列目に表示される最初の単語を返します。
Movies[Film Path]列タイトルのフィルターアイコンをクリックして、特定の映画を見てみてください。たとえば、もう少し長い映画、たとえば『キャプテン・アメリカ:ウィンター・ソルジャー』を考えてみましょう。
ウィンドウの下部では、EVALUATE が 1000 行を返したことがわかります。
すべての行を取得してから、戻ってキャプテン・アメリカのMovies[Film Path] を再度フィルターします。
「キャプテン・アメリカ:ウィンター・ソルジャー」を検索してください。該当するボックスにチェックを入れて、「閉じる」をクリックします。
各タイトルに対して正確に行うことは、2 番目の列にあるように、1 ~ 9 のインデックスを調べて適用し、それをコマンドに適用することです。
最初の項目は「 Captain」、2 番目の項目は「America」、3 番目は「The」、4 番目は「Winter」、最後の項目は「Soldier」であることがわかります。6 から 9 になると、そのタイトルの単語数を超えてしまうため、空白になります。
作成したのは区切り文字による分割列です。これは、Power Query の区切り文字による分割とまったく同じです。
コマンドが交差部分と IF ステートメントを介して実行されていることがわかります。したがって、データ セットに戻って [フィルター] ペインを開くと、フィルムの上位単語が 1 になるようにフィルターされていることがわかります。
これは基本的に、左側のテーブルのターゲット リストにある単語を含む右側のテーブル (映画) 内のすべてが上の行にリストされることを示しています。一方、ゼロのものは下に配置されます。
Power Automate 関数と配列の分割
LuckyTemplates 列の分割 Power Query チュートリアル: LuckyTemplates で複数行の Excel セルを分割する方法
Power Query で区切りリストを作成する – クエリ エディターのチュートリアル
結論
このブログでは、DAX で区切り文字によって列を分割する方法を学習しました。このツールは、状況が非常に動的である場合、またはデータ モデルが Power Query での実行をサポートしていない場合に非常に役立ちます。
さらに、あなたが取り組んだサンプル問題は、PATH コマンドの並外れた能力と、それを使用して従来とは異なる方法で問題を解決する方法をよく示しています。
Python における Self とは: 実際の例
R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。
この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。
このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。
この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。
LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。
LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。
このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。
これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。
LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて