1.事の始まり
javascriptの配列を使えば、1つの変数で複数、集計管理できると風のうわさで聞いた。
使いこなせるかどうかは別として、自分の引き出しを増やすため
学習し、ここに残す。
javascript初心者のため、誤った解釈が含まれている可能性があります。
利用の際は十分ご注意ください。
2.お題
ラーメンの試食会を開催。
複数の味を提供し、好みの味に○を1つ以上つけてもらい
その結果をExcelにまとめた。
3.作成イメージ
1行ずつ、項目を取得。
javascriptの配列を使い、
1つの変数にみそ,しお,しょうゆ,とんこつの順で
「X,X,X,X」のように集計する。
4.対応内容
①変数用意
・array
➡「X,X,X,X」で集計するため
・array_number
➡,区切りが表示される数を設定
・種別1
・種別2
・種別3
・種別4
➡○を取得
・読込元ファイルパス
➡用意したExcelのパス設定
・excel
➡excelデータ格納用
②コード用意
「0,0,0,0」の形を作りたいので、以下を設定
>>var array = [];
for (var i = 0; i < << + array_number + >>; i++) {
array.push(0);
}
OUTPUT = array
<<
コード的には以下の状態
5つ目の,以降の数字を増やしたい場合は 「< 4;」の数字部分を変更
開始の数値を0以外にしたい場合は 「push(0)」の数字部分を変更
各集計結果を加算したいので、以下を設定
>>var array = [<< + array +>>];
<< +(種別1!="" ? "array[0] = (array[0]+1)":"array[0] = array[0]") +>>;
<< +(種別2!="" ? "array[1] = (array[1]+1)":"array[1] = array[1]") +>>;
<< +(種別3!="" ? "array[2] = (array[2]+1)":"array[2] = array[2]") +>>;
<< +(種別4!="" ? "array[3] = (array[3]+1)":"array[3] = array[3]") +>>;
OUTPUT = array
<<
コード的には以下の状態
※if文により、array1~3は加算無しのように見えますが、対象行の場合は加算されるようになっています。
また、ループ中のコード抽出のため、1行目[1,0,0,4]になっています。
③フロー作成
セル値抽出
(種別1~4は取得対象列、格納先程度の違いであるため省略)
5.結果
➡出来た
6ループ目
最終ループ数
(Excel上でも計算し、合計が合っていることを確認。)
6.まとめ
countifでクリアできるお題だったため
そこまでの達成感は得られませんでしたが
今後のロボット開発に活かせるときがくるかも!? な感じでした。
2次元配列もあるそうで、次回はそちらに挑戦してみたいと思っています。