=TEXT(A2,"dddd")は、A2の日付の曜日名(Mondayなど)を返します。曜日を数値で出すには=WEEKDAY(A2)を使い、日曜の1から土曜の7までを返します。
| A | B | C | |
|---|---|---|---|
| 1 | Date | Day | WEEKDAY |
| 2 | 2026-03-02 | Monday | 2 |
| 3 | 2026-03-06 | Friday | 6 |
| 4 | 2026-03-07 | Saturday | 7 |
| 5 | 2026-03-08 | Sunday | 1 |
| 6 | 2026-12-25 | Friday | 6 |
2026-03-02は月曜日なので、WEEKDAYは2を返します(日曜が1です)。2026年のクリスマスは金曜日です。A列のどの日付を変えても、曜日名がそれに合わせて変わります。TEXTは文字列を返すので、ラベルやレポートに向いています。週末の判定のように曜日を計算に使うときはWEEKDAYを使います。
短い曜日名とほかの表示形式
表示形式のコードで、曜日名のどこまでを出すかが決まります。"dddd"は完全な名前、"ddd"は最初の3文字で、"dd"や"d"は代わりに日にちを表示します。コードを組み合わせれば、日付全体を言葉で書けます。
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Date | dddd | ddd | dddd, mmmm d |
| 2 | 2026-03-02 | Monday | Mon | Monday, March 2 |
| 3 | 2026-07-04 | Saturday | Sat | Saturday, July 4 |
| 4 | 2026-10-31 | Saturday | Sat | Saturday, 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 |
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Date | Type 1 | Type 2 | Type 3 |
| 2 | 2026-03-02 | 2 | 1 | 0 |
| 3 | 2026-03-06 | 6 | 5 | 4 |
| 4 | 2026-03-07 | 7 | 6 | 5 |
| 5 | 2026-03-08 | 1 | 7 | 6 |
3月2日(月曜)では、3つの種類が2、1、0を返します。3月8日(日曜)では1、7、6です。米国以外で多くの人が使いたいのは種類2です。月曜が1で、5より大きいのは土曜と日曜だけです。
日付が週末かどうかを調べる
種類2では土曜が6、日曜が7なので、WEEKDAY(A2,2)>5は週末にTRUEになります。IFに入れてラベルにするか、条件付き書式のルール(ホーム > 条件付き書式 > 新しいルール > 数式を使用して、書式設定するセルを決定)にして土日の行に色を付けます。
| A | B | C | |
|---|---|---|---|
| 1 | Date | Weekend? | Label |
| 2 | 2026-03-05 | FALSE | Weekday |
| 3 | 2026-03-06 | FALSE | Weekday |
| 4 | 2026-03-07 | TRUE | Weekend |
| 5 | 2026-03-08 | TRUE | Weekend |
| 6 | 2026-03-09 | FALSE | Weekday |
| 7 | 2026-03-10 | FALSE | Weekday |
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が返ります。
練習: 曜日名と週末
| A | B | |
|---|---|---|
| 1 | Date | Day |
| 2 | 2026-04-16 |
やってみよう: B2に、A2の日付の曜日の完全な名前(たとえばMonday)を表示してください。
| A | B | |
|---|---|---|
| 1 | Date | Weekend? |
| 2 | 2026-04-16 | |
| 3 | 2026-04-17 | |
| 4 | 2026-04-18 | |
| 5 | 2026-04-19 |
やってみよう: B2に、A2の日付が土曜か日曜ならTRUE、それ以外ならFALSEを返し、B5まで下にコピーしてください。
TEXTが違う曜日を返す理由
A列に日付全体ではなく日にち(1、2、15)が入っていると、TEXTは各数値をExcelの暦の始まりである1900年1月の日付と読み、その月とは関係のない曜日名を返します。
| A | B | C | |
|---|---|---|---|
| 1 | Typed | TEXT | Built with DATE |
| 2 | 15 | Sunday | Wednesday |
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で作ってください。