page contents

Excel自動化!Knimeで使える小ワザを紹介!

はじめに

するのに、ちょっとした技を解説します。
自分が実際に詰まったところなので、参考になると思います。

ちなみに、基本的なの使い方は下記をご参照ください。

http://54.250.95.37/post-186/

シングルクオート「'」を削除する

左揃えの文字列にしたいときに使う記号で、数字を文字列にしたいときなんかに使いますね。
ただ、これが邪魔で削除したいときもあると思います。
私の場合は、オートフィルを使いたいのに、これが邪魔してうまくいかなかったので、一旦、クリアするために悩みました。
では実際に削除する方法です。

「String Manipulation」を使う

knime,String Manipulation,シングルクオート,missing Value
上記は自動生成したダミーデータであり、実在の人物や住所などとは一切関係がありません。

上の図では、H3からH11までシングルクオート「'」を入力しています。
このままExcelでオートフィル(愛知県のセルの左下の十字をダブルクリック)すると、茨城県まで愛知県に書き換えられてしまいます。
KNIMEで読み込んで、「Missing Value」で埋めようとすると、Missing(?)として認識されません。
実際に読み込んだのが下記です。

knime,String Manipulation,シングルクオート,missing Value
愛知県から茨城県まで「?」になっていないことが分かります。
knime,String Manipulation,シングルクオート,missing Value
試しにMissing Valueをかけてみるとこうなります。

そこで、「String Manipulation」をつないで、「toNull」を使います。

knime,String Manipulation,シングルクオート,missing Value,tonull
knime,String Manipulation,シングルクオート,missing Value,tonull

実行した結果が下記です。

knime,String Manipulation,シングルクオート,missing Value,tonull
愛知県の下から茨城県まで「?」になっていることが分かります。

これで「Missing Value」が使えるようになりました。

計算した結果、該当なしだったら出力しない

これは、ある帳票、一覧からカテゴリごとに分けて、それをシートで分けたい、でも、そのカテゴリに1件も含まれないときはシートを作りたくなかったので、該当行が無い時はシートを作らない(処理をしない)ように作りました。

「Empty Table Switch」と「CASE Switch Variable」を使う

まず、さっきのデータから茨城県を削除したデータを読み込ませます。

knime,empty table switch,case switch variable

これに「Row Splitter」を使って茨城県を分けると0件です。

knime,empty table switch,case switch variable
knime,empty table switch,case switch variable
knime,empty table switch,case switch variable

例えば、都道府県別にシートを分けたいけど、0人の場合はシートを作りたくない、というとき、条件分岐が必要になります。
そこで、0件(Empty)の時に処理をしないように、「Empty Table Switch」を使います。さらに、順番通りにシートを作るために一工夫します。

knime,empty table switch,case switch variable

CASE Switch Variable(End)を使用します。
「Empty Table Switch」は、上下どちらもつながないと正常に動作しません。また、「Excel Sheet Appender」と「RowID」は必ずどちらかしか動作しません。
「Excel Sheet Appender」と「RowID」から単純に赤線(Variable Portからの線)をつないでも、どちらかが実行されないため、止まってしまいますし、そもそも一つのアイコンに赤線は二つ入力できません。

そこで使えるのが、「CASE Switch Variable(End)」です。
これは3つのポートのうち、いずれかが入ってくれば良いので、「Excel Sheet Appender」と「RowID」から接続し、その終端を次の「Empty Table Switch」につなぐことで順序性を担保できます。

knime,empty table switch,case switch variable
このように、愛知県しか出力されていないことが分かります。

まとめ

今回は「String Manipulation」、「Empty Table Switch」、「CASE Switch Variable」を使ったの紹介でした。