1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【BizRobo!】配列を使った集計

Posted at

1.事の始まり

javascriptの配列を使えば、1つの変数で複数、集計管理できると風のうわさで聞いた。

使いこなせるかどうかは別として、自分の引き出しを増やすため
学習し、ここに残す。

javascript初心者のため、誤った解釈が含まれている可能性があります。
利用の際は十分ご注意ください。

2.お題

ラーメンの試食会を開催。
複数の味を提供し、好みの味に○を1つ以上つけてもらい
その結果をExcelにまとめた。

味別の集計結果を算出したい。
画像01.jpg

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」の形を作りたいので、以下を設定
BizRobo!用コード
>>var array = [];

for (var i = 0; i < << + array_number + >>; i++) {
    array.push(0);
}
OUTPUT = array

<<

コード的には以下の状態

画像03.jpg

5つ目の,以降の数字を増やしたい場合は 「< 4;」の数字部分を変更
開始の数値を0以外にしたい場合は 「push(0)」の数字部分を変更

各集計結果を加算したいので、以下を設定
BizRobo!用コード
>>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
<<

コード的には以下の状態

画像08.jpg
※if文により、array1~3は加算無しのように見えますが、対象行の場合は加算されるようになっています。
 また、ループ中のコード抽出のため、1行目[1,0,0,4]になっています。

③フロー作成

ファイル読込
_画像09.jpg

変数を開く
_画像10.jpg

変数の割当
※事前に変数設定で数値持たせた場合、省略も可
_画像11.jpg

変数の割当(JavaScriptを使用して変換)
_画像12.jpg

Excel内ループ
_画像13.jpg

セル値抽出
(種別1~4は取得対象列、格納先程度の違いであるため省略)
_画像14.jpg

変数の割当(JavaScriptを使用して変換)
_画像15.jpg

5.結果 

    ➡出来た

1回目
_画像15.jpg

6ループ目

画像07.jpg

最終ループ数

_画像16.jpg

(Excel上でも計算し、合計が合っていることを確認。)

6.まとめ

countifでクリアできるお題だったため
そこまでの達成感は得られませんでしたが
今後のロボット開発に活かせるときがくるかも!? な感じでした。

2次元配列もあるそうで、次回はそちらに挑戦してみたいと思っています。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?