Excel Power Query EndOfWeek


1

日付のPower Query列があります。この列の行を週の終わりに変換する必要があります。週末を日曜日に基づいて行うにはどうすればよいですか?

デフォルトの「計算された週の終わり」変換では、土曜日を週の終わりとします。

これは、クエリエディタによって生成された式であり、調整する必要があります。

= Table.TransformColumns(#"Changed Type",{{"WorkDate", Date.EndOfWeek, type date}})

Date.EndOfWeek関数に関するMSDNの情報を次に示します。MSDN Date.EndOfWeek

ここに私が試したいくつかのことを示しますが、それぞれがエラーになります:

= Table.TransformColumns(#"Changed Type",{{"WorkDate", Date.EndOfWeek(, Day.Sunday), type date}})
= Table.TransformColumns(#"Changed Type",{{"WorkDate", Date.EndOfWeek("WorkDate", Day.Sunday), type date}})
= Table.TransformColumns(#"Changed Type",{{"WorkDate", Date.EndOfWeek(WorkDate, Day.Sunday), type date}})

更新:

ある種の回避策である解決策を見つけました。Google検索の結果に基づいて、次のようにTable.TransformColumns関数を次のTable.AddColumn関数に置き換えました。

= Table.AddColumn(#"Changed Type", "WeekEnding", each Date.EndOfWeek([WorkDate], Day.Monday), type date)

ただし、新しい列を作成する(古い列を削除する)のではなく、既存の列を変更することでこれを実現する方法を引き続き知りたいと思います。

また、EndOfWeek関数の2番目のパラメーターを日曜日ではなく月曜日に変更する必要があることに気付きました。パラメーターは週の最初の曜日を要求します。

回答:


0

派生列を追加してから古いソースを削除することについてそれほど難しいことはありませんか?これはPQLで非常に一般的な操作であり、パフォーマンス、コードなどへの影響は簡単です。

通常、列を選択する「クリーンアップ」ステップは、1つのステップで複数の列を削除できるクエリの最後まで残します。とにかく、途中の手順でこれらの「ワークアウト」列を消去する場合があります。


それについて難しいことは何もありません、それが私がやったことです。元の質問の解決策は、完全性と将来の参照のために知るのに役立ちます。各Date.EndOfWeek(...)は、TransformColumnsではなくAddColumnで機能するのはなぜですか?TransformColumnsの適切な変更は何ですか?これらの理由/方法/戦略を次の同様の状況に適用できますか?その他新しい列を追加して古い列を削除することが最も適切な方法である場合、またはそれを行う唯一の方法である場合は、そのことも知っておくと役立ちます。
フレッド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.