🦆
Appsheetで月別集計を行いたい(設計)
なぜ作成したのか
- 社員の取得資格の管理をAppsheetで行っている
- 資格の多くには有効期限があり、取得していた社員がやめてしまった場合も会社としては意味をなさなくなる
- 結果、どの時点でどのくらいの資格が保有されているか、という情報を可視化できたほうが良いと思い至った
- そうなると、年月別の有効資格数を見えるようにしたくなった
参考
データ構造
---
title: "データ構造"
---
erDiagram
CERTIFICATION {
int id PK
string name
}
EMPLOYEE {
int id PK
string name
date startDate
date endDate
}
ARCHIVE {
int id PK
int certificationId FK
int employeeId FK
date createDate
date expiredDate
}
CERTIFICATION ||--o{ ARCHIVE : has
EMPLOYEE ||--o{ ARCHIVE : has
やりたいこと
- 指定の年月の時点で有効な取得資格数(=archiveの件数)を集計する
有効な資格の判断
AND(
// 取得資格が有効期限内
AND(
[archive].[createDate]>基準日,
OR(
isblank([archive].[expiredDate]),
[archive].[expiredDate]>基準日)
)
// 従業員が就業期間中
AND(
[employee].[startDate]>基準日,
OR(
isblank([employee].[endDate]),
[employee].[endDate]>基準日)
)
)
集計単位
- 基準日の年、月単位
集計の実装(検討)
1.年月マスタを新規に作成
- 集計するためのテーブルを作成する
- データソースにGoogleカレンダー設定して、年月単位で集計できると楽だったが、既定のDateTime型をうまく当てはめる/分解する方法が思いつかない
id | yyyymm |
---|---|
aaaaaaaa | 202501 |
aaaaaaab | 202502 |
: | : |
2.年月マスタにてVCを新規作成、countMおよびSELECT関数を利用して集計
- VirtualColumn で validArchive列を作成し、「有効な資格の判断」に合致する取得資格数を集計する関数を設定する
id | yyyymm | validArchive(VC) |
---|---|---|
aaaaaaaa | 202501 | f(x) |
aaaaaaab | 202502 | f(x') |
: | : |
3.ChartFormでグラフ化
- 件数の推移を可視化する
- グラフからドリルダウンできるのが理想だが、Ref列として連携してないので無理
所感
- とりあえず明日勤務時間に実装してみる
- これを作ることで、現時点の資格取得情報を把握できるようになる(AWSパートナーTierに必要な資格取得状況とかみやすくなる)
- また、将来的な資格取得計画、それに伴う予算の見通しがつけやすくなるといいな
- 個人的に情シスは会社が推奨する資格取得制度がないので、自分にとって利点は何もない。若人に正しく予算配分されて、スキルアップされればよいのだ(老)
Discussion