日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

日付テーブル クエリの M 関数にパラメーターを追加する方法を説明します。で提起された質問に基づいています。このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。

質問は、週の最初の曜日の番号付けを 0 から 1 に切り替える方法に関するものでした。これにより、実際の平日の開始日が変更されるわけではないことに注意してください。この日付テーブルでは、週の始まりは常に月曜日になります。月曜日を0日目ではなく1日目と呼ぶだけです。

このプロセスは必ずしも複雑ではありませんが、M 言語の構造についての基本的な理解が必要です。LuckyTemplates メンバーの場合は、チェックしてください。導入部ではこのテーマに触れています。

目次

M 関数と拡張日付テーブル

まずはPower Queryの説明から始めましょう。日付テーブル M 関数をここにすでにコピーしました。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

M 関数は、LuckyTemplates フォーラムM コード ショーケース カテゴリから入手しました。というトピックの下にあります。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

Advanced Editorを開くと、これがコードです。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

そこには大量の M コードが含まれているため、気が散ってしまう可能性があります。

テストクエリの作成

M 関数内では多くの処理が行われているため、代わりに新しい空のクエリから始めます。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

このクエリにTest Queryという名前を付けます。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

次に、高度なエディターを開きます。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

これから関数を作成するので、括弧のペアを追加し、そこにあるデフォルトのコードをすべて削除します。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

関数を開始するには、オプションのパラメータを宣言します。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

次に変数を追加していきます。平日の開始番号を表すため、この変数をWDStartNumと呼びます。また、その型を宣言する必要があるので、 「number」と入力します。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

エラーを防ぐために型を宣言しています。これを任意の型のままにした場合、数値を渡すだけでなく、テーブルまたは日付値も渡すことができることを意味します。

次のステップでは、 let句とin句を追加します。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

let 句の下には変数名が必要です。したがって、この変数をWDStartと呼ぶことにします。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

ここで、 WDStartNumが渡されたかどうかをテストする必要があります。合格した場合、 null と等価になりませんそこで、WDStartNum が null に等しくない場合に値を返すように宣言します。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

in節に関しても同様の手順を経て欲しいです。そこで、 WDStart をそこに置きます。これは、先ほど let 句で変数に付けた名前です。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

「完了」を押すと、関数が作成されます。そこで、その関数を通じて値を渡してみます。

文字「a」を入力してみます。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

先ほど、値は数値でなければならないと宣言したことを思い出してください。入力した値がこの要件を満たしていないことが認識されるため、そのパラメーターの入力は許可されません。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

したがって、それを削除して、スペースを空白のままにします。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

「Invoke」をクリックすると、値 0 が返されます。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

元のクエリに戻ると、値が null に等しくない場合は WDStartNum を返す必要があると記載されています。null に等しい場合は、0 が返される必要があります。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

つまり 0 が正しいということになります。

今回はTestQueryの数値を変更して値を渡してみます。確かに、Enter キーを押すと「1」が返されます。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

さて、TestQuery で 2020 を渡してみます。Enter キーを押すと、2020 も返されます。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

明らかに、私はこれが起こってほしくありません。週の始まりを表す値が必要なので、0 または 1 が表示されるようにします。これは、入力された数値が 0 か 1 かを確認する別のテストを作成する必要があることを意味します。これにはList.Contains関数を使用できます。

List.Contains の使用

空のクエリを作成し、かっこを使用せずにList.Containsと入力しました。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

Enter キーを押すと、その関数に関するドキュメントが表示されます。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

List.Contains は、リストに値が含まれているかどうかを示します。

したがって、最初のパラメータとしてリストが必要で、その後に値が追加されます。その値がリスト内で見つかった場合は、true を返します。それ以外の場合は false を返します。

クエリに必要な変更を加えることができるように、もう一度詳細エディターを開きます。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

値が null に等しくないかどうかをテストする代わりに、 List.Contains を使用します。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

次に、この関数に適用する値のリストを示します。

中括弧をリスト初期化子として使用します。これらの中括弧の中に 0、1 を入れます。括弧を閉じた後にカンマを追加します。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

2 番目のパラメーターには、WDStartNum を使用します。次に、右括弧を追加します。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

これを設定すると、0 または 1 で WDStartNumber が得られることになります。0 または 1 以外の値が配置された場合、結果は 0 になるはずです。

TestQuery に 2020 を入れてテストしてみましょう。予想どおり、これは「0」(ゼロ)を返します。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

これは、値 2020 がリストにないためです。

M 関数へのパラメータの追加

コードが機能していることを確認したので、実際の日付テーブルと M 関数内にコードを配置することができます。Advanced Editorを開いてロジックをコピーします。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

次に、日付テーブル クエリに進みます。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

高度なエディターを使用して元のM 関数を開きます。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

次に、そこにコードを貼り付けます。行末にカンマがあることを確認してください。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

次に、パラメータ名を強調表示してコピーします。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

次に、そのパラメータをここに追加します。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

まず既存の行の末尾にカンマを追加し、それからこのパラメータをオプションであると宣言する必要があることに注意してください。次に、WDStartNum を配置し、タイプを追加します

パラメーターを追加し、ロジックも埋め込みました。しかし、期待どおりの結果が得られるかどうかも確認する必要があります。そこで、曜日をカバーするコード行を探します。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

次に、 + WDStartを追加します。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

「完了」をクリックしてエディタを閉じます。次に、クエリを呼び出します。

StartDate には 2020 年 1 月 1 日を入力し、EndDate として 2020 年 12 月 31 日を使用します。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

会計年度の開始月として「7」を使用し、WDStartNum として「0」を入力します。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

「呼び出す」をクリックします。これで日付テーブルができました。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

簡単に識別できるように名前を変更します。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

さて、結果を確認してみます。

これは私のDayOfWeekコラムです。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

月曜日が 0 として返されたことがわかります。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

フォーラムの質問に戻りますが、週の始まりの数値を 0 ではなく 1 に変更する必要があります。そこで、メジャー内でそれを変更するだけです。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

Enter キーを押すと、月曜日が 0 日ではなく 1 日になります。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

番号の範囲を見ると、0 ~ 6 ではなく 1 ~ 7 になるようになりました。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

null 値を渡すとどうなりますか?

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法

その後、月曜日の DayOfWeek は 0 に戻ります。

日付テーブルの M 関数 – クエリ エディターでパラメータを追加する方法


M 関数を使用して拡張 LuckyTemplates 日付テーブルを作成する
LuckyTemplates の M コードの初心者ガイド
Power Query 日付テーブルの動的な開始日と終了日を設定する

結論

これは、日付テーブル クエリの M 関数に直接追加パラメーターを追加する方法です。先ほども述べたように、プロセスはまったく複雑ではありません。M コードのソースがあれば、そこからは簡単です。

繰り返しになりますが、 M コードがどのように機能するかについての知識がない場合は、 Onlineの高度なデータ変換とモデリング コースをいつでも確認できます。

ではごきげんよう、

メリッサ

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







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 ゲートウェイとは何ですか? 知っておくべきことすべて