Number.Round ปัดเศษตัวเลขทศนิยมตามจำนวนหลักที่กำหนด โดย default ใช้ RoundingMode.ToEven (Banker’s Rounding) หรือเลือกวิธีปัดเศษอื่นได้
| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| number | number | ตัวเลข | |
| [digits]ไม่บังคับ | number | – | จำนวนทศนิยม |
| [roundingMode]ไม่บังคับ | number | RoundingMode.ToEven | รูปแบบการปัดเศษ (RoundingMode.ToEven, RoundingMode.Up, RoundingMode.Down, RoundingMode.AwayFromZero, RoundingMode.TowardZero) |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
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 มากกว่า 😎
⚠️ ใช้ default mode (ToEven) จึงได้ 2 เพราะปัดไปเลขคู่ใกล้ที่สุด – ถ้าเป็น Excel ROUND(2.5, 0) จะได้ 3 แทน! ส่วน Number.Round(3.5, 0) จะได้ 4 (เลขคู่) นี่คือ Banker's Rounding ที่ลด bias
ใช้ RoundingMode.AwayFromZero จะได้ผลเหมือน Excel ROUND – ปัด 2.5 ได้ 3 (ไม่ใช่ 2) เพราะปัดออกจากศูนย์เสมอ ใช้ mode นี้ถ้าต้องการพฤติกรรมแบบ Excel
ปัดลงเสมอ – 5.789 ปัดเป็น 5.7 (ใช้เมื่อต้องการปัดให้ต่ำกว่า เช่น คำนวณต้นทุน)
ใช้ Number.Round กับทุกแถวในคอลัมน์ 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 จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
หาค่าสัมบูรณ์ (Absolute Value)
Number.IntegerDivide ทำการหารจำนวนสองจำนวน แล้วปัดเศษลงให้เหลือแต่จำนวนเต็ม ฟังก์ชันนี้มีประโยชน์เมื่อต้องการหารและได้ผลลัพธ์เป็นจำนวนเต็ม เช่นหารจำนวนสินค้าด้วยปริมาณต่อแพ็ก
ปัดเศษลงเสมอ (Floor)
ปัดเศษขึ้นเสมอ (Ceiling)
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่