LuckyTemplates Dax 変数は定数です: これは何を意味しますか?

LuckyTemplates DAX 変数の使用方法の説明を聞くたびに、「変数は定数である」というフレーズを聞いたことがあるかもしれません。シンプルなようですが、これらの言葉にはかなりのニュアンスと複雑さが含まれています。このブログでは、このフレーズの意味と、メジャーの計算方法への影響について説明します。これらの概念を理解することは、対策によって望ましい結果が確実に得られるようにするために不可欠です。このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。

DAX 内の変数には、実際には任意の有効な DAX 式を使用できます。これは、値、計算、メジャー、またはテーブルを表す変数、別の変数、またはそれらの組み合わせです。

変数には 2 つの部分があります。変数を初期化する宣言があります。名前を付けてから値を付けます。もう 1 つはRETURNステートメントで、宣言した変数の少なくとも 1 つを呼び出します。これは、変数ごとに 1 つの RETURN ステートメントが必要な括弧とは異なりますが、変数を宣言した場合は少なくとも 1 つの RETURN ステートメントが必要です。

ここで重要なのは、前にも述べたように、変数は定数であるということです。これは、変数が値に割り当てられると、RETURN ステートメントの前にその値を変更できないことを意味します。

目次

LuckyTemplates DAX 変数のメジャーへの適用

Countries と Total Sales を取得した簡単な例を見てみましょう。Total Salesメジャーは最も基本的なメジャーであり、Sales テーブル内の Line Sales の

LuckyTemplates Dax 変数は定数です: これは何を意味しますか?

たとえば、2020 年の総売上高を取得したいとします。このデータ セットには、2019 年、2000 年、2021 年の売上高があります。2020 年の売上高を取得するには、非常に単純なフィルター条件を適用する必要があります。これはです。そこで、フィルターコンテキストを変更します。Total Sales メジャーがあり、年は 2020 年です。

LuckyTemplates Dax 変数は定数です: これは何を意味しますか?

この測定値を表に落とし込むと、まさに期待どおりの値が得られ、これが 2020 年に適切な数値になります。

LuckyTemplates Dax 変数は定数です: これは何を意味しますか?

これに変数を適用したい場合は、前のメジャーを少し修正したバージョンを次に示します。ここでは、 TotSalesという変数を作成し、それを Total Sales メジャーと等しく設定します。

LuckyTemplates Dax 変数は定数です: これは何を意味しますか?

代数的置換の観点から考えると、以前の Total Sales メジャーを、その Total Sales メジャーと等しい TotSales に置き換えるだけであれば、それは同じものであると考えられ、同じ結果が得られます。結果。しかし、見てみると、そのメジャーをテーブルにドロップすると、同じ結果が得られないことがわかります。

LuckyTemplates Dax 変数は定数です: これは何を意味しますか?

変数 TotSales が宣言されており、これにより総売上高の値が取得されます。モルドバの行にいて、その変数の値が 235 万であるとします。ここで、RETURN ステートメントが呼び出されるまで値は変更できないことに注意してください。したがって、 RESULT変数のメジャーを計算すると、TotSales が得られます。これは 235 万の定数です。

次に、フィルター コンテキストをそれに適用します。Dates[ Year] = 2020ですが、この定数は変更できないため、問題はありません。したがって、 Dates[ Year] は 2019 、 2021 などと言えますが、 TotSales は RETURN まで定数として固定されているため、依然として同じ 235 万になります。

そして、それが返されると、次の行に進み、変数はオランダの値 (440 万) を取得します。このプロセスは繰り返され、RETURN ステートメントまで定数としてロックされます。得られるものは、2020 年まで絞り込んだメジャーではなく、総売上高メジャーで得られたものとまったく同じです。

したがって、実際にはあまり役に立たないようだと思われるかもしれません。この文脈では、そうではありません。これは実際、変数を使い始めたときによくある間違いですCALCULATE ステートメントの最初の式部分に変数を置きます。これは定数値としてロックされるため、通常、求めている結果は得られません。

イテレーター内での LuckyTemplates DAX 変数の使用

変数はイテレータ内に配置すると真価を発揮します。このケースについて説明します。これは以前の値です。日付を探してから、いくつかの条件に従って以前の値を探します。

LuckyTemplates Dax 変数は定数です: これは何を意味しますか?

という関数を使用する必要があったことを思い出してください。しかし今では、変数は実際にこのコンテキストで非常にうまく機能します。変数を使用する場合は、EARLIER 関数を今後は使用しないことを強くお勧めします。

そこで、式部分ではなく反復子部分に変数がある、より複雑な例を見てみましょう。で出た質問のケースです。メンバーは範囲内の各日付を調べて、週末や休日ではない最初の以前の日付を見つけ出したいと考えていました。

LuckyTemplates Dax 変数は定数です: これは何を意味しますか?

