Thep Excel

Number.Roundปัดเศษทศนิยม

Number.Round ปัดเศษตัวเลขทศนิยมตามจำนวนหลักที่กำหนด โดย default ใช้ RoundingMode.ToEven (Banker’s Rounding) หรือเลือกวิธีปัดเศษอื่นได้

fx
=Number.Round(number, [digits], [roundingMode]) as nullable number

ความนิยม8/10
ความยาก2/10
ประโยชน์8/10

อัปเดต 3 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
number number ตัวเลข
[digits]ไม่บังคับ number – จำนวนทศนิยม
[roundingMode]ไม่บังคับ number RoundingMode.ToEven รูปแบบการปัดเศษ (RoundingMode.ToEven, RoundingMode.Up, RoundingMode.Down, RoundingMode.AwayFromZero, RoundingMode.TowardZero)

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

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 มากกว่า 😎

Examples

Default mode (ToEven) – ต่างจาก Excel ROUND!Number.Round(2.5, 0)

⚠️ ใช้ default mode (ToEven) จึงได้ 2 เพราะปัดไปเลขคู่ใกล้ที่สุด – ถ้าเป็น Excel ROUND(2.5, 0) จะได้ 3 แทน! ส่วน Number.Round(3.5, 0) จะได้ 4 (เลขคู่) นี่คือ Banker's Rounding ที่ลด bias

fx
=Number.Round(2.5, 0)

ผลลัพธ์2
ใช้ RoundingMode.AwayFromZero – เหมือน Excel ROUNDNumber.Round(2.5, 0, RoundingMode.AwayFromZero)

ใช้ RoundingMode.AwayFromZero จะได้ผลเหมือน Excel ROUND – ปัด 2.5 ได้ 3 (ไม่ใช่ 2) เพราะปัดออกจากศูนย์เสมอ ใช้ mode นี้ถ้าต้องการพฤติกรรมแบบ Excel

fx
=Number.Round(2.5, 0, RoundingMode.AwayFromZero)

ผลลัพธ์3
ปัดเศษด้วย RoundingMode.Down – บังคับปัดลงNumber.Round(5.789, 1, RoundingMode.Down)

ปัดลงเสมอ – 5.789 ปัดเป็น 5.7 (ใช้เมื่อต้องการปัดให้ต่ำกว่า เช่น คำนวณต้นทุน)

fx
=Number.Round(5.789, 1, RoundingMode.Down)

ผลลัพธ์5.7
ใช้ใน Table.TransformColumns ปัดคอลัมน์เต็มๆTable.TransformColumns( Source, {{"Price", each Number.Round(_, 2), type number}} )

ใช้ Number.Round กับทุกแถวในคอลัมน์ Price เพื่อปัดเศษราคาให้เหลือ 2 ตำแหน่ง (เหมาะสำหรับข้อมูลราคาสินค้า)

fx
=Table.TransformColumns(
Source,
{{"Price", each Number.Round(_, 2), type number}}
)

ผลลัพธ์คอลัมน์ Price ทั้งหมดถูกปัดเศษเหลือ 2 ทศนิยม

FAQs

RoundingMode.ToEven (Banker's Rounding) คืออะไร? ทำไมเป็น default?+

เป็น default rounding mode ของ Number.Round – เมื่อเลขอยู่กลางพอดี (0.5) จะปัดไปที่เลขคู่ใกล้ที่สุด เช่น 2.5 → 2, 3.5 → 4 (ไม่ปัดขึ้นเสมอ) ช่วยลด bias เวลาคำนวณค่าเฉลี่ยของชุดข้อมูลขนาดใหญ่ ถ้าต้องการพฤติกรรมแบบ Excel (ปัดขึ้นเสมอ) ให้ใช้ RoundingMode.AwayFromZero

ต่างจาก Number.RoundDown และ Number.RoundUp อย่างไร?+

Number.Round มี mode ให้เลือก (รวม RoundDown/RoundUp ด้วย) ยืดหยุ่นกว่า ส่วน Number.RoundDown และ Number.RoundUp ทำแค่ปัดลงและปัดขึ้นอย่างเดียว

ถ้าไม่ใส่ digits จะเป็นอะไร?+

ถ้าไม่ระบุ digits จะปัดเป็นจำนวนเต็ม (ทศนิยม 0 ตำแหน่ง) เช่น Number.Round(3.7) = 4

ทำไม Number.Round(2.99, 0, RoundingMode.Down) ได้ 2 ไม่ใช่ 3?+

เพราะ RoundingMode.Down จะปัดลงเสมอ ไม่ว่าค่าจะใกล้ขอบบนหรือล่าง ถ้าต้องการปัดขึ้นให้ใช้ RoundingMode.Up แทน – ต้องเลือก mode ให้ตรงกับวัตถุประสงค์

มี RoundingMode ให้เลือกกี่แบบ แตกต่างกันอย่างไร?+

มี 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

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ Number.Round จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้Number.RoundNumber functions
Number functions (4)
Number.Abs

หาค่าสัมบูรณ์ (Absolute Value)

Number.IntegerDivide

Number.IntegerDivide ทำการหารจำนวนสองจำนวน แล้วปัดเศษลงให้เหลือแต่จำนวนเต็ม ฟังก์ชันนี้มีประโยชน์เมื่อต้องการหารและได้ผลลัพธ์เป็นจำนวนเต็ม เช่นหารจำนวนสินค้าด้วยปริมาณต่อแพ็ก

Number.RoundDown

ปัดเศษลงเสมอ (Floor)

Number.RoundUp

ปัดเศษขึ้นเสมอ (Ceiling)

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่