初心者向けの究極の DAX ガイド

初心者向けの究極の DAX ガイド

LuckyTemplates 開発の 3 番目の柱は DAX 計算です。このチュートリアルには、書式設定と編集の基本を網羅した初心者向けの完全な DAX ガイドが含まれています。頻繁に使用される DAX 関数も説明に含まれています。

目次

DAX エディター ガイド

何よりもまず、知っておくべき DAX エディターのヒントをいくつか紹介します。

DAX エディター ウィンドウのフォント サイズを拡大または縮小するには、Ctrl + マウス スクロール ホイールを使用します。

初心者向けの究極の DAX ガイド

Ctrl + Shift + Lを使用して、名前のすべてのインスタンスを一度に更新します。

初心者向けの究極の DAX ガイド

DAX の仮想テーブルまたは一時列名に「@ 」接頭辞を追加します。

初心者向けの究極の DAX ガイド

書式設定のための DAX ガイド

DAX コードは整理されており、ユーザーが理解しやすいものである必要があります。

あなたは今の自分のためだけでなく、将来の自分のためにもコードを書いているのです。

現在も将来も、自分自身だけでなく他の人にとっても読みやすく、理解しやすい DAX コードを開発することが重要です。

編集や整理によってコードが破損する可能性があっても心配する必要はありません。コンピュータは賢いです。構文が正しい限り、作成したコードを解釈して実行できます。

マルコ・ルッソの素晴らしい引用は次のとおりです。

フォーマットされていない場合は、DAX ではありません。

DAX をフォーマットするにはいくつかの方法があります。推奨されるオプションは、LuckyTemplates Analyst Hub で入手可能なDAX Clean Up Toolを使用することです。

初心者向けの究極の DAX ガイド

を使用してこのツールにアクセスできます。もう 1 つの方法は、LuckyTemplates Web サイトにアクセスし、[リソース] を選択することです。ページの下部に DAX クリーンアップ ツールがあります。

このツールを使用するには、DAX エディターからコードを LuckyTemplates ファイルにコピーします。これを DAX クリーンアップ ツールに貼り付けて、[形式] をクリックします。

初心者向けの究極の DAX ガイド

クリーンアップが完了したら、書式設定されたコードを LuckyTemplates ファイルに貼り付けることができます。

初心者向けの究極の DAX ガイド

ツール内でコードを編集することもできます。

DAX コードでのコメント

複雑な DAX コードを扱う場合は、コメントを追加することをお勧めします。疑似コードの説明は大いに役立つでしょう。ただし例外もあります。

コメントは非常に個人的な活動です。開発者とユーザーからのコメントの適切なレベルについては、さまざまな意見があるかもしれません。したがって、繰り返しになりますが、コードやコメントを作成するときは、それらが将来ユーザーや開発者にどのように受け入れられ、理解されるかを考慮することが重要です。そうすることは、長期的にはあなたとビジネスに大きな利益をもたらします。

変数の DAX ガイド

冗長な変数名を使用します。重要なのは明確さです。明確でわかりやすい名前を付けることが重要です。

繰り返しになりますが、コンピュータは賢いので、何が書かれているかを簡単に理解できます。したがって、コンピューターや LuckyTemplates のために書いているわけではないことに注意してください。あなたは自分自身のために、そして今後数か月間あなたのコードを使用および保守する人のために書いているのです。

DAX コードで変数を使用する場合は、後続の行で正しい変数を確実に選択できるように、変数名の前に接頭辞を使用することをお勧めします。アンダースコア( _ ) は、使用することをお勧めする接頭辞です。これは、LuckyTemplates の IntelliSense 機能で表示されるリストを減らすのにも役立ちます。

以下に例を示します。

初心者向けの究極の DAX ガイド

アンダースコアを入力すると、選択肢が 2 つだけ表示されることがわかります。選択肢の数が大幅に減り、コーディング時の効率が向上します。

もう 1 つのベスト プラクティスは、RETURN Result構造を使用することです。

初心者向けの究極の DAX ガイド

