---
title: DAY – ดึงเลขวัน (1–31) จากวันที่
url: https://www.thepexcel.com/functions/dax/date-and-time/day-dax/
type: function-explainer
program: DAX
syntax: "DAY(<date>)"
date: 2025-12-13
updated: 2025-12-23
scores:
  popularity: 8
  difficulty: 2
  usefulness: 8
---

# DAY – ดึงเลขวัน (1–31) จากวันที่

> DAY คืนค่าเลขวันของเดือนจากค่าวันที่/เวลา (1–31) เป็นฟังก์ชันพื้นฐานสำหรับการวิเคราะห์ตามวันของเดือน

## คำอธิบาย

DAY คืนค่าเลขวันของเดือนจากค่าวันที่/เวลา (1–31) เป็นฟังก์ชันพื้นฐานสำหรับการวิเคราะห์ตามวันของเดือน การจัดกลุ่ม และการสร้างคอลัมน์ช่วย

## Syntax

```excel
DAY(&lt;date&gt;)
```

**Variant**

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

คืนค่าเลขวันของเดือนจากค่าวันที่/เวลา

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| date | Yes | date/datetime |  | ค่าวันที่/เวลา หรือข้อความรูปแบบวันที่ ที่ต้องการดึงเลขวันของเดือน |

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

### สร้างคอลัมน์วันของเดือนในตารางวันที่

ใช้ทำแกน/การจัดกลุ่มตามวันของเดือน

_เหมาะกับ:_ day-of-month-column

### ทำเงื่อนไขที่อิงวันของเดือน

เช่น ตรวจว่าเป็นวันสิ้นเดือนหรือวันต้นเดือน (ร่วมกับฟังก์ชันอื่น)

_เหมาะกับ:_ day-based-condition

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: ดึงเลขวันจากคอลัมน์วันที่ (Calculated Column)

```excel
Day of Month =
DAY('DimDate'[Date])
```

**ผลลัพธ์:** `ได้เลขวัน 1–31 ตัวเลข`

สร้างคอลัมน์ช่วยเพื่อเก็บเลขวันของเดือนจากคอลัมน์ Date ตัวเลขนี้ใช้จัดกลุ่มหรือเปรียบเทียบได้ทันที

### 2. ตัวอย่างที่ 2: ดึงเลขวันจากวันปัจจุบัน (Measure)

```excel
Today Day Number =
DAY(TODAY())
```

**ผลลัพธ์:** `เลขวันของเดือนปัจจุบัน (เช่น 23 ถ้าวันนี้คือวันที่ 23 ของเดือน)`

ใช้ TODAY() เพื่อให้ DAY ดึงเลขวันของวันปัจจุบัน เหมาะกับการเชื่อมโยงกับข้อความไดนามิกหรือเงื่อนไข

### 3. ตัวอย่างที่ 3: ตรวจว่าเป็นวันสิ้นเดือนหรือไม่ (Calculated Column)

```excel
Is Month End =
DAY('DimDate'[Date]) = DAY(EOMONTH('DimDate'[Date], 0))
```

**ผลลัพธ์:** `TRUE เมื่อเป็นวันสิ้นเดือน FALSE เมื่อไม่ใช่`

EOMONTH ส่งคืนวันสิ้นเดือน แล้วเทียบเลขวัน DAY ของทั้งวันที่ในข้อมูลและ EOMONTH ถ้าเท่ากัน = วันสิ้นเดือน นี่คือวิธี flag "month-end" ทั่วไปใน DAX

### 4. ตัวอย่างที่ 4: วิเคราะห์ยอดขายตามวันของเดือน (Measure with GROUP BY)

```excel
Avg Sales by Day Group =
CONCAT(
  "วัน ",
  DAY(MAX('Sales'[SalesDate])),
  ": ",
  FORMAT(
    AVERAGE('Sales'[Amount]),
    "$#,##0.00"
  )
)
```

**ผลลัพธ์:** `ข้อความเช่น "วัน 15: $1,234.56"`

ใช้ DAY เพื่อแสดงเลขวัน แล้ว CONCAT เพื่อต่อกับข้อมูลอื่น ๆ สร้างป้ายชื่อไดนามิก เหมาะกับ visual ที่ต้องแสดงข้อมูลตามวันของเดือน

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

- ระวัง: ใช้ DAY() กับข้อความวันที่โดยไม่แน่ใจ locale จะได้ค่าผิด ควรแปลงเป็นวันที่จริงก่อนด้วย DATEVALUE()

- เพื่อการวิเคราะห์เวลาที่เป็นระบบ ใช้ DAY คู่กับ MONTH YEAR WEEKDAY และ Date table เพื่อให้แต่ละระดับเวลาสัมพันธ์กัน

- ใช้ DAY กับ EOMONTH เพื่อสร้าง flag วันสิ้นเดือน นี่เป็นเทคนิค month-end standard ใน DAX

- ผสม DAY กับ IF เพื่อทำเงื่อนไขตามวันของเดือน เช่น ลด 10% สำหรับวันต้นเดือน (DAY < 10)

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

**Q: DAY คืนค่าเป็นชนิดอะไร?**

คืนค่าเป็นตัวเลขจำนวนเต็ม (integer) 1–31 ซึ่งแทนเลขวันของเดือน ใช้ได้ทันทีในการคำนวณหรือเปรียบเทียบ

**Q: DAY ต่างจาก WEEKDAY อย่างไร?**

DAY คืนเลขวันของเดือน (1–31) ส่วน WEEKDAY คืนเลขวันของสัปดาห์ (1–7 ตามรูปแบบที่กำหนด เช่น 1=จันทร์ 7=อาทิตย์)

**Q: DAY ทำงานกับข้อความรูปแบบวันที่ได้หรือไม่?**

ได้ DAY จะแปลงข้อความตามการตั้งค่า locale ของคอมพิวเตอร์ เช่น "3-4-1007" ตีความว่า เดือน 3 วันที่ 4 (US format) หรือ วันที่ 3 เดือน 4 (EU format) จึงควรใช้วันที่จริงแทนข้อความเพื่อหลีกเลี่ยงความสับสน

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

- [Microsoft Learn: DAY function](https://learn.microsoft.com/en-us/dax/day-function-dax) _(official)_
- [DAX Guide: DAY](https://dax.guide/day/) _(guide)_
- [SQLBI: Date and Time Functions in DAX](https://www.sqlbi.com/articles/time-intelligence-functions-in-power-bi-and-ssas/) _(guide)_

---

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