デジタル推進課

KNIME・Excel Macro・Power Automateなど日々の業務で使用できる自動化ツールを中心に書き綴ります

KNIME - 計算をする ~Math Formula~

f:id:makkynm:20201219195200p:plain

 

 

はじめに

今回はExcelの数式にあたる、Math Nodeについて触れます。

使い方は前回触れたString Manipulationと使い方が全く同じなので、使い方はほとんど解説しません。Excelとの対応表を作っていきたいと思います。

Excelの文字列操作に関する数式は、String Manipulation、数値を計算する数式はMath Formulaという住み分けになっています。

 

 今回のテーマ ~Math Formula~

ほとんどExcelと関数は変わりません。数字を計算したかったら、Math Formulaを使用します。

 

f:id:makkynm:20200503120659p:plain

計算をする ~Math Formula~

Workflowはこちらからダウンロードできます。

hub.knime.com

 

覚えてほしいこと

データ型は数字のみ扱える

Excel-KNIME対応表

意味 Excel KNIME
四則演算 */+- */+-
縦方向合計 SUM(Col) COL_SUM(Col)
横方向合計 SUM(Col1, Col2, ...) Col1 + Col2 + …
縦方向平均 AVERAGE(Col) COL_MEAN(Col)
横方向平均 AVERAGE(Col1, Col2, ...) average(Col1, Col2, ...)
縦方向中央値 MEDIAN(Col) COL_MEDIAN(Col)
横方向中央値 MEDIAN(Col1, Col2, ...) Median(Col1, Col2, ...)
絶対値 ABS(Col) abs(Col)
If文 IF(条件, True, false) if(条件, True, false) 
SUMIF文 SUMIF(範囲, 条件) 1つ目 if(条件, Col, 0)
2つ目 COL_SUM(Col)
四捨五入 ROUND(Col, 桁数) round(Col, 桁数)
切り上げ ROUNDUP(Col, 桁数) ceil(Col*10^(桁数)) / 10^桁数
切り捨て ROUNDDOWN(Col, 桁数) floor(Col*10^(桁数)) / 10^桁数
行数カウント COUNT(Col) ROWCOUNT 
行番号 ROW() ROWINDEX 
余り MOD(Col, 除数) MOD(Col, 除数)
乱数0~1 RAND() rand()
平方根 SQRT(Col) sqrt(Col)
円周率 PI() pi

 

やりたいこと

今回は簡単にするため、時給2000円として、残業代を算出してみましょう。

f:id:makkynm:20200503115924p:plain

Excel - 計算をする

 

 

Math Formulaの使い方

Workflow

f:id:makkynm:20200503120659p:plain

Workflow - Math Formula

Confirm - Before After

f:id:makkynm:20200503120834p:plain

Math Formula

Configure

 はい、String Manipulationと変わりません。例の通りにExpressionに数式を書いていきましょう。

一点だけString Manipulationと変化している部分は、Step2の出力設定で"Convert to Int"という項目が追加されていることです。

Default設定では、計算結果はすべてDouble型(実数型)で出力されます。もしInteger(整数型)で出力したい場合はここにチェックを入れてください。

小数点が発生している場合は四捨五入されます。

f:id:makkynm:20200503121132p:plain

Math Formula Configure

 ちょっと一言

 もう一つのNode ”Math Formula (Multi Column)”

Math Formulaにはもう一つ、”Math Formula (Multi Column)”というNodeがあります。Nodeの名が示す通り、これは複数コラムに一度に同じ数式を適用したい場合に使用します。

Configureの注意点は1点だけです。

Workflow

f:id:makkynm:20200503121553p:plain

Math Formula (Multi Column)
Confirm - Before After

Confirmを見ると、一つのNodeで2つの新たなコラムが作成されていることが分かります。

f:id:makkynm:20200503123008p:plain

Math Formula (Multi Column) - Confirm
Configure

 さて、Configureを見てきます。先ほどと違う点は3点あります。CRRENT_COLUMNを使えば、複数コラムに一度に同じ数式を適用できると覚えておけば後は特に難しくありません。

1.Column Selection

  まずはこの数式を適用したいコラムを選択します。

2.CRRENT_COLUMN

  Math Expressionに新しく追加されています。これを選択することによって、1で選択したコラムを1つ1つ繰り返し処理のようにして選択することができます。

3.Append Selected Columns with Suffix: 

  新しいコラムを作成する際、元コラムの名前に付け足す名前をここで指定します。

f:id:makkynm:20200503122645p:plain

Math Formula (Multi Column) - Configure

おわりに

Mathというキーワードだけ覚えておけば後は数式を探すだけですよね。また、Nodeの使い方もString Manipulationと似ていましたよね。

Nodeの名前の規則や、いくつかNodeの使い方を覚えておけば後は、新しいNodeでも同じような構成になっているので、新しいNodeでも何となく使えるようになります。その感覚がつかめればもうKNIMEを習得したも同然です。

ぜひTry&Errorの精神を忘れずに何度も失敗してみてください。

 

 

 

余談

計算と言えば、「イミテーション・ゲーム」超おススメです。

天才数学者がドイツ軍の作った暗号機「エニグマ」を解読する話なのですが、パソコンの概念誕生の話でもあるんです。

実話に基づく話でこの人がいなかったら、今のIT社会はなかったかもしれません!興味のある方は是非観てみてください!!

www.youtube.com

 

参考リンク