いきなり答える備忘録

G Suite・Microsoft 365・LibreOfficeなどに関するメモと日々の実験

(Gスプレッドシート)期間中の特定の曜日を数える

 Googleスプレッドシートで、一定の期間中に指定した曜日が何日あるかカウントする方法についてです。
 複数の曜日を指定するのも容易です。

  • NETWORKDAYS.INTL関数を使って、特定の曜日が何日あるかを数えることができます。

手順

f:id:accs2014:20200924000900p:plain:right:w600

 画像ではC2,C3セルに期間の初日と末日が入力されています。
 以下では適宜設定を行ったうえで、F2セルにこの期間中の月曜日の日数を表示させるものとします。

 

 まずはC4セルを選択した状態で、メニューから「表示形式」→「数字」→「書式なしテキスト」と選びます。
 これは日数を求めるために使うNETWORKDAYS.INTL関数の第3引数(曜日を表す引数)を、文字列で指定する必要があるためです。

f:id:accs2014:20200924000904p:plain:w700

 

f:id:accs2014:20200924000909p:plain:right:w550

 そしてC4セルに「0111111」と入力します。
 これはNETWORKDAYS.INTL関数において「月曜(最初の桁)だけが平日(0)であとは休日(1)である」ことを意味します。

 
 そして最後にF2セルに次の式を入力します。

f:id:accs2014:20200924000912p:plain:w700

 F2セル

=NETWORKDAYS.INTL(C2,C3,C4)

 NETWORKDAYS.INTL関数は指定期間(第1引数の日付から第2引数の日付まで)の間の営業日の日数、つまり平日の日数を数えるための関数です。しかしNETWORKDAYS関数と異なり、何曜が平日(休日)であるかを第3引数で指定することができます。上記のように、C4セルに「月曜だけが平日である」ことを表す文字列を入力しているので、これにより月曜の日数を数えることができるというわけです。
 なお休日の指定方法は他にもありますが、詳細は公式(こちら)をご覧ください。

 

f:id:accs2014:20200924000917p:plain:right:w600

 確定すると「4」という結果が得られました。
 2020年10月に月曜日は4日ある、というわけです。

 

f:id:accs2014:20200924000921p:plain:right:w600

 第3引数の与え方が独特ですが、対象とする曜日を一括して設定できるため、複数の曜日をカウントするのも容易です。
 画像ではC4セルの値を「0110111」と変えています。これは「月曜日と木曜日が平日で後は休日である」ことを表しています。
 これによりF2セルの値は「9」となっています。つまり2020年10月に月曜と木曜は合わせて9日ある、という結果が得られています。