ご訪問ありがとうございます。
Googleシートマスターのひろしです。
前回
今回は、とっても価値の高い方法をお伝えします。
これを知ることであなたは、
- Googleフォームにおけるプルダウンの項目をスプレッドシート上から設定できます。
- 営業日(土日や祝日を無視した)リストを作成できます。
なので、サクッとマスターして
と答えてあげてください。
動画はこちら
シートはこちら
*クリックすることでシートが開きます。(コピーしてお使いください)
スクリプト
/**
* SetBusinessdays
* Googleフォームのアイテムに項目を追加する
* 設定する箇所
* ★① GoogleフォームのID
* ★② 名前付き範囲の名称
* ★③ 日付を挿入する項目の位置
* */
function SetBusinessdays() {
const FORMID = 'GoogleフォームのID' //★① GoogleフォームのID
const ITEMNAME = '営業日' //★② 名前付き範囲の名称
let section = SpreadsheetApp.getActiveSpreadsheet().getRangeByName(ITEMNAME).getDisplayValues()
datesArray = section.filter(v => v[0])
const form = FormApp.openById(FORMID)
const items = form.getItems();
const item = items[2]; //★③日付を挿入する項目の位置(0から始まる)
item.asListItem().setChoiceValues(datesArray);
}
★①~③をあなたの環境に合わせて変更します。
ポイント
上記スクリプトの実行により、スクリプト内で指定した「名前付き範囲」内の
項目が、Googleフォームに反映されます。
なので後は、「名前付き範囲」内に表示させたいデータを出力すればいいというわけです。
Step1.
元となるデータの表示(以下の場合、明日から30日間のデータを表示します。
=SEQUENCE(30,1,today()+1,1)
※動画内では、=ArrayFormula(today()+1+SEQUENCE(30,1,0,1)) とやっています
土日の削除、WEEKDAY関数を使用して曜日番号を表示させます。
土曜は7、日曜は1なので、WEEKDAY関数の戻りが1か7の場合は、1を返すようにします。
if(OR(WEEKDAY(C2)=7,WEEKDAY(C2)=1,1,0)
Step3.
祝日(休日)一覧を作成します。
祝日一覧の取得↓
–2024/12/20追記–
祝日一覧の取得はこちらが便利です↓
Step4.
COUNTIF関数で祝日に含まれるかチェックします。
例)
COUNTIF($G$2:$G$19,C2)
含まれている場合は、1を返します。
Step5.
Step2(曜日)の条件にStep4(祝日)を追記します。
例)
=if(OR(WEEKDAY(C2)=7,WEEKDAY(C2)=1,D6 COUNTIF($G$2:$G$19,C2)),1,0)
以上です。
トリガーの設定はこちら↓
最後までご覧いただきありがとうございます。
つぎはこちら
コメント