Thep Excel

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

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

=DAY(<date>)

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
8/10

Difficulty
2/10

Usefulness
8/10

Syntax & Arguments

=DAY(<date>)

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

How it works

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

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

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

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

Examples

ตัวอย่างที่ 1: ดึงเลขวันจากคอลัมน์วันที่ (Calculated Column)
Day of Month = DAY('DimDate'[Date])
สร้างคอลัมน์ช่วยเพื่อเก็บเลขวันของเดือนจากคอลัมน์ Date ตัวเลขนี้ใช้จัดกลุ่มหรือเปรียบเทียบได้ทันที
DAX Formula:

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

Result:

ได้เลขวัน 1–31 ตัวเลข

ตัวอย่างที่ 2: ดึงเลขวันจากวันปัจจุบัน (Measure)
Today Day Number = DAY(TODAY())
ใช้ TODAY() เพื่อให้ DAY ดึงเลขวันของวันปัจจุบัน เหมาะกับการเชื่อมโยงกับข้อความไดนามิกหรือเงื่อนไข
DAX Formula:

Today Day Number =
DAY(TODAY())

Result:

เลขวันของเดือนปัจจุบัน (เช่น 23 ถ้าวันนี้คือวันที่ 23 ของเดือน)

ตัวอย่างที่ 3: ตรวจว่าเป็นวันสิ้นเดือนหรือไม่ (Calculated Column)
Is Month End = DAY('DimDate'[Date]) = DAY(EOMONTH('DimDate'[Date], 0))
EOMONTH ส่งคืนวันสิ้นเดือน แล้วเทียบเลขวัน DAY ของทั้งวันที่ในข้อมูลและ EOMONTH ถ้าเท่ากัน = วันสิ้นเดือน นี่คือวิธี flag "month-end" ทั่วไปใน DAX
DAX Formula:

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

Result:

TRUE เมื่อเป็นวันสิ้นเดือน FALSE เมื่อไม่ใช่

ตัวอย่างที่ 4: วิเคราะห์ยอดขายตามวันของเดือน (Measure with GROUP BY)
Avg Sales by Day Group = CONCAT( "วัน ", DAY(MAX('Sales'[SalesDate])), ": ", FORMAT( AVERAGE('Sales'[Amount]), "$#,##0.00" ) )
ใช้ DAY เพื่อแสดงเลขวัน แล้ว CONCAT เพื่อต่อกับข้อมูลอื่น ๆ สร้างป้ายชื่อไดนามิก เหมาะกับ visual ที่ต้องแสดงข้อมูลตามวันของเดือน
DAX Formula:

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

Result:

ข้อความเช่น "วัน 15: $1,234.56"

FAQs

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

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

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

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

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

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

Resources & Related

Additional Notes

DAY เป็นฟังก์ชันที่ดึง “เลขวันของเดือน” จากค่าวันที่/เวลา แล้วคืนค่าเป็นตัวเลข 1–31 ฟังก์ชันนี้ง่ายแต่จำเป็นมากในการวิเคราะห์ข้อมูลตามลักษณะเวลา

ที่เจ๋งคือ DAY ทำงานไม่ว่าค่าวันที่จะมาจากไหน—ได้แก่ คอลัมน์วันที่ฟังก์ชัน TODAY() หรือแม้แต่ค่า text ที่เป็นรูปแบบวันที่ก็ได้ ส่วนใจสำคัญอีกประการคือ DAY คืนค่าเป็นตัวเลขเสมอ ไม่ใช่ข้อความ ทำให้ใช้ในการคำนวณหรือเปรียบเทียบได้

ส่วนตัวผมชอบใช้ DAY สำหรับสองอย่างหลัก: แรกคือสร้าง flag วันสิ้นเดือน โดยเทียบเลขวันปัจจุบันกับเลขวันของ EOMONTH ที่จะให้ค่า 1 ชุดเดียว สองคือ จัดกลุ่มข้อมูลตามวันของเดือนเพื่อดูรูปแบบพฤติกรรมตามระยะวันในเดือน เช่น วันต้นเดือนขายดีกว่าวันท้ายเดือนหรือไม่ 😎

Leave a Reply

Your email address will not be published. Required fields are marked *