エクセルで「もし売上が1万円以上ならA、それ以外ならB」といった条件を付ける時、IF関数はとても便利ですよね。
しかし、条件が3つ4つと増えていくと、カッコの中にカッコを入れる複雑な数式になり、後から見直した時に自分でも解読できなくなることがよくあります。
この記事では、エクセルの複雑なIF関数から卒業し、誰が見ても分かりやすい条件分岐を作れるKNIMEのRule Engineノードの使い方を解説します。
Rule Engineノードとは?
KNIMEのRule Engine(ルールエンジン)ノードは、文字通りルール(条件)を作ってデータを判定し、新しい列に結果を書き込んでくれるアイコンです。
エクセルのように1行の中に長い数式を詰め込むのではなく、箇条書きで上から順番に条件を書いていくため、マクロのように属人化してしまうリスクを大幅に減らすことができます。
ノードの設定手順とルールの書き方
さっそく、Modern UIの画面でノードを配置していきましょう。
- キャンバスに配置する:画面左側の+ボタンからRule Engineを検索し、キャンバスに配置して線をつなぎます。
- 設定画面を開く:ノードをダブルクリックして設定画面を開きます。画面の中央に、ルールを記述するための広い白いスペースがあります。
ルールの書き方には少しだけ独特な決まりがあります。
基本の形は、条件の式 => 出力したい結果 です。
たとえば、金額という列の数字が10000以上なら、VIPという文字を出力したい場合、以下のように書きます。
$金額$ >= 10000 => VIP
このように書くと、設定画面の右下にあるAppend Columnという場所で指定した新しい列名(たとえば「顧客ランク」など)に、VIPという文字が自動で入力されます。
複数の条件(IFの入れ子)を作る方法
エクセルでIF関数をいくつもつなげるような複数条件も、Rule Engineなら改行して箇条書きにするだけで済みます。上から順番に判定されていくのがポイントです。
- $金額$ >= 10000 => VIP
- $金額$ >= 5000 => 通常
- TRUE => その他
ここで出てくるTRUEという言葉は、「これまでの条件のどれにも当てはまらなかったもの全部」という意味を持つ魔法の言葉です。
一番最後の行にTRUE => その他と書いておくことで、エクセルのIF関数の最後につける偽の場合と同じ役割を果たしてくれます。
設定が終わったらOKを押し、ノードの上の緑色の実行ボタンをクリックします。
空白セルを処理するMissing Valueノードなどと組み合わせて、データの前準備を完璧に整えましょう。
