---
title: WEEKDAY – หาวันในสัปดาห์จากวันที่
url: https://www.thepexcel.com/functions/dax/date-and-time/weekday-dax/
type: function-explainer
program: DAX
syntax: "WEEKDAY(<Date>, [<ReturnType>])"
date: 2025-12-13
updated: 2025-12-25
scores:
  popularity: 6
  difficulty: 2
  usefulness: 6
---

# WEEKDAY – หาวันในสัปดาห์จากวันที่

> WEEKDAY คืนค่าเลขวันในสัปดาห์ (1-7) จากวันที่ที่กำหนด สามารถปรับรูปแบบให้เริ่มจากอาทิตย์หรือจันทร์ได

## คำอธิบาย

WEEKDAY คืนค่าเลขวันในสัปดาห์ (1-7) จากวันที่ที่กำหนด สามารถปรับรูปแบบให้เริ่มจากอาทิตย์หรือจันทร์ได้ตามต้องการ เหมาะสำหรับการแยกวันทำงาน วันหยุด หรือวิเคราะห์พฤติกรรมตามวัน

## Syntax

```excel
WEEKDAY(&lt;Date&gt;, [&lt;ReturnType&gt;])
```

**Variant**

```excel
WEEKDAY(&lt;Date&gt;)
```

คืนเลขวันในสัปดาห์ด้วยค่าตั้งต้นของรูปแบบ

**Variant**

```excel
WEEKDAY(&lt;Date&gt;, &lt;ReturnType&gt;)
```

กำหนดรูปแบบการนับวันในสัปดาห์ด้วย ReturnType

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| Date | Yes | datetime |  | วันที่หรือเวลาที่ต้องการหาค่าวันในสัปดาห์ สามารถเป็นคอลัมน์วันที่ หรือ TODAY() หรือ DATE() function |
| ReturnType | No | integer | 1 | กำหนดรูปแบบการนับวัน (ใช้เลขใด 1-7 หรือ 0-6 และวันไหนเริ่มสัปดาห์) - ค่าตั้งต้นคือ 1 |

## เคสการใช้งาน

### แยกวันทำงาน/วันหยุด

เช่น ใช้ WEEKDAY แล้วตรวจว่าค่าอยู่ในช่วงวันเสาร์-อาทิตย์หรือไม่

_เหมาะกับ:_ weekend-flag

### วิเคราะห์ยอดขายตามวันในสัปดาห์

สร้างเลขวันในสัปดาห์เพื่อใช้จัดกลุ่มและทำกราฟ

_เหมาะกับ:_ analyze-by-weekday

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: หาวันในสัปดาห์ โดยอาทิตย์=1

```excel
Weekday Sun Start =
WEEKDAY('DimDate'[Date])
```

**ผลลัพธ์:** `1=อาทิตย์, 2=จันทร์, ..., 7=เสาร์`

ใช้ค่าตั้งต้น ReturnType 1 ให้อาทิตย์เป็นวันแรกของสัปดาห์ เหมาะกับรายงานตะวันตก

### 2. ตัวอย่างที่ 2: หาวันในสัปดาห์ โดยจันทร์=1

```excel
Weekday Mon Start =
WEEKDAY('DimDate'[Date], 2)
```

**ผลลัพธ์:** `1=จันทร์, 2=อังคาร, ..., 7=อาทิตย์`

ใช้ ReturnType 2 ให้จันทร์เป็นวันแรก ซึ่งตรงกับปฏิทินส่วนใหญ่ของโลก

### 3. ตัวอย่างที่ 3: แยกวันทำงาน/วันหยุด

```excel
Is Weekend =
IF(WEEKDAY('DimDate'[Date], 2) >= 6, TRUE, FALSE)
```

**ผลลัพธ์:** `TRUE สำหรับเสาร์/อาทิตย์, FALSE สำหรับวันจันทร์-ศุกร์`

เมื่อใช้ ReturnType 2 วันเสาร์ (6) และอาทิตย์ (7) จะมีค่า >= 6 ทำให้ตรวจสอบวันหยุดง่ายขึ้น

### 4. ตัวอย่างที่ 4: ใช้ใน Calculated Column

```excel
Day Name =
VAR wd = WEEKDAY('DimDate'[Date], 2)
RETURN
  SWITCH(wd,
    1, "Monday",
    2, "Tuesday",
    3, "Wednesday",
    4, "Thursday",
    5, "Friday",
    6, "Saturday",
    7, "Sunday",
    "Unknown")
```

