• 作成日 : 2025年9月22日

スプレッドシートで曜日を自動入力するには?便利な関数と活用テクニック

勤怠管理表やスケジュール表を作成する際、日付に対応する曜日を手入力していませんか?Googleスプレッドシートの曜日関連機能を使えば、自動的に曜日を表示でき、入力ミスを防ぎながら作業時間を大幅に短縮できます。

本記事では、曜日の自動入力方法から実務で役立つ便利な関数まで、具体的な活用例を交えながら詳しく解説します。シフト表の作成、営業日の計算、週次レポートの管理など、様々な業務で活用できる実践的なテクニックを身につけていきましょう。

スプレッドシートで曜日を自動入力する方法

TEXT関数を使った曜日の自動表示

日付から曜日を自動的に表示する最も基本的な方法は、TEXT関数を使用することです。TEXT関数は、数値や日付を指定した形式の文字列に変換する関数で、曜日の表示にも活用できます。構文は=TEXT(日付,”形式”)で、形式部分に曜日を表す記号を指定します。

例えば、A1セルに日付が入力されている場合、以下のような数式で曜日を表示できます。

  • =TEXT(A1,”ddd”):ロケールに応じた曜日の略称を表示(例:日本=「月」/英語=“Mon”)
  • =TEXT(A1,”dddd”):ロケールに応じた曜日の完全形を表示(例:日本=「月曜日」/英語=“Monday”)
    ※英語表記で固定したい場合は、シートの [ファイル]→[設定]→[地域] を英語圏に変更してください。括弧付き表示は =TEXT(A2,”(ddd)”) のように指定できます。

勤怠管理表では、日付の横に=TEXT(A2,”(ddd)”)のような数式を入力することで、「(月)」のように括弧付きの曜日を自動表示できます。これにより、日付を入力するだけで曜日が自動的に更新され、月が変わっても手動で修正する必要がありません。

日付の表示形式で曜日を含める方法

別のセルに曜日を表示するのではなく、日付と同じセル内に曜日を表示することも可能です。これは、セルの表示形式をカスタマイズすることで実現できます。日付が入力されているセルを選択し、「表示形式」→「数値」→「カスタム数値形式」を選択します。

カスタム形式の入力欄に、以下のような形式を指定します。

  • yyyy/mm/dd (ddd):「2024/12/25 (水)」のように表示
  • m月d日(dddd):「12月25日(水曜日)」のように表示
  • yyyy年m月d日 ddd:ロケールに応じて『2024年12月25日 水』または “2024年12月25日 Wed” のように表示
    ※英語表記にしたい場合は、[ファイル]→[設定]→[地域] を英語圏に変更してください。

この方法の利点は、データとしては日付のまま保持されるため、日付の計算や並べ替えに影響しないことです。スケジュール表や予定表で、日付と曜日を一緒に表示したい場合に特に有効です。また、日付と曜日を1セルにまとめられるため、表をコンパクトに表示できます。

WEEKDAY関数による曜日番号の取得

WEEKDAY関数は、日付に対応する曜日を数値で返す関数です。構文は=WEEKDAY(日付,[種類])で、種類により返される数値が変わります。デフォルト(種類を省略または1を指定)では、日曜日が1、月曜日が2、土曜日が7となります。

種類の指定による違い
  • 種類1または省略:日曜日=1、月曜日=2、…、土曜日=7
  • 種類2:月曜日=1、火曜日=2、…、日曜日=7
  • 種類3:月曜日=0、火曜日=1、…、日曜日=6

この数値を利用して、CHOOSE関数と組み合わせることで、任意の形式で曜日を表示できます。 =CHOOSE(WEEKDAY(A1),”日”,”月”,”火”,”水”,”木”,”金”,”土”)

営業日の判定では、=IF(WEEKDAY(A1,2)>=6,”休日”,”営業日”)のような数式で、土日を自動的に判別できます。シフト管理や工場の稼働日管理などで活用されています。

配列数式による曜日の一括入力

大量の日付に対して曜日を一括で入力したい場合は、ARRAYFORMULA関数を使用します。例えば、A列に日付のリストがある場合、B1セルに以下の数式を入力すると、すべての日付に対応する曜日が自動的に表示されます。

=ARRAYFORMULA(IF(A:A=””,””,TEXT(A:A,”dddd”)))

この数式では、A列が空白の場合は何も表示せず、日付が入力されている場合のみ曜日を表示します。月間カレンダーや年間スケジュールを作成する際に、一つの数式で全体をカバーできるため、メンテナンスが容易になります。

条件付き書式での曜日別色分け

曜日の自動入力と併せて、条件付き書式を使用することで、曜日ごとに異なる色で表示することができます。例えば、土曜日を青、日曜日を赤で表示する設定は以下のように行います。

  1. 曜日を表示しているセル範囲を選択
  2. 「表示形式」→「条件付き書式」を選択
  3. 「カスタム数式を使用」を選択し、以下の数式を入力:
    • 土曜日:=WEEKDAY($A2)=7(背景色を青に設定)
    • 日曜日:=WEEKDAY($A2)=1(背景色を赤に設定)

これにより、休日が視覚的に分かりやすくなり、スケジュール管理の効率が向上します。祝日も含めて管理したい場合は、祝日リストと照合する条件を追加することも可能です。

曜日にまつわる便利な関数

WORKDAY関数とWORKDAY.INTL関数

