LuckyTemplates で 2 つの日付間の就業日を計算する

LuckyTemplates で 2 つの日付間の就業日を計算する

休日をカウントするか、休日をカウントせずに、2 つの日付の間の稼働日を計算する方法を説明します。で何度も質問されてきたトピックです。

また、これがこのタイム インテリジェンス シリーズを締めくくるのに最適な方法になると信じています。これは、これまでに説明した他の多くの要素をカバーしていることを知っているからです。これらの要素には、休日テーブルの作成、拡張日付テーブルの作成、関数の使用などが含まれます。このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。

目次

2 つの日付間の勤務日を計算する方法

勤務日を計算するために使用できるさまざまなアプローチについて説明します。

Excel では、 NETWORKDAYS関数を使用して、勤務日を簡単に計算できます。ただし、DAX にはそのような機能がないため、これを回避する方法について説明します。

これを行う 1 つの方法は、拡張日付テーブルのいくつかの要素を使用することです。

もう 1 つのオプションは、thebiccountant.com ブログの Imke Feldmann から得たアプローチを使用することです。彼女は、Power Query から直接呼び出すことができるカスタム NetworkDays 関数を作成し、プロセスをはるかに高速化して複雑さを軽減しました。

これらのアプローチがどのように機能するかを示すために、非常に一般的なシナリオを使用します。

匿名化したプロジェクトが 100 件あります。

LuckyTemplates で 2 つの日付間の就業日を計算する

各プロジェクトには開始日終了日もあります。

LuckyTemplates で 2 つの日付間の就業日を計算する

単純な経過日数メジャーも作成しました。これは基本的に、各開始日と終了日の間の生の日数です。関数を使用しました。これは、営業日の日付を区別するのに便利な関数です。

LuckyTemplates で 2 つの日付間の就業日を計算する

データモデルは非常にシンプルです。これには、日付プロジェクトのテーブルが含まれています。

LuckyTemplates で 2 つの日付間の就業日を計算する

また、プロジェクト ID開始日終了日を含むファクト テーブルも表示されます。

LuckyTemplates で 2 つの日付間の就業日を計算する

比較のために、Excel (Power Bi ではない) を使用してNetworkDays (休日の有無にかかわらず) も計算しました。

LuckyTemplates で 2 つの日付間の就業日を計算する

もちろん、同じことをして Excel からデータを取り込むこともできます。ただし、ここでの目標は、Excel を使用せずに LuckyTemplates を使用して稼働日数を計算することです。

DAX を使用した日付間の勤務日の計算

日付のカウントを扱う場合は、Dates テーブルで

LuckyTemplates で 2 つの日付間の就業日を計算する

また、DATESBETWEENを使用して 、開始日と終了日の間のフィールドを絞り込みました。また、IsWorkingDayを追加して、就業日の場合はである必要があるという単純なブール ロジックを適用しました。を返します

スライサーのコンテキストを考慮するために、フィルターで仕上げました。

休日を含むバージョンに関しては、今説明した措置と非常に似ています。

LuckyTemplates で 2 つの日付間の就業日を計算する

これは、 DATESBETWEEN関数を使用した場合と同じ式です。とIsHolidayだけ追加しました

LuckyTemplates で 2 つの日付間の就業日を計算する

ここでも最後にALLSELECTED関数を使用しました。

これら 2 つのメジャーをテーブルにドラッグするとどうなるかを見てください。

LuckyTemplates で 2 つの日付間の就業日を計算する

予想どおり、休日を含む勤務日は Excel の休日を含む列と完全に一致します同じことが休日なしの勤務日列にも当てはまり、休日なしの Excel 列と一致します

Power Query を使用した勤務日の計算

thebiccountant.com ブログの Imke Feldmann が説明しているアプローチは、Power Query を使用する場合にさらに簡単なソリューションを提供します。

NETWORKDAYS 関数に関する彼女のブログの中で、Power Query で呼び出すことができる M コードを提供しました。

LuckyTemplates で 2 つの日付間の就業日を計算する

彼女のブログから M コードをコピーするだけです。

LuckyTemplates で 2 つの日付間の就業日を計算する

次に、Power Queryに移動し、 [新しいソース]で空のクエリを開きます

LuckyTemplates で 2 つの日付間の就業日を計算する

高度なエディターに移動します。

LuckyTemplates で 2 つの日付間の就業日を計算する

次に、コード全体をページに貼り付けます。コードにエラーがないことを確認するには、緑色のチェックが付いていることを確認してください。

LuckyTemplates で 2 つの日付間の就業日を計算する

呼び出すと、このテンプレートが表示されます。

LuckyTemplates で 2 つの日付間の就業日を計算する

ここに何を入力するかはあまり重要ではないので、2018 年 1 月 1 日から 2020 年 1 月 1 日までとします。

LuckyTemplates で 2 つの日付間の就業日を計算する

これで、クエリの下に表示されるようになります。後で使いやすいように名前を変更します。

LuckyTemplates で 2 つの日付間の就業日を計算する

Networkdaysという名前にします。

LuckyTemplates で 2 つの日付間の就業日を計算する

これで、そのクエリの使用を開始できます。Dataに進みます。

LuckyTemplates で 2 つの日付間の就業日を計算する

次に、[列の追加]で[カスタム関数の呼び出し]をクリックします。

LuckyTemplates で 2 つの日付間の就業日を計算する

これをNWDと呼び、Networkdays機能を使用します。

LuckyTemplates で 2 つの日付間の就業日を計算する

次に、以下のドロップダウン メニューから開始日終了日を選択します。

LuckyTemplates で 2 つの日付間の就業日を計算する

ここでは、週の始まりを月曜日から他のものに変更するオプションが提供されます。

LuckyTemplates で 2 つの日付間の就業日を計算する

この目的であれば月曜日で良いのでそのままにしておきます。次に、「OK」をクリックします。

LuckyTemplates で 2 つの日付間の就業日を計算する

ご覧のとおり、Excel の NetworkDays列に相当するNetworkDaysがすぐに計算されます。

LuckyTemplates で 2 つの日付間の就業日を計算する

ここで、休日を除外できるようにこれを微調整してみましょう。ホリデーテーブルに行くだけです。

LuckyTemplates で 2 つの日付間の就業日を計算する

テンプレートを思い出してください。ここでは、Holiday テーブルが 3 番目のパラメーターです。

LuckyTemplates で 2 つの日付間の就業日を計算する

したがって、ここでは休日テーブルを使用し、日付列を参照することにします。

LuckyTemplates で 2 つの日付間の就業日を計算する

ここでチェックマークをクリックして変更を適用します。

LuckyTemplates で 2 つの日付間の就業日を計算する

[00:11:00]
現在、更新され、すべての休日が削除されました。休日のないExcel NetworkDaysの列とまったく同じです。

LuckyTemplates で 2 つの日付間の就業日を計算する

この列の名前を「NWD 休日なし」に変更します。

LuckyTemplates で 2 つの日付間の就業日を計算する


日付テーブルに勤務日と週末の数値を追加する: LuckyTemplates のタイム インテリジェンス テクニック
DAX を使用して LuckyTemplates で勤務日の数値を紹介する Power
BI での平均を計算する: DAX を使用して平日または週末の結果を分離する

結論

私が使用した両方のアプローチは互いに大きく異なっていましたが、両方とも同じ結果が得られたことがわかります。これは、探している特定の Excel 関数に直接対応する関数がない場合でも、LuckyTemplates を最大限に活用する方法が実際にはたくさんあることを示しているだけです。

これは、Time Intelligence シリーズにとって素晴らしい成果でした。Melissa Dekorte と協力して、これらの素晴らしいタイム インテリジェンスのシナリオをすべて紹介するのは楽しかったです。

ここで特に強調したいことの 1 つは、DAX が LuckyTemplates の最も興味深い部分であるということです。ただし、LuckyTemplates の詳細をマスターすると、DAX がまったく関与しない他のソリューションの良さが分かるようになります。上で示した最後のアプローチと、タイム インテリジェンスの過去のビデオで共有したヒントがこの事実を証明しています。

ではごきげんよう、


Python における Self とは: 実際の例

Python における Self とは: 実際の例

Python における Self とは: 実際の例

RでRDSファイルを保存してロードする方法

RでRDSファイルを保存してロードする方法

R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。

最初の N 営業日の再考 – DAX コーディング言語ソリューション

最初の N 営業日の再考 – DAX コーディング言語ソリューション

この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。

LuckyTemplates のフィルター コンテキストの概要

LuckyTemplates のフィルター コンテキストの概要

この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。

LuckyTemplates を使用したビジネス レポート

LuckyTemplates を使用したビジネス レポート

これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて