Text.Selectとやらを作ってみる|Power Query


知らないうちに増えていたので、作りつつ挙動を理解してみます。
さーっと作ったので、どこかおかしいかもしれません。
たぶん2010のアドインにはなかったですよね。

Referenceでは

下記の通り載っている。手元のPDFにもいつの間にか入っていました。
https://docs.microsoft.com/ja-jp/powerquery-m/text-select
これによると、
Text.Select(text as nullable text, selectChars as any) as nullable text
とのこと。この情報といじった感じの挙動をもとに、コードを書いてみる。

コード

fx_Text_Select
(text as nullable text,SelectChars as list) as nullable text=>
let
    TestedSource = let Splitted = List.Transform(SelectChars,each Text.ToList(_){0})
                   in  if SelectChars = Splitted then SelectChars
                       else error "リストに1文字でない語が入っています。",
    CharList = Text.ToList(text),
    SelectedList = List.Transform(CharList,
                                  each if List.Contains(TestedSource,_) then _ 
                                       else null
                   ),
    NonNullList =List.RemoveNulls(SelectedList),
    result =if text = null then null
            else Text.Combine(NonNullList)
in
    result

テスト

正常なケース


エラーになるケース

こういうのは本家でもエラーになります。半角カタカナは濁点が文字から切り離されるので、都合が悪いんですよね。
本家

自作