DAX 言語での関数の反復 – 詳細な例

DAX 言語での関数の反復 – 詳細な例

このブログ投稿では、LuckyTemplates の DAX 言語内での関数の反復について詳しく説明したいと思います。反復関数の内部で何ができるかを少し時間をかけて説明したい理由は、これが非常に重要な概念であり、しっかりと学習する必要があるからです。このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。

単純な SUM をいくつか完了したばかりか、AVERAGE 関数を使用した可能性があるかもしれませんが、SUMX、AVERAGEX、COUNTX など、末尾に X がある反復関数の使用方法を理解することも重要です。

その理由は、反復関数内では、集計関数よりもはるかに高度な作業を実行できるためです。

目次

反復関数とは何ですか?

反復関数が何なのかまだよくわかっていない方のために説明すると、反復関数は DAX 数式言語の関数であり、通常は末尾に X が付いています。FILTER や VALUES などのテーブルを反復処理するテーブル関数もありますが、ここでは SUMX のみを扱います。

総売上高の計算式を見ると、これは SUMX による反復関数であることがわかります。反復とは、すべての単一行を反復して計算を行うことを意味します。この場合、Sales テーブルのすべての行について、数量に現在の価格を乗算します。また、RELATED 関数を使用して Product テーブルに戻り、現在の価格を取得します。

DAX 言語での関数の反復 – 詳細な例

データから得たい優れた洞察を引き出す、非常に複雑な反復関数を作成する方法を説明したいと思います。このチュートリアルでは、特定の価格を超える販売数を計算したいと思います。この場合、$2,000 を選択します。

また、2,000 ドルを超える製品で、誰かが複数の製品を購入した場合の月ごとの売上高も知りたいと思っています。また、総売上高と比較してどの程度優れているかも確認したいと思います。これは、たった 1 つの式を記述し、反復関数を使用することで達成できる種類の複雑さです。

販売価格が 2000 ドルを超える

メジャーを作成し、Sale Price > $2000 & Quantity > 1という名前を付けてみましょう。通常、ここで答えを確認するには、いくつかの異なる列またはいくつかの異なるメジャーを記述する必要がありますが、実際に 1 つだけでそれを実行できる方法を説明します。SUMX から始めますが、ここでテーブルを入力する必要があると書かれていますよね?

DAX 言語での関数の反復 – 詳細な例

したがって、Sales テーブル全体ではなく、一度だけ表示されたものをすでに除外したテーブルを作成することで、このQuantity > 1 の課題に取り組みます。ここでは FILTER を使用します。これはテーブル関数なので、内部にあらゆる種類のテーブルを含めることができます。次に、Sales に進み、このFILTER関数内で Sales テーブルのすべての行を反復処理し、数量が 1 より大きい各行をフィルターで除外します。

DAX 言語での関数の反復 – 詳細な例

1 を超えるすべての売上に対して、追加のロジックも作成したいと考えています。ここでは表現パターンを書いてSWITCHを使ってみます。セールの現在価格が 2000 ドル以上の場合、総売上高を計算したいとします。そうでない場合は、まったく計算したくありません。最後に、代替結果として 0 を入力します。

DAX 言語での関数の反復 – 詳細な例

これは、DAX 言語で非常に複雑な反復式を記述する方法です。重要なのは、どのような種類のテーブルをそこに配置できるかを理解し実際の反復で何が行われるかを知ることです。

この場合、このフィルターダウンテーブルのすべての行について、2000 ドルを超える現在の価格を評価しています。そうであれば、その行の売上を数えます。そうでない場合は、単に 0 になります。

このメジャーを表にドラッグすると、最初のグラフで得られた結果と同様の結果が得られることがわかります。唯一の違いは、これが毎日行われるということです。

DAX 言語での関数の反復 – 詳細な例

セール価格が 500 ドルを超える

同じパターンを再利用することで、ここでさらなる洞察を生み出すことができます。500 ドルを超えたものを確認したい場合は、ここでいくつかの小さな変更を加えて Enter キーを押し、これをテーブルにドラッグするだけです。

DAX 言語での関数の反復 – 詳細な例

カウントアップしている製品がさらに多いため、明らかに大きな違いが見られます。これは、以前の 2,000 ドルの製品ほど、高価格または低価格の製品を排除していないためです。

DAX 言語での関数の反復 – 詳細な例

データの視覚化 

これをビジュアライゼーションに変更することもできますが、ご覧のとおり、チャートが少し混雑しているように見えるため、おそらく表に残しておく方がよいでしょう。または、左側のチャートのように時間枠をより凝縮することもできます。

DAX 言語での関数の反復 – 詳細な例

DAX 言語内でこれらの反復関数をどこまで使用できるかを評価して理解できると幸いです。データのあらゆる側面を徹底的に調べたり、非常に具体的な洞察を抽出したりすることができます。これを行うには、この行コンテキストを使用します。これにより、これらの反復関数の内部に実際に入ることができます。個々の行を確認し、それを計算内または計算外に配置し、SUMX、AVERAGEX、COUNTX などの反復関数を使用できます。

反復関数を使用すると、列全体を集計することしかできない集計と比較して、行レベルで実行できる計算の柔軟性が大幅に高まります。ここで、反復関数内では、最初にテーブル参照を入力し、次に式を入力する必要がありますが、これらが実際にどのようなものであるかについて、必ず考えを広げてください。

反復関数内では、実際に任意のテーブルまたはテーブルの派生内部に置くことができます。また、仮想テーブルやテーブルへの参照も含めることができます。これにより、トランザクション テーブルなどのテーブル全体を使用してロジックを実行する場合よりもはるかに高い柔軟性が得られます。

入力する式 (または測定値) は、非常に高度なものにすることもできます。高度な IF ロジックや SWITCH ロジック、または基本的に計算列内の行レベルで実行できるものであれば何でも使用できます。実際に、それを反復関数の式部分に置くことができます。

結論

この投稿から得られる重要な点は、反復関数は LuckyTemplates 内でよく理解して学習するために非常に重要であるということです。

これをしっかりと学べば、メジャーを介してメモリ内で内部計算を実行する機会が非常に強力になります。

DAX 言語と LuckyTemplates を始めたばかりの場合は、確認してください。この無料コースでは学ぶべきことがたくさんあります。で見つけることができます。


Python における Self とは: 実際の例

Python における Self とは: 実際の例

Python における Self とは: 実際の例

RでRDSファイルを保存してロードする方法

RでRDSファイルを保存してロードする方法

R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。

最初の N 営業日の再考 – DAX コーディング言語ソリューション

最初の N 営業日の再考 – DAX コーディング言語ソリューション

この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。

LuckyTemplates のフィルター コンテキストの概要

LuckyTemplates のフィルター コンテキストの概要

この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。

LuckyTemplates を使用したビジネス レポート

LuckyTemplates を使用したビジネス レポート

これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて