LoginSignup
14
9

More than 1 year has passed since last update.

Power Query エディタの "カスタム列の追加" は使い方だけじゃなくて、よく使う関数も一緒に勉強するといいよという話

Posted at

なんでだろうなぁと思っていたんだよね。なんで、そんな面倒な式を記述するのだろうって。もしかして、教わっていない/説明を受けていないのかもしれない。教わったけどよく理解していないという可能性もある。とはいえ、エディタの機能の使い方だけではなく、よく使うだろう Power Query の関数も一緒に勉強したほうがよいのでは?という話。
image.png
テーブルに追加する列の値を得るための "式" を記述しなければならないのである。Power Query 勉強始めたばかりというならそりゃ難しいよね。だって、Power Query で記述しなければならないのだもの。おそらくなんだけど、使い方を教えてもらう機会があったとしてもさ、Power Query の関数までその中に含まれていないっていうこともあると思うのだ。四則演算の算術演算子くらいかもしれないね。使った場面をよく見かけるので、if then else も含まれているのかもね。

教える方がよくないのか、教わる方がよくないのか、どちらでもいいけど。

選りすぐりの関数

よく使うだろうという Power Query の関数を指折り数えていくつかくらいから始めて、徐々にボキャブラリを増やしていくという方針にしてみてはどうだろうかと。で、選りすぐってふたつだけ挙げてみる。

  • List.Sum
  • Date.ToText

List.Sum 関数

リストに含まれる数値を算術和が得られる。ポイントは、nullを無視すること と 演算精度を選択できること。

List.Sum (Power Query)
List.Sum(list as list, optional precision as nullable number) as any 

image.png

List.Sum( { [Column1], [Column2], [Column3] } )

List.Sum 関数の list 引数は list 型のみ許容だから、"{ }" で括る必要があるだけ。あとはクリックだけでもできるでしょう。
ボタンポチポチ派であっても注意深く観察していれば List.Sum 関数はじめ 多くの List 関数が使われていることがわかるはずだ。なので、より一層勉強しておいた方がよいはず。List.Product とか List.Max とか計算方法のバリエーションがあるので、まずはこれひとつから初めてみるとよいかと。

null を無視するのだから、
0 として計算しようとして面倒なことする必要ななくなるよね。
image.png
こうすればいい。
image.png
ね、簡単でしょ。

Date.ToText 関数

日付(Date 型)を指定した書式で文字列に変換。まぁよくあるよね。

Date.ToText (Power Query)
Date.ToText(
    date as nullable date,
    optional options as any,
    optional culture as nullable text
) as nullable text

image.png
可能な限り culture 引数 をしておいた方がよい。だって、動作環境によっては異なる文字列を得ることがあるからね。

標準の書式指定文字列だけでもバリエーションはたくさんあるのでそれぞれ試してみるとよい。

DateTime.ToText 関数 / DateTimeZone.ToText 関数 もあるからね。引数のデータ型に合わせたバリエーションが増えるだけ。また、Date.AddMonths 関数 と組み合わせれば会計年度とかすぐ出力できるでしょって感じ。

思ってたこと🙄

その他

14
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
9