これにより、DAX コードの段階的な開発とデバッグが容易になります。

DAX 計算資格

DAX 式で列を使用する場合は、複数のテーブルで同じ列名が使用される可能性があるため、具体的に指定する必要があります。

たとえば、Customers テーブルと Sales テーブルの両方に Customer Key 列が存在する可能性があります。

初心者向けの究極の DAX ガイド

多くの場合、それらは同じことを意味し、同じデータが含まれていますが、常にそうとは限りません。望ましい結果を得るには、常に列名を修飾する必要があります。

さらに、メジャーがテーブルに関連付けられていないことを確認する必要があります。メジャー名はあるテーブルから別のテーブルに移動できるため、メジャー名が修飾されていないことを確認することが重要です。

知っておくべき重要な DAX 関数

1. 計算する

、計算のコンテキストを変更できるため、最も重要な DAX 関数の 1 つです。

ただし、この機能が混乱を引き起こすのは、使い方が難しいためではなく、名前のせいです。CALCULATE と呼ばれていても、実際に計算を実行しているわけではありません。むしろ、計算のコンテキストが変わります。

たとえば、この Sales LY メジャーでは、CALCULATE 関数を使用して、Total Sales の計算コンテキストを現在の評価コンテキストの 1 年前に変更します。

初心者向けの究極の DAX ガイド

2.日付追加

DAX では、多くのタイム インテリジェンス関数を利用できます。などの関数が使用される可能性が高くなります。ただし、最も多用途な DAX タイム インテリジェンス関数の 1 つです。そして、この機能が最初の選択肢となるはずです。

DATEADD を使用すると、時間の前後方向、および YEAR、QUARTER、MONTH、または DAY の複数の計算に同じ構文を使用できます。これにより、コピーアンドペーストと簡単な編集を使用して、複数の時間インテリジェンス測定を非常に簡単に作成できます。

初心者向けの究極の DAX ガイド

3. 分割する

LuckyTemplates での分割はさまざまな方法で行うことができます。最も基本的な方法は、単純な算術除算を使用することです。

初心者向けの究極の DAX ガイド

ただし、ゼロ除算の場合は通常、続行する前に綿密なテストを実行する必要があります。幸いなことに、これを処理する DAX 関数があります。

DIVIDE関数はゼロ除算のケースを自動的に処理し、代替結果を追加することもできます。これは LuckyTemplates での算術除算より簡単なため、コードが読みやすくなります。

初心者向けの究極の DAX ガイド

4. スイッチを TRUE

もう 1 つの DAX コードは ロジックです。

評価する条件が複数ある場合、複数のネストされたステートメントが作成されることになり、多くの場合、読み取りや追跡が困難になります。

SWITCH TRUE ステートメントを使用すると、後でコードを変更したり、条件を新しい条件に調整したりできる柔軟性が得られます。また、コンパクトになって読みやすくなりました。

初心者向けの究極の DAX ガイド

仮想テーブルの DAX ガイド

DAX コードで仮想テーブルを構築するときは、 関数を使用して列をベース テーブルにグループ化します。次に、それを構造で囲み、列を追加します。

繰り返しになりますが、ADDCOLUMNS 関数を使用して列に「 @ 」プレフィックスを使用して、曖昧さを防ぎ、選択された仮想テーブル列が正しいことを確認します。

また、仮想テーブルを扱うときは、DAX Studio または表形式エディターを使用することをお勧めします。

LuckyTemplates では、テーブルのペアの間に多くの関係が存在する可能性があります。DAX コードは、デフォルトでアクティブな関係を使用します。コマンドを使用すると、特定の非アクティブな関係を使用するように変更できます。

たとえば、Dates テーブルの Date 列と Sales テーブルの間には多くの関係が存在する場合があります。Sales [Order Date]はアクティブな関係ですが、Sales [Invoice Date]は非アクティブな関係です。売上 [注文日] を計算に使用する場合、特別な労力は必要ありません。ただし、計算で Sales [請求日] を使用する場合は、USERELATIONSHIPコマンドと一緒に使用する必要があります。

初心者向けの究極の DAX ガイド

LuckyTemplates のモデル ビューで、実線の上にマウスを置くと、アクティブな関係が表示されます。一方、2 つの点線は、2 つのテーブル内の各要素間の非アクティブな関係を示しています。

初心者向けの究極の DAX ガイド

サンプル レポートを確認すると、「注文日別売上高」列、「請求日別売上高」列、および「出荷日別売上高」列の間に違いがあることもわかります。

初心者向けの究極の DAX ガイド

メジャーと計算列

Excel のバックグラウンドを持っている人にとって、計算列を使用するとデータを確認できるため、安心して使用できます。ただし、DAX と LuckyTemplates のベスト プラクティスは、可能な限りメジャーを使用することです。

計算列が使用される特定のケースがあります。これらは多くの場合、計算の視覚化を支援する出発点として開発されます。ただし、計算を頭の中で完全に視覚化したら、後でそれらをメジャーに置き換える必要があります。さらに、メジャーとは対照的に、計算列はスライサーで使用できます。

メジャーによって計算されるデータ モデルの物理サイズは増加しません。ビジュアルで使用される場合にのみ有効です。ただし、計算列はファイルが更新されるたびに計算されて物理的に保存されるため、データ モデルの物理サイズは増加します。

分岐を測定するための DAX ガイド

LuckyTemplates で最も価値のある手法の 1 つは、分岐の測定です。

コードをモジュール化する優れた方法は、単純な計算を実行する単純なメジャーまたは基本メジャーから始めて、必要に応じてそれらを組み合わせてより複雑な計算を実行することです。基本メジャーと暫定メジャーを表に入力して、実行中の計算を確認します。

具体的な対策をどこに置くべきかについてはさまざまな学派があり、どの方法にも長所と短所があります。ただし、LuckyTemplates 開発では専用のメジャー グループを使用する方が有利です。すべてのメジャーが [フィールド] ウィンドウの上部の同じ場所に配置されている場合、DAX 計算のロジックを追跡しやすくなります。

初心者向けの究極の DAX ガイド

DAX 計算のコンテキスト

LuckyTemplates の主な強みの 1 つはコンテキストです。そして、これは開発者にとって最も理解するのが難しい概念の 1 つでもあります。

コンテキストは、計算が実行される環境です。

多くの場合、行コンテキストフィルター コンテキストという2 つのコンテキストが表示されます。しかし実際には、評価コンテキストという 3 つ目のものが存在します。

これによりCALCULATEコマンドに戻り、再びユーザーが計算のコンテキストを変更できるようになります。DAX と LuckyTemplates には、集計関数反復関数という2 つの主要な関数クラスがあります。

集計関数は、単一の列の値を集計する関数です。集計関数の例には、、およびがあります。ほとんどの集計関数は数値または日付値に対してのみ機能しますが、MAX と MIN はテキスト値に対しても機能します。

反復関数は、テーブルの各行の式を計算する関数です。これらはX 関数とも呼ばれます。例には、SUMX 、 MAX X 、。これらには、反復するテーブルと計算を実行する式という 2 つのパラメーターがあります。これにより、ベース テーブルまたは他の関連テーブルの複数の列を使用できます。

以下に、集計関数と反復関数がどのように異なる方法で使用されながらも同じ結果が得られるかを示す簡単な例を示します。

初心者向けの究極の DAX ガイド

結論

この DAX ガイドは、まだ探索および学習中の新しい LuckyTemplates ユーザーを支援することを目的としています。これは、簡単な復習コースが必要な経験豊富な開発者にとって、ワンストップのチェックリストとしても非常に役立ちます。このチュートリアルは、LuckyTemplates での高度なレポート開発のための優れた構成要素です。

LuckyTemplates には、基本から高度なコーディングまで、DAX チュートリアルに関するさまざまなリソースがあります。DAX プログラミング言語についてさらに詳しく知るために、必ず参照してください。

グレッグ


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 ゲートウェイとは何ですか? 知っておくべきことすべて