見出し画像

今日の学び:業務効率化「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 の「箱つくって値をためる」イメージ、頭にグッと入ったわ。

いいなと思ったら応援しよう!

ともちゃん よろしければ応援お願いします! いただいたチップはクリエイターとしての活動費に使わせていただきます!