WORKDAY関数は、指定した営業日数後(または前)の日付を返す関数です。土日を除外して計算するため、納期計算や営業日ベースのスケジュール管理に適しています。構文は=WORKDAY(開始日, 日数, [祝日])です。

例えば、受注日から10営業日後の納期を計算する場合: =WORKDAY(A2,10,$F$2:$F$20) ここで、F2:F20には祝日のリストを入力しておきます。

WORKDAY.INTL関数は、より柔軟な週末の設定が可能です。
構文は=WORKDAY.INTL(開始日, 日数, [週末], [祝日])で、週末パラメータで休業日を指定できます。

  • 1:土日が週末(デフォルト)
  • 2:日月が週末
  • 11:日曜のみが週末
  • “0000011”:カスタム指定(月火水木金土日の順で、1が週末)

飲食業やサービス業など、土日以外が定休日の業種では、この関数が特に有用です。

NETWORKDAYS関数とNETWORKDAYS.INTL関数

NETWORKDAYS関数は、2つの日付間の営業日数を計算する関数です。プロジェクトの実働日数計算や、勤務日数の集計に使用されます。構文は=NETWORKDAYS(開始日, 終了日, [祝日])です。

月間の営業日数を計算する例: =NETWORKDAYS(DATE(2024,12,1),DATE(2024,12,31),$F$2:$F$20)

NETWORKDAYS.INTL関数は、WORKDAY.INTL関数と同様に、柔軟な週末設定が可能です。例えば、

水曜日が定休日の店舗の月間営業日数を計算する場合:

=NETWORKDAYS.INTL(DATE(2024,12,1),DATE(2024,12,31),”0010000″,$F$2:$F$20)

これらの関数を使用することで、業種や企業の就業規則に応じた正確な営業日計算が可能になります。

WEEKNUM関数とISOWEEKNUM関数

WEEKNUM関数は、指定した日付がその年の第何週目かを返す関数です。構文は=WEEKNUM(日付, [週の基準])で、週の基準により週の開始曜日が変わります。

  • 1(既定)=日曜開始・System 1
  • 2=月曜開始・System 1
  • 11–17=開始曜日は変えられるがいずれも System 1
  • 21=月曜開始・System 2(ISO 8601)
    ※ISO準拠が必要なら type=21 または ISOWEEKNUM を使用。」

週次レポートの管理では、以下のような使い方ができます。 =”第”&WEEKNUM(A2,2)&”週”

ISOWEEKNUM関数は、ISO 8601規格に基づく週番号を返します。国際的な業務では、この規格に準拠することが重要です。ISO規格では、週は月曜日に始まり、その年の第1週は1月4日を含む週と定義されています。

EOWEEK関数(カスタム関数の作成)

Googleスプレッドシートには週末日を返す標準関数はないため、数式を組み合わせて算出します。

週末を“日曜”にしたい場合は次のいずれかを使います。

=A1 + 7 – WEEKDAY(A1, 2)(型=2:月=1, …, 日=7 なので、その週の日曜を返す)

または

=A1 + MOD(1 – WEEKDAY(A1), 7)(既定型のまま“日曜”までの差分を求める)

この数式を応用して、

週の開始日(月曜日)を求める場合: =A1-WEEKDAY(A1,3)

週単位での集計や、週報の期間設定などで活用できます。名前付き範囲やLAMBDA関数(利用可能な場合)を使用して、より使いやすい形にカスタマイズすることも可能です。

曜日を使った条件付き集計

SUMIF関数やCOUNTIF関数と曜日判定を組み合わせることで、曜日別の集計が可能です。例えば、

月曜日の売上だけを集計する場合:

推奨)SUMPRODUCT を使う:

=SUMPRODUCT((日付範囲>=開始日)*(日付範囲<=終了日)*(WEEKDAY(日付範囲,2)=1)*売上範囲)

または 補助列に =WEEKDAY(日付セル,2) を用意し、

=SUMIFS(売上範囲,日付範囲,”>=”&開始日,日付範囲,”<=”&終了日, 曜日列,1) とする。

より実用的には、SUMPRODUCT関数を使用します。 =SUMPRODUCT((WEEKDAY(A2:A100,2)=1)*(B2:B100))

この数式は、A列の日付が月曜日の場合のB列の値を合計します。曜日別の来客数分析、売上分析、作業時間の集計などで活用できます。

曜日関数とVLOOKUPの組み合わせ

曜日に応じて異なる値を参照したい場合、WEEKDAY関数とVLOOKUP関数を組み合わせます。例えば、

曜日別の時給や割増率を管理する場合:

曜日別時給テーブル(E1:F8):

曜日番号 | 時給

1        | 1200

2        | 1000

=VLOOKUP(WEEKDAY(A2),E$1:F$8,2,FALSE)

この方法により、曜日に応じた動的な計算が可能になります。シフト管理での給与計算、曜日別の配送料金設定、営業時間の管理などで実用的です。

スプレッドシートの曜日自動入力でスケジュール管理を効率化しよう

Googleスプレッドシートの曜日機能を活用すれば、日付に応じた曜日表示や営業日の自動判定が簡単にできます。TEXT関数で曜日を表示し、WEEKDAYやCHOOSEで条件判定、WORKDAYやNETWORKDAYSで営業日計算まで自動化可能です。

ARRAYFORMULAで一括処理したり、条件付き書式で土日を色分けすることで、表が見やすくなります。曜日自動化を取り入れることで、スケジュール管理や勤怠表作成の手間を減らし、業務をより効率的に進められるでしょう。


※ 掲載している情報は記事更新時点のものです。

※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。

関連記事