小ネタ:ダブルクウォートのエスケープ|Power Query


プログラミング界隈では当たり前なのかなと思いましたが、Power Query側での解説を見つけられなかったので、一応書き残しておきます。
要は、ダブルクウォート1個につき1個重ねればエスケープできるようです。

例1

下記のような文字列で、"おじいさん"という文字列と"おばあさん"という文字列の間を取る。
昔々あるところに"おじいさん"と"おばあさん"がいました。

失敗例

Text.BetweenDelimiters(テーブル,""おじいさん"",""おばあさん"")

成功例

・文字列の始まり(終わり)で1個
・本文中のダブルクウォート1個に付き1個増やすので、2個
で計3個でおじいさんなどをくくっています。

Text.BetweenDelimiters(テーブル,"""おじいさん""","""おばあさん""")

例2

同じく、ダブルクウォートが増えた場合で実証。
昔々あるところに""おじいさん""と""おばあさん""がいました。

成功例

なかなか読みづらいですが、
・文字列の始まり(終わり)で1個
・本文中のダブルクウォート1個に付き1個増やすので、2×2=4個
で計5個でおじいさんなどをくくっています。

Text.BetweenDelimiters(テーブル,"""""おじいさん""""","""""おばあさん""""")

おまけ

文字列を合成するようなときも同様です。
アンパサンド後のダブルクウォート4つは、
・文字列の始まりと終わりで2個
・ダブルクウォートとそのエスケープで2個
というわけです。

厄介なものもパラメータに登録しておくと、エスケープはエディタ側で自動でやってくれるので、楽です。
最初から固定値で書けばいいだけなら、パラメータを使うのがお薦めです。