Menu

Excelで日付から曜日を表示する: TEXT関数とWEEKDAY関数

=TEXT(A2,"dddd")はA2の日付の曜日名(Mondayなど)を返し、=WEEKDAY(A2)は曜日を数値で返します。短い曜日名、WEEKDAYの種類、週末の判定を学びます。

このページのシートはすべて実際に動きます。数値や数式を変えると再計算されます。

=TEXT(A2,"dddd")は、A2の日付の曜日名(Mondayなど)を返します。曜日を数値で出すには=WEEKDAY(A2)を使い、日曜の1から土曜の7までを返します。

日付から曜日名を出す
B2
ABC
1DateDayWEEKDAY
22026-03-02Monday2
32026-03-06Friday6
42026-03-07Saturday7
52026-03-08Sunday1
62026-12-25Friday6
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

2026-03-02は月曜日なので、WEEKDAYは2を返します(日曜が1です)。2026年のクリスマスは金曜日です。A列のどの日付を変えても、曜日名がそれに合わせて変わります。TEXTは文字列を返すので、ラベルやレポートに向いています。週末の判定のように曜日を計算に使うときはWEEKDAYを使います。

短い曜日名とほかの表示形式

表示形式のコードで、曜日名のどこまでを出すかが決まります。"dddd"は完全な名前、"ddd"は最初の3文字で、"dd"や"d"は代わりに日にちを表示します。コードを組み合わせれば、日付全体を言葉で書けます。

曜日の表示形式コード
C2
ABCD
1Dateddddddddddd, mmmm d
22026-03-02MondayMonMonday, March 2
32026-07-04SaturdaySatSaturday, July 4
42026-10-31SaturdaySatSaturday, October 31
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

曜日名はExcelの言語に従います。ドイツ語版ExcelはMontagと書き、コードには"TTTT"を使います。日本語版Excelは例外で、"dddd"は日本語版でもMondayを返し、日本語の曜日には専用のコードがあります。=TEXT(A2,"aaa")は月を、=TEXT(A2,"aaaa")は月曜日を表示し、=TEXT(A2,"m/d(aaa)")は日本でよく使う3/2(月)という形になります。同じコードはユーザー定義の表示形式でも使えます。

セルには日付を残したまま曜日だけを表示するなら、数式ではなく表示形式を使います。ホーム > 表示形式 > その他の表示形式 > ユーザー定義でddddやddd yyyy-mm-ddと入力します。セルには日付が入ったままなので、合計、検索、並べ替えも動き続けます。

WEEKDAY関数と種類の引数

WEEKDAY(serial_number, [return_type])は、その日が週の何番目かを返します。2つ目の引数で、週が何曜日から始まるかが決まります。

return_type(種類)数値
1または省略日曜1から土曜7
2月曜1から日曜7
3月曜0から日曜6
11月曜1から日曜7(2と同じ)
12から17火曜1から月曜7のように1日ずつずれ、17は日曜1から土曜7
同じ曜日の3通りの番号
C2
ABCD
1DateType 1Type 2Type 3
22026-03-02210
32026-03-06654
42026-03-07765
52026-03-08176
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

3月2日(月曜)では、3つの種類が2、1、0を返します。3月8日(日曜)では1、7、6です。米国以外で多くの人が使いたいのは種類2です。月曜が1で、5より大きいのは土曜と日曜だけです。

日付が週末かどうかを調べる

種類2では土曜が6、日曜が7なので、WEEKDAY(A2,2)>5は週末にTRUEになります。IFに入れてラベルにするか、条件付き書式のルール(ホーム > 条件付き書式 > 新しいルール > 数式を使用して、書式設定するセルを決定)にして土日の行に色を付けます。

週末の判定と色付け
C2
ABC
1DateWeekend?Label
22026-03-05FALSEWeekday
32026-03-06FALSEWeekday
42026-03-07TRUEWeekend
52026-03-08TRUEWeekend
62026-03-09FALSEWeekday
72026-03-10FALSEWeekday
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

3月7日(土曜)と3月8日(日曜)の行が強調されます。ルールのAの前の$は、行のどの列もA列の日付を読むように固定しています。日付を1つずつ調べるのではなく2つの日付の間の平日を数えるなら、NETWORKDAYSを使います。NETWORKDAYSとWORKDAYを参照してください。

曜日の番号を自分のラベルに変える

MoやTu、シフト名のように、TEXTでは作れないラベルが欲しいときは、WEEKDAYの番号をCHOOSEに渡します。CHOOSEはその位置の項目を選びます:=CHOOSE(WEEKDAY(A2,2),"Mo","Tu","We","Th","Fr","Sa","Su")。種類2ではリストが月曜から始まるので、水曜日ならWeが返ります。

練習: 曜日名と週末

やってみよう: 曜日名
B2
AB
1DateDay
22026-04-16
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

やってみよう: B2に、A2の日付の曜日の完全な名前(たとえばMonday)を表示してください。

やってみよう: 週末かどうか
B2
AB
1DateWeekend?
22026-04-16
32026-04-17
42026-04-18
52026-04-19
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

やってみよう: B2に、A2の日付が土曜か日曜ならTRUE、それ以外ならFALSEを返し、B5まで下にコピーしてください。

TEXTが違う曜日を返す理由

A列に日付全体ではなく日にち(1、2、15)が入っていると、TEXTは各数値をExcelの暦の始まりである1900年1月の日付と読み、その月とは関係のない曜日名を返します。

日にちの数は日付ではない
B2
ABC
1TypedTEXTBuilt with DATE
215SundayWednesday
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

15は1900年1月15日と読まれ、Excelはそれを日曜日とします。DATE(2026,4,A2)で本物の日付を作ると、2026年4月15日は水曜日だとわかります。文字列として保存された日付でも同じことが起こります。=ISNUMBER(A2)で確かめてください。本物の日付ならTRUEです。

よくある質問

Excelで日付から曜日を出すには?

=TEXT(A2,"dddd")は英語の曜日名(Monday)を、=TEXT(A2,"ddd")は短い形(Mon)を返します。数値なら、月曜を1、日曜を7と数える=WEEKDAY(A2,2)を使います。

ExcelのWEEKDAYは何を返しますか?

1から7の数値です。2つ目の引数がなければ日曜が1、土曜が7です。WEEKDAY(A2,2)では月曜が1、日曜が7、WEEKDAY(A2,3)では月曜が0、日曜が6になります。

Excelで日付が週末かどうかを調べるには?

=WEEKDAY(A2,2)>5は土曜と日曜にTRUEを返します。ラベルにするならIFで囲みます:=IF(WEEKDAY(A2,2)>5,"Weekend","Weekday")。

日付と曜日を同じセルに表示するには?

セルにユーザー定義の表示形式を設定します。ホーム > 表示形式 > その他の表示形式 > ユーザー定義でddd yyyy-mm-ddと入力します。セルには日付が入ったままなので、それを読む数式も動き続けます。

TEXTが違う曜日を返すのはなぜですか?

セルに入っているのが日付ではなく、日にちの数(1から31)か文字列だからです。TEXTは数値15をExcelの暦の15日目、つまり1900年1月15日と読み、Excelはそれを日曜日として表示します。本物の日付を使うか、DATEで作ってください。

Coddyのプログラミング言語のイラスト

Coddyでコードを学ぼう

始める