2017-09-20 7 views
1

受領日時を受け取ったReceiptDateTime列があります。前営業日(月曜日〜金曜日)に存在するデータのみをフィルタリングして使用したいと考えています。例えば、月曜は金曜のデータだけを見たいと思っています。私はパワーBIでこれを達成しようとしています。パワーBIは前営業日に基づいてデータをフィルタリングします

これは可能ですか?本当に助けに感謝します。

+0

可能です。あなたが試したことを示してください? – user5226582

+0

クエリ自体にフィルタを追加しようとしましたが、代わりに計算フィールドを提案してもらえませんでしたか? – Sona123

+0

行の日付値が前営業日であるかどうかを判断する計算列 'isyesterday'を作成し、存在する場合は' 1'を返し、そうでない場合は '0'を返します。次に、 'isyesterday = 1'でフィルタリングすることができます。 ([今日](https://msdn.microsoft.com/en-us/library/ee634554.aspx)、[dateadd](https://msdn.microsoft.com/en-GB/library)関数が必要です。 /e634905.aspx)と[weekday](https://msdn.microsoft.com/en-us/library/ee634550.aspx) – user5226582

答えて

1

私は表1のようにパワーBIにロードされ、このテーブルで始まっている場合:

enter image description here

は、私は、新しい列(モデリング - >新しい列)を追加する... ...このコードでReceiptDateOnly = DATE(YEAR([ReceiptDateTime]),MONTH([ReceiptDateTime]),DAY([ReceiptDateTime]))のみReceiptDateTime列の日付を取得します。 (あなたは、日付/時刻の組み合わせを持っていた、と私たちは私がここでやる何のためだけの日数を必要があります示していた。)

enter image description here

私は、新しいテーブルを作成します(モデリング - >新規表1)は、このコードを使用しています... `Table2 = GROUPBY(Table1、Table1 [ReceiptDateOnly]、" SomeData "、sumx(CURRENTGROUP()、Table1 [SomeData]))。

は、それから私は、以前の勤務時間を決定するために...

PreviousWorkday = if(WEEKDAY('Table2'[Table1_ReceiptDateOnly])=2, DATEADD('Table2'[Table1_ReceiptDateOnly],-3,DAY), if(WEEKDAY('Table2'[Table1_ReceiptDateOnly])=1, DATEADD('Table2'[Table1_ReceiptDateOnly],-2,DAY), DATEADD('Table2'[Table1_ReceiptDateOnly],-1,DAY)) )

...このコードで新しい列を追加します。

それから私は、以前の勤務時間に関連するデータを取得するために... ...このコードで

PreviousWorkDaySomeData = SUMX(FILTER('Table2','Table2'[Table1_ReceiptDateOnly]=EARLIER('Table2'[PreviousWorkday])),'Table2'[SomeData])

を別の列を追加します。

私はこのようなテーブルを取得:

enter image description here

月曜日から金曜日のデータを使用しています。火曜日は月曜日のデータを使用します。水曜日は火曜日のデータを使用します。木曜日は水曜日のデータを使用しています。金曜日は木曜日のデータを使用しています。土曜日は金曜日のデータを使用します。日曜日は金曜日のデータを使用します。

関連する問題