この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。
はじめに
前回から大分時間が経ってしまいましたが、以前作成したこちらの記事の続きの位置付けとなります
工数管理アプリを作ろう ~案件検索編~
今回は工数の一覧を表示できるように機能を追加していきたいと思います。
※今回はほとんどExcelの改修となります
現在の状態
詳しくは工数管理アプリを作ろう ~案件検索編~を参考にしてください。
現在はExcel上に4つのシートがあり、それぞれ”案件”,”メンバ”,”Xチームの工数”,”Yチームの工数”があります。現在実装しているのはこれらのシートを使って案件でメンバのアサインおよび稼働工数の一覧を表示する機能を実装しています。
今回実装する機能
今回は各メンバがそれぞれの月でどれぐらい稼働しているのかを確認する画面を作成したいと思います。機能・画面イメージは以下のような形です。
実装方法
Power Apps上でソートして数値を出す方法もありますが複雑になってしまうので、Excel上で表まで
作成し、Power Appsの画面上では表示だけするように構成していきます。
Excelシートの作成
まずは”工数一覧”というシートを作りPower Appsで表示するための表を作ります。
この時、表のグループや名前の部分は”メンバリスト”のシートから参照しておくと良いと思います。
続いて上記の表をPower Appsで参照するにはテーブル化する必要があるため、
挿入>テーブルの項目からこの表を”工数一覧”というテーブルにします
ここで、上記の紙上期と下期についてですが。
該当年度の上期と下期で表に表示する工数の集計年度を変更するために設定します。
それでは集計テーブルの中身を埋めていきます。
工数の集計方法としてはSUMIFを使いました。
SUMIFでは加算対象と対象範囲をそれぞれ決めます。
それぞれ参照したい値のセルは以下のように配置されるように作成しているので、以後Excelの関数はこの値を使っています。
まず、7~12月を埋めます。この期間は上期/と下期で変化はありません。以下は例として使用したセル値です。
=IF($S$3="上期",IF($B3="X",SUMIFS(Xチーム!$G:$G,Xチーム!$B:$B,G$1,Xチーム!$C:$C,$R$3,Xチーム!$E:$E,$C3),IF($B3="Y",SUMIFS(Yチーム!$G:$G,Yチーム!$B:$B,G$1,Yチーム!$C:$C,$R$3,Yチーム!$E:$E,$C3),)),IF($B3="X",SUMIFS(Xチーム!$G:$G,Xチーム!$B:$B,G$1,Xチーム!$C:$C,$R$3,Xチーム!$E:$E,$C3),IF($B3="Y",SUMIFS(Yチーム!$G:$G,Yチーム!$B:$B,G$1,Yチーム!$C:$C,$R$3,Yチーム!$E:$E,$C3),)))
続いて4~6月です。この期間は下期の場合年度部分を+1する必要があります。
使用したセルの例を以下に記載します。
=IF($S$3="上期",IF($B3="X",SUMIFS(Xチーム!$G:$G,Xチーム!$B:$B,D$1,Xチーム!$C:$C,$R$3,Xチーム!$E:$E,$C3),IF($B3="Y",SUMIFS(Yチーム!$G:$G,Yチーム!$B:$B,D$1,Yチーム!$C:$C,$R$3,Yチーム!$E:$E,$C3),)),IF($B3="X",SUMIFS(Xチーム!$G:$G,Xチーム!$B:$B,D$1,Xチーム!$C:$C,$R$3+1,Xチーム!$E:$E,$C3),IF($B3="Y",SUMIFS(Yチーム!$G:$G,Yチーム!$B:$B,D$1,Yチーム!$C:$C,$R$3+1,Yチーム!$E:$E,$C3),)))
=IF($S$3="上期",IF($B3="X",SUMIFS(Xチーム!$G:$G,Xチーム!$B:$B,M$1,Xチーム!$C:$C,$R$3-1,Xチーム!$E:$E,$C3),IF($B3="Y",SUMIFS(Yチーム!$G:$G,Yチーム!$B:$B,M$1,Yチーム!$C:$C,$R$3-1,Yチーム!$E:$E,$C3),)),IF($B3="X",SUMIFS(Xチーム!$G:$G,Xチーム!$B:$B,M$1,Xチーム!$C:$C,$R$3,Xチーム!$E:$E,$C3),IF($B3="Y",SUMIFS(Yチーム!$G:$G,Yチーム!$B:$B,M$1,Yチーム!$C:$C,$R$3,Yチーム!$E:$E,$C3),)))
平均にはAVERAGE関数を使って作成します。
ここまで完成したらテストを実施していきます。
XチームおよびYチームに以下のような形で工数をいれました。
想定通り、表に工数が入ってくれました。これでExcel側の準備は完了です。
PowerAppsの改修
まずは扱いづらくなるので前回作成した画面の名前を”案件検索”に変えてあげましょう。
イメージに沿ってボタンを配置します。
案件検索ボタンには以下を入れて移動できるようにしましょう。
右上のボタンは一旦おいておきます。
Navigate(案件検索)
続いて、今回Excelで作成したテーブルを追加します。
データ>データの追加からテーブルを増やします。
これでほぼ完成です。最後にこの上期画面をコピーして下期画面を作ります。
画面の複製から簡単にコピーできます。
右上のボタンのOnSelect(詳細設定)に
下期画面の場合は
Navigate(上期画面)
上期画面の場合は
Navigate(下期画面)
を入れてプロパティにボタンの名前を入れます。
If(4<=Month(Today()),If(10>=Month(Today()),Set(period,1),Set(period,2)),Set(period,2));
最後に案件検索の画面から上期/下期画面に移動するボタンを作ります。
この工数画面ボタンはボタンを押した日が何年度のどの時期(2021年度下期や2022年度上期など)なのかによって行き先を変えるようにします。
なのでOnselectは条件分岐のIfを使います。
If(period=1,Navigate(上期画面),Navigate(下期画面));
完成です。
まとめ
今回は新たに月ごとの工数合計を示す表を追加しました。
これにより誰がどれだけ稼働しているかが一目でわかるようになりました。
最後に完成した画面がこちらです。