Python における Self とは: 実際の例
Python における Self とは: 実際の例
このブログでは、LuckyTemplates の計算列とメジャーを比較し、それらの違いのいくつかについて説明します。このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。
また、どちらかを使用できる最適な状況も紹介します。
目次
計算列の作成
まず、LuckyTemplates で計算列を作成します。Excel のバックグラウンドを持つ人であれば、これがおそらく最もよく知られているものです。
Excel では、データのテーブルを取得し、Excel の数式を入力し、目的の結果が得られるまでそれを繰り返すことに慣れています。
これは LuckyTemplates 内で行うこともできます。
ご覧のとおり、Sales テーブルにはそれほど多くの情報がありません。
ただし、Products テーブルには、製品の現在の価格、製品のコストなど、使用できる有用な情報が大量にあります。
Sales テーブルに計算列を追加し、Products テーブルから Sales テーブルに情報を取り込むことができる数式または関数を見つけます。次に、それをその計算列内に配置します。
私がこれを行うことができる理由の大きな部分を占めるのはモデルです。私が構築したこのモデルにより、そのようなことが実現できます。
LuckyTemplates で計算列を作成するには、[新しい列] をクリックします。
この列に「価格」という名前を付けます。
数式バーで、「列」を「価格」に変更します。
必要な数式を追加していきます。
まず、別のテーブルから関連する値を返す関数である関数を使用します。
RELATED 関数内に「Current Price」と入力し、Products テーブルから Current Price 列を選択し、その直後に括弧を閉じます。
基本的に、私がやったことは、Products テーブルの Current Price 列の値を計算列に転送することでした。これは、RELATED 関数内の Current Price 列を参照して行いました。
この Sales テーブルの各行は 1 つのトランザクションを表します。
数式を入力すると、すべての取引で購入された各製品に対応する価格が表示されることに注目してください。
新しい LuckyTemplates 計算列を追加することもできます。これを「収益」と呼びます。
これを行うには、[新規] 列を再度クリックします。
次に、数式バーで、[列] を [収益] に変更します。
価格を入力し、Sales テーブルの [価格] 列をクリックして参照します。
それを行った後、この列の値と数量列の値を乗算します。
乗算演算子「*」を入力し、Sales テーブルから Quantity 列を選択します。
「価格」列を参照し、「数量」列を乗算して、「売上」テーブルに「収益」列を追加しました。
ここで行ったのと同じように追加情報をテーブルに追加するには、多数の計算列を作成する必要があります。
ただし、LuckyTemplates の優れた点は、モデルを正しく設定していれば、これを行う必要がないことです。計算列の代わりに、これらのメジャー内でメジャーとDAX 関数を使用できます。
計算列には確かに目的がありますが、それをファクト テーブルに配置することは実際には最適化された方法ではありません。
ただし、ルックアップ テーブルで計算列を使用することには意味があります。その理由は後ほど説明します。
その前に、LuckyTemplates 内でメジャーがどのように機能するかを説明します。
メジャーの作成
まず、顧客の名前を取得し、それをキャンバスにドラッグします。
次に、[視覚化] タブで強調表示されたアイコンをクリックして、それをテーブルに変換します。
ここで、ファクト テーブル内にデータ ポイントを追加しなくても、先ほど取得した収益数値を計算できることを示すための尺度として数式を作成します。
[フィールド] タブの [Sales] テーブルの下に、前に作成した [Revenue] 列が表示されます。
この列を取得してテーブルにドラッグします。
これを実行した後、各顧客から得られる収益を確認できるようになりました。
LuckyTemplates ではこれを実行しないでください。ビジュアルに計算を組み込みたい場合、列を取得してビジュアルにドラッグするのは正しい方法ではありません。
計算にメジャーを使用するのが、より最適な方法です。
列をテーブルにドラッグして、メジャーを使用して本当に同じ結果が得られるかどうかを確認しました。
メジャーは計算列とは大きく異なり、仮想計算に似ています。
LuckyTemplates 計算列は計算を実行してからテーブルにデータを埋め込みますが、メジャーはビジュアルに取り込んだ場合にのみ計算を実行します。
これは、場所を取らずにモデル内で多くの計算を実行できる素晴らしい方法です。
では、どのように対策が行われるのかを説明します。まず、[ホーム] タブに移動し、[新しいメジャー] を選択します。
このメジャーを「総売上高」と呼ぶことにします。
最初に使用する関数はと呼ばれるもので、テーブル内の各行に対して評価された式の合計を返す反復関数です。
この関数を追加するには、キーボードの Shift + Enter を押して新しい行に移動し、「SUMX」と入力します。
ご覧のとおり、この関数ではテーブルと式を入力する必要があります。
関数はテーブルを反復処理し、関数内に入力した内容に応じて式またはロジックを実行します。
ここでは、私が持っている Sales テーブルを使用します。
関数内に「Sales」と入力し、Sales テーブルをクリックして参照します。
式については、Sales テーブルを反復処理します。次に、各行で、Products テーブルの Quantity 列の値と Current Price 列の値を乗算します。
先ほどと同様に、「Current Price」列から値を取得するには、RELATED 関数を使用する必要があります。
これを行うには、「数量」を入力し、「売上」テーブルから「数量」列を選択します。次に、直後に乗算演算子「*」を入力します。
ここで、「Current Price」列から値を取得するには、RELATED 関数を入力します。その中に「現在の価格」と入力し、「製品」テーブルから「現在の価格」列を選択します。
RELATED 関数は、別のテーブル (この場合は Products テーブル) から関連する値を返します。
上に示した私が設定した公式は、見覚えがあるかもしれません。これは、収益数値を取得するために計算列で正確に実行したことです。
ここでの主な違いは、メジャー内で計算が仮想的に行われることです。これは、同じロジックを実行しますが、ファクト テーブル内にデータ ポイントを追加する必要がないことを意味します。
Enter キーを押すと、[フィールド] タブの下の Sales テーブルのフロントエンドにメジャーが表示されるようになります。
名前の横に電卓アイコンがあれば、それがメジャーであることがわかります。
Total Sales メジャーを取得し、テーブルにドラッグします。
ファクト テーブル内にデータ ポイントを追加しなくても、まったく同じ結果が得られたことがわかります。を使用して、より最適化された方法で仮想的に行われています。
先ほども述べたように、列をビジュアルにドラッグすることはお勧めしません。以下に示すように、[X] をクリックして [収益] 列を削除します。
先ほど作成した計算列がなくても収益は計算できるので、実際には必要ないので削除します。
まず、「Revenue」列を削除します。
次に、Price 列も削除します。
モデル内のすべてのデータ ポイントはある程度のメモリを消費します。小規模なモデルでは、不要なデータ ポイントがあっても問題になりません。
しかし、場合によっては、何百万行ものモデルが存在することがあります。その場合、実際には必要のない何百万行ものメモリを無駄にしていることになります。
この特定のテーブルには 15,000 行があります。テーブル内の不要なデータ ポイントを削除することで、モデルを最適化しました。必要のない多くの行を削除しました。
さて、私が作成した総売上高メジャーは完全に動的です。そしてその理由を説明します。
[フィールド] タブで、Salesperson テーブルを取得し、ビジュアルにドラッグします。
その後、下の画像で強調表示されたアイコンをクリックしてフィルターを追加します。
このフィルターでは、各営業担当者の合計売上高を確認できます。
カール・エリオットを選択しましょう。
数値が変化しているのがわかります。これらの新しい数字は、カール エリオットが販売した製品から得られる総売上高を表します。
[総売上高] 列のヘッダーをクリックすると、これらの数値を並べ替えることができます。
ここでは、[Visualizations] タブの下で強調表示されたアイコンをクリックすると表示される別の視覚的表現を示します。
Salesperson スライサーで Ernest Wheeler を選択すると、彼が販売した製品から合計売上が得られます。
ご覧のとおり、営業担当者が変わるたびに数字やビジュアルが変わります。
これが、対策が動的である理由です。すべての計算は、コンテキストに応じて事実上舞台裏で行われます。
これは単なる 1 つの公式です。さまざまな目的に使用できる DAX 式がまだたくさんあります。
DAX メジャーをうまく使用し、適切なモデルと組み合わせれば、夢に見るあらゆる計算を仮想的に行うことができます。
モデル内で何が起こっているのか理解できない場合は、より複雑な DAX 数式を記述する必要があると考え始めるでしょう。ただし、モデルを適切に設定すれば、DAX は簡単に実装できます。
DAX は確かに単純ではありません。ただし、モデルを正しく設定する方法を知っている場合は特に、学習曲線はそれほど長くありません。
ここで、別の例として、新しいメジャーを作成します。
[ホーム] タブで、[新しいメジャー] をクリックします。
この新しいメジャーに「合計数量」という名前を付けます。数式バーで、「メジャー」を「合計数量」に変更します。
このメジャーでは、各顧客に販売する製品の合計数量を計算します。
これを行うには、列内のすべての数値を加算する関数であるを使用します。SUM 関数内で、Sales テーブルの Quantity 列を参照します。
こんな感じで式を立ててみました。
何が起こるかというと、この関数は [数量] 列内のすべての数値を合計します。基本的には販売した商品の数量を合計します。
ここで、[フィールド] タブの下の [合計数量] メジャーを取得し、テーブルにドラッグします。
そうすることで、各顧客に販売した商品の数を確認できるようになります。
販売した製品の内訳を確認し、各顧客に特にどの製品を販売したかを確認したい場合は、[製品名] 列を値タブにドラッグします。
これで、顧客と製品名に基づいた総売上高と総数量の内訳がわかりました。これは、私が設定したデータ モデルによってのみ可能になりました。
計算列の適切な使用法
最後に紹介したいのは、LuckyTemplates で計算列を使用する場所です。計算列は、スライスとフィルタリングの可能性を構築するのに役立ちます。
すべてのトランザクションはモデルのベース (ファクト テーブルでもある) にあるため、すべての計算はそこで行われます。
一方、モデルの上部 (ルックアップ テーブル) は、計算に組み込んだロジックに応じてすべての計算をフィルターします。
例として、Dates テーブルに移動します。
たとえば、月に従って計算をフィルタリングしたいとします。ただし、視覚化の目的で、月の名前を短くしたいので、月の名前の最初の 3 文字のみを使用します。
Dates テーブルには Short Month フィルターがないので、作成します。
「新しい列」をクリックして、「日付」テーブルに新しい列を追加します。
この列に Short Month という名前を付けたいので、数式バーで列を Short Month に変更します。
次に、テキストから指定された数の文字を返す関数を使用します。
LEFT 関数を入力し、その中で Dates テーブルの MonthName 列を参照します。月名の最初の 3 文字だけが必要なので、3 を入力します。
こんな感じで式を立ててみました。
この数式は、MonthName 列のすべての値の最初の 3 文字を取得し、作成したばかりの Short Month 列に返します。
これが、フィルタリング テーブルを構築するという意味です。
ここでは計算が含まれていないため、実際には DAX メジャーを使用できません。
したがって、計算のフィルタリングに使用する列を作成するには、計算列を使用する必要があります。
ここで、先ほど作成した列を使用して、以前の計算を除外してみましょう。
[フィールド] タブで、[Short Month] 列を取得し、テーブルにドラッグします。
[Short Month] 列を使用してフィルターを作成するには、以下に示すように、[Visualizations] タブの下で強調表示されたアイコンをクリックします。
ここで、特定の月を選択すると、その月の売上に応じて計算がフィルタリングされていることがわかります。
以下は、短期月間フィルターとして 1 月を選択した場合の例です。
ご覧のとおり、Short Month フィルター内の月は実際には並べ替えられていません。これを修正するには、日付テーブルに戻ります。フィルターを並べ替えるために使用できる MonthOfyear 列が表示されます。
フィルターを並べ替えるには、[Short Month] 列を選択し、[列ツール] タブに移動して、[列で並べ替え] を選択し、[MonthOf Year] 列をクリックします。
その後、フィルターが正しい順序になっていることがわかります。
LuckyTemplates スライサーの選択内容を収集して他のメジャー内で使用する方法を学ぶLuckyTemplates
の日付テーブルに勤務日と週末の日の番号を配置する LuckyTemplates で
現在日付または特定の日付までの結果を表示する
結論
このブログでは、LuckyTemplates 計算列と DAX メジャーの違いについて説明しました。また、これらのいずれかを使用する最適な方法についても説明しました。
計算では、DAX メジャーを使用する方がはるかに効率的です。これらは、ファクト テーブル内にデータ ポイントを追加せずに実行できます。
ただし、計算をフィルタリングするために使用するルックアップ テーブルを構築する場合は、計算列を利用するのが合理的です。
これがあなたの分析に役立つことを願っています。両方を使っていただけることを楽しみにしています。
良い一日を過ごしてください!
Python における Self とは: 実際の例
R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。
この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。
このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。
この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。
LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。
LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。
このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。
これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。
LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて