Python における Self とは: 実際の例
Python における Self とは: 実際の例
このチュートリアルで説明した、各月の最初の N 営業日を動的に比較する問題をもう一度見てみましょう。この問題は、フォーラムの LuckyTemplates メンバーからのクエリに基づいていました。彼は、特定の月の最初の 5、10、15、20 の請求可能日 (週末と休日以外) を動的に調べて比較したいと考えていました。前の月。
パワー クエリを使用する代わりに、DAX コーディング言語ソリューションを考え出します。このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。
最初のビデオでは、この問題を解決する方法についてのパワー クエリ ソリューションを考え出しました。しかし、その後、LuckyTemplates の専門家の 1 人、Antriksh Sharma が、さらに深く掘り下げる価値のある、素晴らしく効率的な対策を思いつきました。彼がメジャーの開発に使用したテクニックのいくつかについて説明します。これにより、DAX ツールボックスに追加のツールが提供されます。
確かに私にとっても、これを検討した他の専門家にとってもそうでした。月をまたいだ同等の営業日の同一比較は、一般に、多くの状況で使用できる貴重なパターンです。
パワークエリに飛び込んで、Antrikshがここで何をしたかを見てみましょう。Month & Year、Total Sales、そして最後に、開発した what-if パラメーターに基づいて電力クエリを使用して選択したN 営業日の Total Sales があります。
アントリクシュはまったく異なるアプローチをとり、驚くほど短期間でこの問題全体を解決しました。コマンドの使用です。
これはあまり頻繁には使用しない DAX 関数ですが、この種の問題には最適です。SQL BI DAX ガイドを見ると、GENERATE 関数は 2 つの異なるテーブルを入力として使用し、SQL コマンド CROSS APPLY と同等の処理を実行するテーブル関数であると記載されています。
したがって、ベース テーブル (Table1) を取得してそれを反復処理し、次に 2 番目のテーブル式を取得して最初のテーブルの各行に対してそれを評価し、出力としてテーブルに返します。
Antriksh の対策を採用してテーブルに落とし込んでみましょう。前回実行したパワー クエリ ソリューションとまったく同じ結果が生成されることがわかります。これは良いことであり、両方の対策が非常にうまく検証されています。
この対策を分解してみましょう。ここで適用される最初のフィルターは Dates[IsBusinessDay] = TRUE です。これにより、拡張日付テーブルの IsBusinessDay フィールドに基づいて、週末および休日以外の日付がすべて取り出されます。
これについては、最初のチュートリアルで詳しく説明し、それを休日のテーブルに結び付ける方法についても説明しました。
この興味深い部分は、2 つのテーブル入力にあります。最初のテーブルは、日付テーブルの月と年フィールドの 1 列のテーブルです。
しかし、2 番目のテーブル入力では興味深いことが起こります。Antriksh はを使用し、動的パラメーターを TOPN の行数として使用しました。
Total Salesメジャーは 2 番目のテーブルにアタッチされ、その後、最初のテーブルに適用されます。
目次
DAX コーディング言語を使用した複雑なメジャーの理解
このような複雑なメジャーが何をしているのかを理解する最も簡単な方法の 1 つは、表形式エディタにアクセスすることです。この式を見て、最初にこの TOPN 式が何をしているのかを理解することができます。
TOPN 部分をコピーして、新しいDAX クエリを作成しましょう。DAX クエリは EVALUATE で始まることに注意してください。
TOPN 部分を貼り付けると、販売注文テーブルから最初の 5 つの日付が取得されていることがわかります。TOPN には、sales テーブル内のすべての注文日の値で構成されるテーブルがあります。
この TOPN 関数は、what-if パラメーターの値 (この場合は 5) を取得し、それを販売注文日フィールドに適用します。次に、そのフィールドに基づいて、フィルター コンテキスト内の最初の 5 つの日付を昇順で取得します。
追加のフィルター コンテキストがないことを考えると、テーブル全体から最初の 5 つの日付を取得するだけです。
@Sales 列は、適切なフィルター コンテキスト内の総売上高を TOPN テーブルに追加しているだけです。
これまでのところ、月と年の最初のテーブル、売上テーブルの最初の N 日付の TOPN の 2 番目のテーブル、そしてそれに関連付けられた総売上高ができています。
DAX コーディング言語での GENERATE テーブルの使用
この GENERATE テーブルが何をしているのかを見てみましょう。表形式エディターに戻り、新しい DAX クエリを作成します。
いつものように EVALUATE から開始し、コードの GENERATE 部分に貼り付けて、「5」をクリックします。
最初のテーブルの各行が反復され、@Sales 関数のコンテキストで評価された TOPN テーブルの 5 行と結合していることがわかります。
最初のテーブルの最後に到達するまで、4 月の最初の 5 営業日、5 月の最初の 5 営業日、6 月の最初の 5 営業日というように続きました。
これはまさに私たちが必要としているものであり、これらの値を合計するという比較的単純な問題になります。結果 (GENERATE 結果のテーブル変数) が得られたので、@Sales 関数を合計する必要があります。
コンテキスト内で、4 月の最初の 5 営業日、5 月の最初の 5 営業日などを合計して合計 $23,737,430 になるまで集計します。この場合、運用する月と年のコンテキストはありません。 。
これにより、@Sales 列全体が合計され、パワー クエリ ソリューションで取得したのとまったく同じ合計が得られます。
スライサーを 10 に変更すると、パワー クエリで行ったのと同じ結果が DAX コーディング言語で動的に得られることがわかります。
また、加えた変更を反映するために動的に調整される下部の棒グラフもあります。
小節タイトルを動的に調整する
もう一つ紹介したいトリックがあります。what-if パラメータに動的な調整を作成し、それをメジャー タイトルに動的に結び付けることができます。
たとえば、上部のスライサーを 15 に変更すると、下部のメジャーの名前が「Total Sales for the First 15 Business Days of Each Month」に動的に変更されます。
DAX では、条件付き書式設定を使用してこれを簡単に行う方法があります。基本的には 3 つの文字列を取得するだけです。1 つ目はTotal Sales for Firstで、それを what-if パラメーターから取得した値と連結し、それをタイトルの残りの部分に結び付けます。
次に、ビジュアルに移動し、タイトルの条件付き書式設定に移動して、fxをクリックします。
フィールド値によって書式設定し、動的なタイトル メジャーを選択します。これにより、what-if パラメーターの選択が変更されます。
結論
私たちが現在持っているのは、DAX コーディング言語を使用した完全なソリューションです。GENERATE 関数を使用してそれを行うための非常に創造的で効率的な方法について説明しました。素晴らしい DAX 知識を私たちに共有してくれた Antriksh に感謝したいと思います。私は彼の DAX ソリューションを試しながら多くのことを学びました。あなたも同様に学んだことを願っています。
Python における Self とは: 実際の例
R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。
この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。
このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。
この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。
LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。
LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。
このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。
これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。
LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて