Python における Self とは: 実際の例
Python における Self とは: 実際の例
休日をカウントするか、休日をカウントせずに、2 つの日付の間の稼働日を計算する方法を説明します。で何度も質問されてきたトピックです。
また、これがこのタイム インテリジェンス シリーズを締めくくるのに最適な方法になると信じています。これは、これまでに説明した他の多くの要素をカバーしていることを知っているからです。これらの要素には、休日テーブルの作成、拡張日付テーブルの作成、関数の使用などが含まれます。このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。
目次
2 つの日付間の勤務日を計算する方法
勤務日を計算するために使用できるさまざまなアプローチについて説明します。
Excel では、 NETWORKDAYS関数を使用して、勤務日を簡単に計算できます。ただし、DAX にはそのような機能がないため、これを回避する方法について説明します。
これを行う 1 つの方法は、拡張日付テーブルのいくつかの要素を使用することです。
もう 1 つのオプションは、thebiccountant.com ブログの Imke Feldmann から得たアプローチを使用することです。彼女は、Power Query から直接呼び出すことができるカスタム NetworkDays 関数を作成し、プロセスをはるかに高速化して複雑さを軽減しました。
これらのアプローチがどのように機能するかを示すために、非常に一般的なシナリオを使用します。
匿名化したプロジェクトが 100 件あります。
各プロジェクトには開始日と終了日もあります。
単純な経過日数メジャーも作成しました。これは基本的に、各開始日と終了日の間の生の日数です。関数を使用しました。これは、営業日の日付を区別するのに便利な関数です。
データモデルは非常にシンプルです。これには、日付とプロジェクトのテーブルが含まれています。
また、プロジェクト ID、開始日、終了日を含むファクト テーブルも表示されます。
比較のために、Excel (Power Bi ではない) を使用してNetworkDays (休日の有無にかかわらず) も計算しました。
もちろん、同じことをして Excel からデータを取り込むこともできます。ただし、ここでの目標は、Excel を使用せずに LuckyTemplates を使用して稼働日数を計算することです。
DAX を使用した日付間の勤務日の計算
日付のカウントを扱う場合は、Dates テーブルで
また、DATESBETWEENを使用して 、開始日と終了日の間のフィールドを絞り込みました。また、IsWorkingDayを追加して、就業日の場合はである必要があるという単純なブール ロジックを適用しました。を返します。
スライサーのコンテキストを考慮するために、フィルターで仕上げました。
休日を含むバージョンに関しては、今説明した措置と非常に似ています。
これは、 DATESBETWEEN関数を使用した場合と同じ式です。とIsHolidayだけ追加しました。
ここでも最後にALLSELECTED関数を使用しました。
これら 2 つのメジャーをテーブルにドラッグするとどうなるかを見てください。
予想どおり、休日を含む勤務日は Excel の休日を含む列と完全に一致します。同じことが休日なしの勤務日列にも当てはまり、休日なしの Excel 列と一致します。
Power Query を使用した勤務日の計算
thebiccountant.com ブログの Imke Feldmann が説明しているアプローチは、Power Query を使用する場合にさらに簡単なソリューションを提供します。
NETWORKDAYS 関数に関する彼女のブログの中で、Power Query で呼び出すことができる M コードを提供しました。
彼女のブログから M コードをコピーするだけです。
次に、Power Queryに移動し、 [新しいソース]で空のクエリを開きます。
高度なエディターに移動します。
次に、コード全体をページに貼り付けます。コードにエラーがないことを確認するには、緑色のチェックが付いていることを確認してください。
呼び出すと、このテンプレートが表示されます。
ここに何を入力するかはあまり重要ではないので、2018 年 1 月 1 日から 2020 年 1 月 1 日までとします。
これで、クエリの下に表示されるようになります。後で使いやすいように名前を変更します。
Networkdaysという名前にします。
これで、そのクエリの使用を開始できます。Dataに進みます。
次に、[列の追加]で[カスタム関数の呼び出し]をクリックします。
これをNWDと呼び、Networkdays機能を使用します。
次に、以下のドロップダウン メニューから開始日と終了日を選択します。
ここでは、週の始まりを月曜日から他のものに変更するオプションが提供されます。
この目的であれば月曜日で良いのでそのままにしておきます。次に、「OK」をクリックします。
ご覧のとおり、Excel の NetworkDays列に相当するNetworkDaysがすぐに計算されます。
ここで、休日を除外できるようにこれを微調整してみましょう。ホリデーテーブルに行くだけです。
テンプレートを思い出してください。ここでは、Holiday テーブルが 3 番目のパラメーターです。
したがって、ここでは休日テーブルを使用し、日付列を参照することにします。
ここでチェックマークをクリックして変更を適用します。
[00:11:00]
現在、更新され、すべての休日が削除されました。休日のないExcel NetworkDaysの列とまったく同じです。
この列の名前を「NWD 休日なし」に変更します。
日付テーブルに勤務日と週末の数値を追加する: LuckyTemplates のタイム インテリジェンス テクニック
DAX を使用して LuckyTemplates で勤務日の数値を紹介する Power
BI での平均を計算する: DAX を使用して平日または週末の結果を分離する
結論
私が使用した両方のアプローチは互いに大きく異なっていましたが、両方とも同じ結果が得られたことがわかります。これは、探している特定の Excel 関数に直接対応する関数がない場合でも、LuckyTemplates を最大限に活用する方法が実際にはたくさんあることを示しているだけです。
これは、Time Intelligence シリーズにとって素晴らしい成果でした。Melissa Dekorte と協力して、これらの素晴らしいタイム インテリジェンスのシナリオをすべて紹介するのは楽しかったです。
ここで特に強調したいことの 1 つは、DAX が LuckyTemplates の最も興味深い部分であるということです。ただし、LuckyTemplates の詳細をマスターすると、DAX がまったく関与しない他のソリューションの良さが分かるようになります。上で示した最後のアプローチと、タイム インテリジェンスの過去のビデオで共有したヒントがこの事実を証明しています。
ではごきげんよう、
Python における Self とは: 実際の例
R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。
この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。
このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。
この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。
LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。
LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。
このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。
これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。
LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて