今日の学び:業務効率化「Biz HACK」チャレンジ課題
やったこと
単元:計算(2)
内容:集計システムを組んでみた
部署ごとの「平均総支給額」を出す仕組みをつくったんやけど、数字の扱い方ひとつで結果がガラッと変わるの、めっちゃおもろかったで。
学んだこと・気づき
getValue() と getValues() の違い
→ 1セルだけ取るんやったら getValue()
→ まとめて取るんやったら getValues()(2次元配列になる)2次元配列のrowの扱い方
配列に慣れると「表全体をどういじるか」がスッと見えてくるでtoLocaleString
数字が「,」付きの日本円表記になるん便利すぎるlastRow - 1
データの最終行をサクッととれるdeptMap
部署ごとに「合計」と「人数」を貯めとく“箱”を用意「||」は論理OR演算子
条件式をシュッと短く書けるやつ
コードの工夫
列番号は 1 = A から始まるんやで。
例:getRange(2, 1, lastRow - 1, 3) → A列~C列。
平均総支給額は「合計 ÷ 人数」。
コードはこんな感じ👇
if (!deptMap[dept]) {
deptMap[dept] = { sum: 0, count: 0 };
}
deptMap[dept].sum += totalComp; // 総支給額を足す
deptMap[dept].count++; // 人数を数える
最後に
const avg = deptMap[dept].sum / deptMap[dept].count;
で平均を出す!
書いてみての気づき
言葉にしてまとめると、「わかったつもり」やなくて「ほんまに説明できる」になるな。
特に deptMap の「箱つくって値をためる」イメージ、頭にグッと入ったわ。
いいなと思ったら応援しよう!
よろしければ応援お願いします! いただいたチップはクリエイターとしての活動費に使わせていただきます!