日付テーブルの 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 を学習していますか? *****







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 を使用して数式内に仮想リレーションシップを作成する方法を説明します。