サイトアイコン Googleスプレッドシート 完全攻略

Googleフォーム 今日以降の営業日のみプルダウンに表示する

Googleフォーム関連

ご訪問ありがとうございます。

Googleシートマスターのひろしです。

前回

Googleフォーム 選択項目の日付を自動的に切り替える方法
  • Googleフォームで選択肢の項目を自動的に切り替えることができます。
  • トリガーの設定方法がわかります。
  • ArrayFormulaとSEQUENCE関数の効果的な使い方がわかります。
  • 今回は、とっても価値の高い方法をお伝えします。


    これを知ることであなたは、

    なので、サクッとマスターして

    と答えてあげてください。

    動画はこちら

    シートはこちら

    *クリックすることでシートが開きます。(コピーしてお使いください)

    スクリプト

    /**
     * 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(行数, [列数], [開始値], [増分量])

    =SEQUENCE(30,1,today()+1,1)

    ※動画内では、=ArrayFormula(today()+1+SEQUENCE(30,1,0,1)) とやっています

    Step2.

    土日の削除、WEEKDAY関数を使用して曜日番号を表示させます。

    WEEKDAY(日付, [種類])

    土曜は7、日曜は1なので、WEEKDAY関数の戻りが1か7の場合は、1を返すようにします。

    if(OR(WEEKDAY(C2)=7,WEEKDAY(C2)=1,1,0)

    Step3.

    祝日(休日)一覧を作成します。

    祝日一覧の取得↓

    西暦を切り替えると表示される年間予定表を作成する(Gスプレッドシート)
  • 西暦を入力するだけで年間の予定表が作成できます。
  • ArrayFormula、text、条件付き書式、名前付き範囲、INDIERCTの効果的な使い方がわかります。
  • スプレッドシートの弱点がわかります。
  • Step4.

    COUNTIF関数で祝日に含まれるかチェックします。

    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)

     

    以上です。

     

    トリガーの設定はこちら↓

     

     

     

     

    最後までご覧いただきありがとうございます。

    つぎはこちら

    【GAS】GoogleフォームからGoogleカレンダーに登録する方法
  • GoogleフォームからGoogleカレンダーに予定を追加することができます。
  • Googleカレンダーを公開すれば予約システム的なものが作れます。
  • Googleフォーム関連

    モバイルバージョンを終了