見出し画像

チェックボックスの状態で判断して集計をする

では、本日もGASを使ってファムテックしていきましょう!

Googleの提供するGASは無料で使用できます。ツールをメーカーから購入するだけでなく、世の中にある低価(無料)のツールを組み合わせるなどして薬局業務の革新をすることをファムテック(PharmTech)と呼びます。

皆さんも、是非ファムテックを学び、薬局業務を楽しく革新していきましょう(^^)/

IFを使って条件分岐する

さて、前回の記事:業務の集計を自動化するでは、チェックボックスの状態をログで出力することができました。でも、チェックボックスの状態一覧が出力できても、どの患者さんの状態なのかまでわからないと実用化は難しいですよね。

画像1

こちらがコンテナバインドしている患者管理のシートでした。

もう少し手を加えていきましょう!

ここで、使用するのはIFです。IFは、状態を判別して次に行う作業を振り分けてくれます。もし、チェックボックスがオンなら・・・、オフなら・・・、なんだかやりたいことができそうな気がしてきました。

function myFunction() {
 const ss = SpreadsheetApp.getActiveSpreadsheet();
 const sheet = ss.getActiveSheet();
 const checkBoxs = sheet.getRange(2,4,5,1).getValues();
 for ( let i = 0; i<5 ; i++){
   if(checkBoxs[i][0] == true ){
     const name = sheet.getRange(i+2,1).getValue();
     console.log(name);
   }
 }
}

ポイントは、配列であったcheckBoxsの要素を一つ一つ検証することで、同じ行の患者名を取得してくるというところ。

一つ一つの検証にはもちろん法則性があるので、Forを使用して繰り返し作業にしてしまいます。仮にForを使わなかった場合、一つ一つの要素に対してコードを書いていくことになりますから、患者さんが一人増えるたびにコードの書き直し・・・、現実的ではないです。笑

結果、チェックボックスがオン=Trueの患者さんのログが以下のようにでました。

画像2

もちろんオフの場合はFalse を使用すればいいので、状況によって使い分けしましょう!

おわりに

いかがでしたでしょうか?これで集計はだいぶ楽になりましたね。

次回は、集計した情報を通知まで自動化する方法を記事にしたいと思います。




この記事が気に入ったらサポートをしてみませんか?