1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

条件付きマージを行う(結合先テーブルに条件を付けたい)

Posted at

#テーブルをマージするとき、特定の条件のものだけくっつけたいとき

たとえば、こんなデータがあって
image.png
こう、自分の点数と合格点を比較して、合否を計算してみたい、と…
##もちろん、方法はいっぱいある

 たとえば、点数テーブルのほうに受験年度の列を足して、マージキーにするとか
 たとえば、合格点テーブルをフィルタかけてからマージするとか

##でも、時には計算式一本で対応したいときもある。かも。

特に何の処理もなく、結合→クエリのマージから左外部結合(点数テーブル←合格点テーブル)にするとこうですね。
image.png

で、自動生成された式は、こんなん
image.png
  黄色い線と丸:結合先テーブル名&Key
  青い線と丸:結合元テーブル名&Key
  (ちなみに緑線は、マージしたときにできるカラム。
   (Table)ってはいってるとこ。デフォルトのままだとちょっとわかりにくい…)

なので、青線のところにフィルタかけられればよさそうです!

#フィルタかける呪文はどんなんだったかな
やってみたら早いですもんね。
合格点テーブルのほうでフィルタかけてみると。
image.png

= Table.SelectRows(変更された型, each ([年度] = 2021))

ほうなるほど。
(式だけコピーしたら、フィルタの解除忘れずに💦頑張って式を作る意味がなくなっちゃう…)

##さっきのマージの式に差し込んでみよう
Beforeimage.png
After
image.png
おお!いいかんじですね!

さっきの式の
image.png
ここ!この青いとこに、さっきのフィルタの式を書いて…

で、フィルタの式の中の
image.png
この青いところは、「何を」フィルタするのか指定するところなので、ステップ名ではなくて、クエリ名に書き換えてあげる。

つまり、こうですね。(青いところが直したところ)
image.png

こうしとくと、フィルタ条件のところにパラメータとか、ユーザが任意に書き換え可能な変数を持ってきたときに自由に計算結果を書き換えられたりとか、あとは単純に参照されるテーブルがいろいろかつ、フィルタ条件がいろいろあって、どうにもならん!って時に使えるんじゃないかと思います。

#念のため
image.png
マージ出来たら、ここは展開ボタン押して、選択して、展開できます。
 カラム名が被らないなら、元の列名を使用オプションは外すのが好きです(赤部分)
image.png

できあがり!めでたしめでたし!

1
4
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
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?