Python における Self とは: 実際の例
Python における Self とは: 実際の例
一部の日が考慮されていない通貨レート表に対処する方法を説明します。これらの日は週末または休日である可能性があります。
特にレポートを作成しているビジネスが週末や祝日に営業していない場合は、これが問題にならない場合もあります。しかし、その場合、月末の合計が不正確になる可能性があります。
データの欠落に対処する方法を知っていれば、複数の通貨が使用されている場合でも売上を公平に比較できるようになります。たとえば、通貨の価値が下がったために総売上が減少していると思う日があるかもしれません。実際には、指定された期間内のすべての日数を考慮していないため、総売上高は低くなる可能性があります。
この例では、最後に利用可能な通貨レートを取得し、不足している日付にそれを使用してスペースを埋めます。このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。
目次
通貨レート表の指定されたデータ
以下はファクト テーブル、つまり通貨レートテーブルです。ユーロを基軸通貨として使用します。
2016 年 1 月のデータと、毎日の関連するクロスレートが表示されます。
1月1日からはすべてが順調に見えます。しかし、26 日を入力すると、その次の行の次の日付は 29 日になります。
これは、27 日と 28 日のデータが欠落していることを意味します。
この状況に対処するために Power Query の使用を好む人もいるかもしれないことに注意してください。現時点では、DAX にのみ焦点を当てたいと思います。
ここで、27 日と 28 日に 0.920 を使用したいとします。26日に使用したクロスレートです。DAX を使用してこれを行うにはどうすればよいですか?
Excel で簡単にできるという人もいるかもしれません。彼らはある程度正しいかもしれない。
ただし、LuckyTemplates が Excel に対して持つ利点は、何もやり直したり変更したりすることなく、さまざまな観点からデータをさらに深く掘り下げることができることです (Excel ではおそらくこのようなことが起こります)。
考慮する必要があるすべての対策と、通貨レート表の欠落データをカバーするために実行するさまざまな手順を示します。
通貨レートの測定
まずはメインテーブルをご紹介します。ここには、ユーロの日付と通貨レートを含むいくつかのデータがすでにあります。
この場合、通貨レートは単純に関数を使用します。
1 日あたり 1 つの通貨レートを扱っているため、 SUM、、などの関数を簡単に使用できます。行ごとにデータが表示されるのは完全に意味があります。
ここでの唯一の問題は、 Totalに何が起こるかということです。
これは合計が 26.693 と表示されますが、まったく意味がありません。文字通り、その日の為替レートを合計しただけです。このため、実際の Total を取得するには、数日間反復する方法を見つける必要があります。
そこで、通貨日付のメジャーを調べて、それを解決してみます。
現在の日付の測定
個人的には、常に現在の日付メジャーを作成して、現在のフィルターコンテキストに現在の日付を取り込みます。
使用することも好みます。この例では、MAX関数を使用すると、合計で 1/31 が得られます。これは指定された最後の日付であるため、これはより合理的です。
最終通貨日
私のテーブルには、Last Currency Dateも含まれています。これを取得するには、関数を使用し、FactCurrencyRatesテーブルとDateテーブルを参照します。
これはLASTDATE関数を示していますが、 MAXを使用することも可能です。これは、現在の日付テーブルと同じ前提を使用しますが、通貨レートテーブルに関連して特定の時点を示します。
下にスクロールすると、月の 27 日と 28 日のデータがないことがわかります。
これらの欠落している日数に対処するために、 「最終報告通貨日付」列について説明します。
最後に報告された通貨の日付
最後に報告された通貨の日付によって、欠落した日数に使用するレートが決まります。コンセプトは、最後に報告された通貨レートが、データが欠落している日に使用されるレートと同じになるということです。
27日、28日ともにデータがないため、26日のデータが適用されることになります。
この例では、最後に報告された通貨の日付が必ずしも前日であるとは限らないことも示しています。27 日のデータもないため、28 日にどのレートを使用するかを決定するには、26 日に戻る必要があります。
これがどのように行われたかを示す測定に入る前に、ここでのすべてがフィルターがどのように機能するかというコンテキストで起こっていることを思い出してください。具体的にどのデータに焦点を当てたいのかを考えなければなりません。
私は月の 27 日の行にいるので、フィルター参照を削除し、代わりに 26 日に焦点を当てたいと思います。これは、適用されるフィルターを変更できるため、またはデータをさらに制限することしかできない関数と混同しないでください。
ここでは、 「最終報告通貨日」に使用した基準を示します。この例ではCALCULATE を使用しました。
私は常にできるだけ多くの変数を見つけようとしています。変数は定義されている場所の値を取るため、各変数のスコープを確認するだけで済みます。
この場合、どの関数を使用してもこの変数は変わらないことがわかっているので、現在の日付を使用します。
この変数を見つける必要はないことに注意してください。これは、メジャーで使用するすべての変数のスコープを確認できる単なる習慣です。
測定に戻りますが、DAX に現在の日付のフィルターを削除して、最後に記録された通貨の日付を提供するように指示するにはどうすればよいでしょうか?
(DimDate) テーブルにFILTER を使用します。
ALL関数は、適用されているフィルターを削除し、使用できる DimDate テーブルを開きます。
次に、MINを使用して、 Last Currency Date または Current Date のいずれかに等しいDimDate 列の部分を使用することを DAX に伝えます。
最終通貨日付と現在の日付が異なる場合はどうなりますか? その場合は、常にLast Currency Dateを使用します。
このため、1/26 から 1/27 の間は 1/26 で措置されます。ここから、正しい日付が通貨レートテーブルに適用され、最後に報告された通貨レートが取得されます。
最後に報告された通貨レート
最後に報告された通貨レートをテーブルにドラッグしてみましょう。
27 日と 28 日では、26 日に使用されたのと同じレートであるため、通貨レートとして 0.9200 が使用されていることがわかります。
以下は、最後に報告された通貨レートに使用した尺度です。
繰り返しになりますが、私はいつもいくつかの変数を定義することから始めます。この場合、[Currency Selected]および[Last Reported Currency Date]を使用しています。
ここではさまざまな通貨を扱うため、「通貨の選択」を使用します。これが、特定の時点でどの特定の通貨が評価されているかを正確に特定する必要がある理由です。
この例では、指定されたスライサーを使用してさまざまな通貨にアクセスできます。
もちろん、スライサーを使用する必要はありません。テーブルやビジュアルから来ることもあります。重要なのは、さまざまな通貨でデータを表示できるフィルターがあることです。
LastReportedDateについては、先ほど説明したLast Reported Currency Dateと同じです。
Rate変数には関数を使用しました。
CurrencyRatesのファクト テーブルからCrossrateを取り込んでいます。
1 つのテーブルに多数の通貨があるため、日付を単一の参照点として使用することはできません。正しい通貨と正しい日付の組み合わせである必要があります。
これが、通貨ティッカーがCurrency Selectedと等しいと言及している理由です。
LastReportedDateも参照しています。
そのため、表を見ると、26 日が 3 回表示されてから、29 日にジャンプします。
最後に報告されたレートを使用した売上と現在の日付を使用した換算売上
現在は最終段階にあり、最終報告通貨レートを使用して売上を換算する作業が含まれます。
基本的に、メジャーはこのLast Reported Currency Rateを取得し、それにBase Measure (この場合はTotal Sales )を乗算するだけです。
このメジャーが適用されると、これら 2 つの日付が空白になることがわかります。これは、これらの日付には販売がないことを意味します。
また、27日と28日には売りがあることも判明しました(以前は通貨データがありませんでした)。
最後に報告された通貨レートを参照したため、これらの数値はユーロに換算されています。
今回は、現在の日付を使用して換算された売上を示します。
今回は、最後に報告された日付を考慮するのではなく、現在の日付のみを確認します。
そのメジャーを表の別の列に入力すると、27 日と 28 日の空白スペースのみが表示されます。
最終レポート レートを使用した場合と現在の日付を使用した場合で換算された売上高を比較すると、合計には大きな違いが示されます。
最終報告日を使用して換算された売上が合計 400 万を超える場合、現在の日付を使用して換算された売上は合計 380 万のみを示します。
このため、使用している変数を理解することが非常に重要です。合計を見ると、ユーロが大きな打撃を受け、価値を押し下げているようにしか見えません。しかし実際には、合計の減少は通貨レート表の未計上データによるものです。
データのクリーンアップ
欠落したデータを入力したので、テーブルをクリーンアップします。
ここに数値をユーロで明確に示す書式設定された売上列を追加しました。
非常に多くのステップを経たので、ここにはかなりの数のコラムが蓄積されました。
ただし、データを表示する際にこれらすべてが必要なわけではありません。そこで、[値]ペインでそれらを削除して、それらを削除します。
これらを削除すると、必要なデータのみが表示されたすっきりとしたテーブルが完成します。
右側のスライサーを使用して通貨を変更できることに注意してください。
表をより完全なものにするために、 「単一選択」オプションをオフにして、他のすべての通貨を追加します。
これにより、私の番号が米ドル、ユーロ、英国ポンドで表示されます。
ここには、売上のない日を表す空白スペースもいくつか見られます。
「データのないアイテムを表示」をオフにしてそれらを削除します。
これで、テーブルには売上のある日付を表す行のみが含まれます。
これにより、さまざまな通貨に基づいた数値を適切に比較できます。
使用して各行を反復処理したため、合計にも正しい数値が表示されます。
これはとても重要です。SUMXを使用しない場合、正しい通貨レートが使用されているかどうかを考慮せずに、すべての列を追加するだけになってしまいます。
LuckyTemplates で通貨換算テーブルを作成する
LuckyTemplates の複数通貨ロジック – LOOKUPVALUE の例
DAX を使用した LuckyTemplates の通貨の形式
結論
前に述べたように、これが欠落データに対処する唯一の方法であるとは限りません。実際、これを行う方法は他にもたくさんあります。
たとえば、場合によっては、月初めのデータを使用し、その同じ数値を為替レート表全体に適用できます。他のアプローチについては、今後別のブログで説明する予定です。
現時点では、最終報告レートを使用することが私にとって最も合理的であるため、このアプローチを使用しました。これが最も直感的なオプションだと思います。
また、強調したいことの 1 つは、フィルター コンテキストからすべてを理解する必要があるということです。フィルターを上書きするにはどうすればよいですか? 最後に報告されたデータを取り込むにはどうすればよいですか? これらは、最終的に正しい数値を取得する方法を理解するのに役立ちます。
ではごきげんよう、
Python における Self とは: 実際の例
R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。
この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。
このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。
この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。
LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。
LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。
このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。
これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。
LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて