LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

日付テーブルの M コードをテーブル クエリに変換する方法を説明します。このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。

M コードの経験があれば簡単に理解できるため、このチュートリアルの難易度は中級だと考えます。関連した経験がない場合は、ここで説明する概念を理解しやすくするために、まず M コードを調べることをお勧めします。

目次

呼び出される関数のクエリと日付テーブルのクエリ

これは、日付テーブル クエリと呼び出される関数クエリです。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

右側の [適用されたステップ] ペインを見ると、ステップが 1 つだけあります。そのクエリのソースが表示されます。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

したがって、この日付テーブルの M コードを開発する場合は、適用した変更を確認するために関数とテーブル クエリを切り替える必要があります。

これは、変更によって発生したエラーへの対処がより複雑になることを意味します。テーブル クエリ自体でエラーが発生するため、コード行を検索してエラーを修正する必要があります。

次のページは、関数の代わりにテーブルを返す日付クエリを示しています。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

右側の「適用されたステップ」を見ると、今回は複数のステップがリストされていることがわかります。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

つまり、日付テーブル M コードを開発すると、このテーブル クエリの変更結果がすぐに表示されます。

さらに重要なのは、変更によってエラーが発生した場合に、エラーの原因となったステップを簡単に特定できることです。これにより、問題の解決が容易になります。

M コードの適用

日付テーブルの M コードは、LuckyTemplates フォーラムにあります。これは、 M コード ショーケース内のトピック「拡張データ テーブル Power Query M 関数」の下にあります。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

M コードは一番上まであります。コード全体を強調表示してコピーします。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

次に、新しい空のクエリを作成します。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

高度なエディターを開いて、そのコードを貼り付けます。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

エラーが検出されていないことが確認されたので、「完了」をクリックします。

これの名前を変更して、Dates と名付けましょう。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

このクエリは関数を返しますが、必要なのはテーブルです。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

必要な変更を加えるために、詳細エディターに戻ります。

関数をテーブルに変換する

これが関数ではなくテーブルを返すようにするには、アドバンスト エディターで M コードにいくつかの変更を加える必要があります。

M コードを見ると、let ステートメントの数に基づいて、少なくとも 2 つの環境があることが簡単にわかります。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

各 let ステートメントには独自の in 句があり、下部にあります。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

これをテーブルにするには、この last in 句を削除するだけの方が簡単だと思うかもしれません。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

しかし、私はそんなつもりはありません。代わりに、最後の in 句の前に 2 つのスラッシュを追加してコメントアウトします。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

最初の let ステートメントでもこれを実行します。これにより、非アクティブになります。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

内側の let ステートメントの下に、パラメータを宣言するセクションを作成します。これらのパラメータをこのコードに渡す必要があるからです。

これらの変数を宣言する場所をマークします。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

次に、外側の let ステートメントから最初の変数をコピーし、スペースに貼り付けます。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

私のデータ セットでは、履歴データは 2017 年より遡ることはできません。そのため、StartDate 変数に値を渡すには、組み込みの日付を使用できます。1 月 1 日を入力し、行をカンマで終了します。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

次に、次の変数である EndDate をコピーして貼り付けます。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

EndDate には予測が必要であることはわかっています。だからこそ、この EndDate を常に来年の終わりにしたいのです。

M コード内に CurrentDate の変数がすでにあるので、それを参照します。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

ここでも、固有の日付を使用します。Date. Year を抽出し、CurrentDate を年の値 +1 として使用します。日付も12月31日にしたいです。

繰り返しますが、その行はカンマで終わります。

次の変数は、FYStartMonth というオプションのパラメーターです。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

したがって、その名前をコピーして貼り付けます。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

先ほど貼り付けた変数の下のFYStartMonthの下に赤い下線が表示されていることに注目してください。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

名前が一致しているからです。別々の環境にいたときは問題ありませんでした。ただし、単一環境内の変数名は一意である必要があります。これは、貼り付けたばかりの新しい変数の名前を変更する必要があることを意味します。

これをFYStartMonthと呼ぶ代わりに、FYStartMonthNumと呼ぶことにします。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

この変数には値を割り当てるつもりはないので、null を入れるだけです。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

変数の名前を変更したため、このパラメーターが参照されている場所でも名前を変更する必要があります。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

変数に戻り、最後にカンマを追加してその行を閉じます。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

次のパラメータはオプションの休日リストです。これもコピーして貼り付け、null として宣言します。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

WDStartNum についても同じことが当てはまります。これをコピーして貼り付けて、null として宣言します。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

日付テーブル コードの開始位置を示すために、ここに別のコメントを追加します。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

[完了] をクリックすると、クエリが正しい型を返すことがわかります。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

関数の代わりにテーブルができました。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

[適用されたステップ] ペイン内には、クエリを構成するすべてのステップも表示されます。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

日付テーブルに変更を加えたい場合は、リボンを使用して手順を変更または追加するのが簡単です。変更を加えるたびに、クエリの結果もすぐに表示されます。

テーブルクエリを関数に戻す

日付テーブルのクエリを関数に戻したいとします。M コード内でいくつかの点を調整するだけで、以前に行った変更を元に戻すことができます。

Advanced Editor に戻り、外側の let ステートメントの前にあるスラッシュを削除します。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

次に、in ステートメントの前にあるスラッシュを削除します。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

次に、先ほど追加した変数ブロックをコメントアウトします。そこで、ここにスラッシュとアスタリスクを追加します。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

変数ブロックの後にはアスタリスクとスラッシュが続きます。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

以前、FYStartMonthNum のためにこのコード行を変更したときのことを覚えていますか?

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

そのコード行をコピーします。次に、新しい行を追加して貼り付けます。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

最初のものをスラッシュアウトします (以前に変数名に変更を加えた場所です)。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

次に 2 つ目で、編集された変数名を見つけます。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

そして、それらをFYStartMonthに戻します。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する

[完了] をクリックすると、テーブル クエリが再び関数に変わります。

LuckyTemplates で日付テーブル関数をテーブル クエリに変換する


LuckyTemplates で動的日付クエリ テーブルを作成する: クエリ エディターのチュートリアル
LuckyTemplates で日付テーブルを作成する
Power Query 日付テーブルの動的な開始日と終了日を設定する

結論

繰り返しになりますが、特に関数をテーブル クエリに変換したり、その逆を行ったりするこのような場合に、M コードがいかに便利であるかを示しました。LuckyTemplates フォーラムにある M コードにアクセスできる限り、将来このようなシナリオでそれを使用できます。

の M コード ショーケースでは、他の状況で使用できる他の M コードを参照することもできます。これは協力的なコミュニティなので、専門家やメンバーからの他のアイデアについてのコメントを読むことができます。

ではごきげんよう、

メリッサ

***** LuckyTemplates を学習していますか? *****






Leave a Comment

Power Automate の文字列関数: Substring と IndexOf

Power Automate の文字列関数: Substring と IndexOf

Microsoft フローで使用できる 2 つの複雑な Power Automate String 関数、substring 関数とindexOf 関数を簡単に学習します。

LuckyTemplates でビジュアル ツールチップを作成する

LuckyTemplates でビジュアル ツールチップを作成する

LuckyTemplates ツールチップを使用すると、より多くの情報を 1 つのレポート ページに圧縮できます。効果的な視覚化の手法を学ぶことができます。

Power Automate で HTTP 要求を行う

Power Automate で HTTP 要求を行う

Power Automate で HTTP 要求を作成し、データを受信する方法を学んでいます。

LuckyTemplates で日付テーブルを作成する方法

LuckyTemplates で日付テーブルを作成する方法

LuckyTemplates で簡単に日付テーブルを作成する方法について学びましょう。データの分析と視覚化のための効果的なツールとして活用できます。

2 つの方法による SharePoint 列の検証

2 つの方法による SharePoint 列の検証

SharePoint 列の検証の数式を使用して、ユーザーからの入力を制限および検証する方法を学びます。

SharePoint リストを Excel または CSV ファイルにエクスポート

SharePoint リストを Excel または CSV ファイルにエクスポート

SharePoint リストを Excel ファイルおよび CSV ファイルにエクスポートする方法を学び、さまざまな状況に最適なエクスポート方法を決定できるようにします。

Power Automate のオンプレミス データ ゲートウェイ

Power Automate のオンプレミス データ ゲートウェイ

ユーザーがコンピューターから離れているときに、オンプレミス データ ゲートウェイを使用して Power Automate がデスクトップ アプリケーションにアクセスできるようにする方法を説明します。

DAX 数式での LASTNONBLANK の使用

DAX 数式での LASTNONBLANK の使用

DAX 数式で LASTNONBLANK 関数を使用して、データ分析の深い洞察を得る方法を学びます。

CROSSJOIN 関数の使用方法 – LuckyTemplates および DAX チュートリアル

CROSSJOIN 関数の使用方法 – LuckyTemplates および DAX チュートリアル

LuckyTemplates で予算分析とレポートを実行しながら、CROSSJOIN 関数を使用して 2 つのデータ テーブルをバインドする方法を学びます。

TREATAS 関数を使用して LuckyTemplates で仮想リレーションシップを作成する

TREATAS 関数を使用して LuckyTemplates で仮想リレーションシップを作成する

このチュートリアルでは、LuckyTemplates TREATAS を使用して数式内に仮想リレーションシップを作成する方法を説明します。