Number.Round ปัดเศษตัวเลขทศนิยมตามจำนวนหลักที่กำหนด โดย default ใช้ RoundingMode.ToEven (Banker’s Rounding) หรือเลือกวิธีปัดเศษอื่นได้
=Number.Round(number as nullable number, optional digits as nullable number, optional roundingMode as nullable number) as nullable number
=Number.Round(number as nullable number, optional digits as nullable number, optional roundingMode as nullable number) as nullable number
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| number | number | Yes | ตัวเลข | |
| digits | number | Optional | – | จำนวนทศนิยม |
| roundingMode | number | Optional | RoundingMode.ToEven | รูปแบบการปัดเศษ (RoundingMode.ToEven, RoundingMode.Up, RoundingMode.Down, RoundingMode.AwayFromZero, RoundingMode.TowardZero) |
Number.Round(2.5, 0)=Number.Round(2.5, 0)
2
Number.Round(2.5, 0, RoundingMode.AwayFromZero)=Number.Round(2.5, 0, RoundingMode.AwayFromZero)
3
Number.Round(5.789, 1, RoundingMode.Down)=Number.Round(5.789, 1, RoundingMode.Down)
5.7
Table.TransformColumns( Source, {{"Price", each Number.Round(_, 2), type number}} )=Table.TransformColumns(
Source,
{{"Price", each Number.Round(_, 2), type number}}
)
คอลัมน์ Price ทั้งหมดถูกปัดเศษเหลือ 2 ทศนิยม
เป็น default rounding mode ของ Number.Round – เมื่อเลขอยู่กลางพอดี (0.5) จะปัดไปที่เลขคู่ใกล้ที่สุด เช่น 2.5 → 2, 3.5 → 4 (ไม่ปัดขึ้นเสมอ) ช่วยลด bias เวลาคำนวณค่าเฉลี่ยของชุดข้อมูลขนาดใหญ่ ถ้าต้องการพฤติกรรมแบบ Excel (ปัดขึ้นเสมอ) ให้ใช้ RoundingMode.AwayFromZero
Number.Round มี mode ให้เลือก (รวม RoundDown/RoundUp ด้วย) ยืดหยุ่นกว่า ส่วน Number.RoundDown และ Number.RoundUp ทำแค่ปัดลงและปัดขึ้นอย่างเดียว
ถ้าไม่ระบุ digits จะปัดเป็นจำนวนเต็ม (ทศนิยม 0 ตำแหน่ง) เช่น Number.Round(3.7) = 4
เพราะ RoundingMode.Down จะปัดลงเสมอ ไม่ว่าค่าจะใกล้ขอบบนหรือล่าง ถ้าต้องการปัดขึ้นให้ใช้ RoundingMode.Up แทน – ต้องเลือก mode ให้ตรงกับวัตถุประสงค์
มี 5 แบบ: (1) **ToEven** (default) – ปัด 0.5 ไปเลขคู่ เช่น 2.5→2, 3.5→4 (2) **AwayFromZero** – ปัดออกจากศูนย์เสมอ เช่น 2.5→3, -2.5→-3 (เหมือน Excel) (3) **TowardZero** – ปัดเข้าหาศูนย์ เช่น 2.5→2, -2.5→-2 (4) **Up** – ปัดขึ้นเสมอ เช่น 2.1→3, -2.1→-2 (5) **Down** – ปัดลงเสมอ เช่น 2.9→2, -2.9→-3
Number.Round ใช้ปัดเศษตัวเลขในตารางข้อมูล Power Query ให้เหลือทศนิยมตามที่ต้องการ
**สิ่งสำคัญ:** ถ้าไม่ระบุ roundingMode ฟังก์ชันจะใช้ **RoundingMode.ToEven** (Banker’s Rounding) เป็น default คือเมื่อค่าอยู่กึ่งกลาง (เช่น 2.5) จะปัดไปที่เลขคู่ใกล้ที่สุด ไม่ใช่ปัดขึ้นเสมอ – นี่เป็น behavior ที่แตกต่างจาก Excel ROUND() ต้องระวัง!
ที่เจ๋งคือ มันมี roundingMode ให้เลือก – RoundingMode.ToEven (default), RoundUp (ปัดขึ้น), RoundDown (ปัดลง), TowardZero (ปัดเข้าหาศูนย์) ทำให้ควบคุมการปัดเศษได้ตามความต้องการ
ส่วนตัวผมแนะนำให้ระบุ **RoundingMode.AwayFromZero** เสมอ เพราะจะได้ผลลัพธ์เหมือน Excel ROUND() พอดี ซึ่งส่วนใหญ่เราต้องการให้ตรงกับ logic ของสูตร Excel – ถึง ToEven จะลด bias ในทางสถิติ แต่ในงานจริงเราต้องการความสอดคล้องกับ Excel มากกว่า 😎