しばらく山とランは遠のいています

仕事、そしてコロナの関係でしばらく山やランからは遠ざかっています。来年の春から復帰できるようそろそろ運動再開していきたいと思います。ちなみに今、BIツールのPower BIが半分趣味になって、完全な運動不足になっています。20201020

2021年1月16日土曜日

【Power BI】PowerQueryのList関数の引数でよく出てくるequationCriteria

PowerQueryのList関数を公式ドキュメントで調べるとよく出てくる引数があります。
equationCriteria

これ関数の公式ドキュメントをさんざん探しましたが、説明がないです。
ほんと困るのですね。説明しないならこんな引数を定義しないでほしいです。この名前からMコーダーはいろいろ期待を持ってしまうのですね。

わたしの場合は、以下の関数をよく使います。リストの要素に指定の値と一致するものがあるかどうかを調べる関数です。これ値と要素は完全一致なのでこれに多少の揺れを含めて判定できないかと期待を持ったわけです

List.Contains(list as list, value as any, optional equationCriteria as any) as logical 

それでサポートに尋ねました。紹介してくれたのはブログでした。やはりMSの公式ドキュメントは無いようです。

Chris Webb's BI Blog
https://blog.crossjoin.co.uk/2017/01/22/the-list-m-functions-and-the-equationcriteria-argument/

このブログを読むと、equationCriteriaには以下のような2値の比較関数を設定することができるようです。したがって要素の部分一致もこれで可能になります。

Comparer関数を使う
Comparer.FromCulture(Culture.Current, true ) 
 カルチャー設定に基づく比較を行う。単数形と複数形を同じと見るかなど
Comparer.Ordinal()
 文字を順番に比較して判定する。通常の比較。

比較のためのカスタム関数を使う
 (x as text, y as text)=>Text.Start(x,3)=y 最初の3文字の比較
(x as text、y as text)=> Text.Contains(y、x)) 部分一致

レコードが要素のリストの比較
each [フィールド名] 各レコードの比較するフィールド名を指定する


0 件のコメント: