はじめに
特定のデータを抜き出す第4弾、他テーブル参照式Row フィルタです。
他のテーブルに含まれている値を基準に、フィルタを適用することができるようになります。
これを利用して、勤怠表を入力していない人リストを作ってみましょう。(人事から怖い催促メールが自動的に飛んでくるようになりますね、、)
今回のテーマ ~Reference Row Filter / Splitter~
今回は、Reference Row Filter / Splitterです。他のテーブルの値を基準にして適用できる行フィルタです。
Workflowは下記からダウンロードできます。
覚えてほしいこと
フィルタをしたいテーブルは上、フィルタの値が含まれているテーブルは下
やりたいこと
勤怠表を入力していない人リストを作ってみます。
Reference Row Filterの使い方
Splitter もFilterも使い方は同じです。
Workflow
上がフィルタを適用されれるテーブル、
下がフィルタの値が含まれているテーブル
Confirm - Before After
勤怠表に記録のない社員を抜き出してみましょう。
Configure
設定は非常に簡単です。どちらがどちらのコラムなのかだけ意識しましょう。
Step1 - Reference Columns コラムの選択
まずはコラムを設定していきましょう。Data table Columnが上からのInputのテーブルのコラムです。フィルタが適用されるコラムを入れていきます。
今回の例でいうと、社員表の社員番号コラムですね。
次にReference table columnで値リストの含まれているコラムを下のテーブルから選択します。
今回は、勤怠表の社員番号コラムです。
Step2 - Include rows from reference table 含めるか除くか
Reference table columnで値リストにあるものを含める(Include)設定にするのか、除く(Exclude)設定にするかを選べます。
今回は、勤怠表に含まれていない社員を抜き出したいので、”Exclude”を選択しました。
Reference Row Splitterは、この設定はありません。その代わりに、上のOutputがInclude、下のOutputがExcludeという形で出てきます。
ちょっと一言
実行スピードアップのために
今回は、何もせずに適用しましたが、勤怠表のレコードが多くなると、実行スピードがかなり落ちてしまいます。
そこでおススメは、GroupByを直前に入れて事前にデータをまとめておき、重複を削除しておくことです。そうすることで、実行スピードが速くなりますし、やっていることもあとから確認しやすくなります。
おわりに
今回は簡単でしたが非常に有用なNodeだったと思います。ぜひ活用していってください。
参考リンク
-
すさんのBlog:
【KNIME】ノード紹介:Nominal Value Row Filter 〜欲しいカテゴリのrowを抽出したい〜 - 非プログラマーのためのインフォマティクス入門。(仮)
- KNIME公式Node Pit(英語):
- KNIME Example Workflow(英語):
- KNIME TV Youtube (英語):