その代表例として、特に10月15日火曜日に注目したいと思います。望ましい結果は、その日付を確認することでした。月曜日はコロンブスデーだったので休日で、その前の日は日曜日と土曜日でした。それで、私たちが取得したい日付は10月11日、つまり金曜日でした。

その前日/休日なし/休日なしの列を見ると、火曜日は 11 日でした。月曜日、日曜日、土曜日も同様でした。それが結果として得たいものです。

上の表の横に、このケースのシナリオで使用した尺度を示します。選択された日付 ( VAR SelDate )である変数を宣言しましたが、それは単に日付の変数で 10 月 15 日を取得し、それを RETURN ステートメントまで定数として保持します。

次に、DAX を外側から内側に評価します。フィルター条件を見ると、日付のフィルターが削除され、一連の追加フィルターが設定されています。常に選択されている日付である 10 月 15 日を取得し、それより前の日付をすべて教えてくださいと言っています。そして、それらの日付のうち、いずれも土曜日、日曜日、または休日ではないことを確認します。次に、フィルターされた日付の

ここで、データを定数として選択することは、他のすべての日付が前後に評価される際の賭けのようなものであることがわかります。

選択した日付を取得したら、それより前の日付をすべてフィルターします。フィルタリングされたテーブルの最大値を取得します。したがって、他のすべての条件を取り除くと、15 日の最大値が 11 日の金曜日になります。次に、RETURN ステートメントまで進むと、翌日の 16 日から始まります。データの最後に到達するまでテーブルを繰り返し処理し続けます。

このケースからわかるように、変数を式部分ではなくイテレータ部分に入れると、計画どおりに動作します。変数は定数であるという事実を利用します。


LuckyTemplates での変数の使用 – 詳細な例
LuckyTemplates で広範な DAX 数式を処理する方法 – 書式設定のヒント
数式を簡略化するための DAX 変数とコメントが含まれています

結論

このブログでは、LuckyTemplates DAX 変数をメジャーに適用する方法と、変数がメジャーのイテレータ部分に配置された場合にどのように機能するかを説明しました。

これらの例で「変数は一定である」という表現が説明され、メジャーが機能しているように見えたり、時には機能しない理由についての洞察が得られることを願っています。この重要な概念が何を意味するのかについて、ある程度理解していただければ幸いです。

ではごきげんよう!

Leave a Comment

Power Automate の文字列関数: Substring と IndexOf

Power Automate の文字列関数: Substring と IndexOf

Microsoft フローで使用できる 2 つの複雑な Power Automate String 関数、substring 関数とindexOf 関数を簡単に学習します。

LuckyTemplates でビジュアル ツールチップを作成する

LuckyTemplates でビジュアル ツールチップを作成する

LuckyTemplates ツールチップを使用すると、より多くの情報を 1 つのレポート ページに圧縮できます。効果的な視覚化の手法を学ぶことができます。

Power Automate で HTTP 要求を行う

Power Automate で HTTP 要求を行う

Power Automate で HTTP 要求を作成し、データを受信する方法を学んでいます。

LuckyTemplates で日付テーブルを作成する方法

LuckyTemplates で日付テーブルを作成する方法

LuckyTemplates で簡単に日付テーブルを作成する方法について学びましょう。データの分析と視覚化のための効果的なツールとして活用できます。

2 つの方法による SharePoint 列の検証

2 つの方法による SharePoint 列の検証

SharePoint 列の検証の数式を使用して、ユーザーからの入力を制限および検証する方法を学びます。

SharePoint リストを Excel または CSV ファイルにエクスポート

SharePoint リストを Excel または CSV ファイルにエクスポート

SharePoint リストを Excel ファイルおよび CSV ファイルにエクスポートする方法を学び、さまざまな状況に最適なエクスポート方法を決定できるようにします。

Power Automate のオンプレミス データ ゲートウェイ

Power Automate のオンプレミス データ ゲートウェイ

ユーザーがコンピューターから離れているときに、オンプレミス データ ゲートウェイを使用して Power Automate がデスクトップ アプリケーションにアクセスできるようにする方法を説明します。

DAX 数式での LASTNONBLANK の使用

DAX 数式での LASTNONBLANK の使用

DAX 数式で LASTNONBLANK 関数を使用して、データ分析の深い洞察を得る方法を学びます。

CROSSJOIN 関数の使用方法 – LuckyTemplates および DAX チュートリアル

CROSSJOIN 関数の使用方法 – LuckyTemplates および DAX チュートリアル

LuckyTemplates で予算分析とレポートを実行しながら、CROSSJOIN 関数を使用して 2 つのデータ テーブルをバインドする方法を学びます。

TREATAS 関数を使用して LuckyTemplates で仮想リレーションシップを作成する

TREATAS 関数を使用して LuckyTemplates で仮想リレーションシップを作成する

このチュートリアルでは、LuckyTemplates TREATAS を使用して数式内に仮想リレーションシップを作成する方法を説明します。