**ผลลัพธ์:** `วันตามชื่อ เช่น "Monday", "Tuesday" เป็นต้น`

ใช้ VAR เก็บค่า WEEKDAY ไว้ แล้ว SWITCH เพื่อแปลงเป็นชื่อวันที่อ่านง่าย

## หมายเหตุเพิ่มเติม

- ผมแนะนำให้เลือก ReturnType 2 (จันทร์=1) เป็นค่ามาตรฐาน เพราะส่วนใหญ่ของปฏิทินและปัญหาธุรกิจใช้จันทร์เป็นจุดเริ่มต้น

- ถ้าต้องแสดงชื่อวัน เช่น "จันทร์" "อังคาร" ใช้ VAR + SWITCH จะทำให้ code อ่านง่ายกว่าซ้อน IF หลายชั้น

- อย่าลืมว่า WEEKDAY ทำการ context transition เวลาใช้ใน row context (เช่น Calculated Column) หาก context หลวมอาจได้ผลลัพธ์ไม่คาดหวัง ควร explicit ชัดเจน

- สำหรับการคำนวณวันทำงาน (business days) ผมแนะนำใช้ ReturnType 2 แล้ว filter วันจันทร์-ศุกร์ จะง่ายกว่า

## คำถามที่พบบ่อย

**Q: ReturnType 1, 2, 3 ต่างกันอย่างไร?**

ReturnType 1 (ค่าตั้งต้น): อาทิตย์=1, เสาร์=7 | ReturnType 2: จันทร์=1, อาทิตย์=7 | ReturnType 3: จันทร์=0, อาทิตย์=6 ส่วนตัวผมชอบใช้ ReturnType 2 มากที่สุด เพราะตรงกับปฏิทินธรรมชาติของคนเอเชีย

**Q: WEEKDAY vs WEEKNUM ต่างกันอย่างไร?**

WEEKDAY คืนค่า 1-7 แทนวันในสัปดาห์ (จันทร์, อังคาร...) ส่วน WEEKNUM คืนค่า 1-52/53 แทนสัปดาห์ที่เท่าไหร่ของปีนั้น ตัวอย่างเช่น "วันนี้คือจันทร์ (WEEKDAY=1) ของสัปดาห์ที่ 10 ของปี (WEEKNUM=10)"

**Q: ทำไมต้องใช้ ReturnType? ไม่ใช้ค่าตั้งต้นไม่ได้หรือ?**

ใช้ได้ แต่การเลือก ReturnType ที่เหมาะสมจะทำให้เขียน logic ง่ายขึ้น เช่นถ้าใช้ ReturnType 1 อาทิตย์=1 แต่โลกส่วนใหญ่นับสัปดาห์เริ่มจันทร์ จึงอาจทำให้สับสน ผมแนะนำให้เลือก ReturnType ที่ตรงกับโดเมนของงาน (ประเทศ, ธรรมชาติการทำงาน)

**Q: WEEKDAY เป็น scalar function หรือ table function?**

WEEKDAY เป็น scalar function ที่คืนค่าเดียว (เลข 1-7) ใช้ได้ใน Calculated Columns, Measures, Calculated Tables ผมมักใช้ใน Calculated Column มากที่สุด เพราะสะดวกในการสร้างคอลัมน์ helper เพื่อวิเคราะห์ต่อไป

## ฟังก์ชันที่เกี่ยวข้อง

- [ฟังก์ชัน YEAR ใน DAX](https://www.thepexcel.com/functions/dax/date-and-time/year-dax/)
- [MONTH (DAX) – ดึงเลขเดือนจากค่า datetime](https://www.thepexcel.com/functions/dax/date-and-time/month-dax/)
- [DAY – ดึงเลขวัน (1–31) จากวันที่](https://www.thepexcel.com/functions/dax/date-and-time/day-dax/)
- today-dax
- [DATE – สร้างวันที่จากปี เดือน วัน](https://www.thepexcel.com/functions/dax/date-and-time/date-dax/)
- format

## แหล่งข้อมูลเพิ่มเติม

- [DAX Guide: WEEKDAY](https://dax.guide/weekday/) _(guide)_
- [Microsoft Learn: WEEKDAY Function](https://learn.microsoft.com/en-us/dax/weekday-function-dax) _(official)_

---

_Source: [https://www.thepexcel.com/functions/dax/date-and-time/weekday-dax/](https://www.thepexcel.com/functions/dax/date-and-time/weekday-dax/)_
