การปัดตัวเลขใน Excel มีเทคนิคแบบใดบ้างครับ?

ถ้าจะให้นับจริงๆ ฟังก์ชันที่ใช้ปัดตัวเลขใน Excel มีไม่ต่ำกว่า 10 ฟังก์ชัน

ไล่ตั้งแต่ฟังก์ชันพื้นฐาน เช่น ROUND, ROUNDUP, ROUNDDOWN, CEILING, FLOOR

หรือฟังก์ชันที่เพิ่งเกิดไม่นาน เช่น MROUND, CEILING.MATH, FLOOR.MATH

ไปจนถึงฟังก์ชันที่ใช้คำนวณเคสเฉพาะกิจ เช่น INT, TRUNC, EVEN, ODD

หรือฟังก์ชันที่ปัดตัวเลขแล้วเปลี่ยนฟอร์แมตเป็นตัวอักษร เช่น FIXED, TEXT

และฟังก์ชันอื่นที่อาจนำมาฟีเจอร์ริ่งกัน เช่น MOD, IF

ฟังก์ชันพวกนี้ บางเคสให้ผลลัพธ์เหมือนกัน บางเคสให้ผลลัพธ์ต่างกัน

ถ้าเขียนอธิบายวิธีใช้งานทีละฟังก์ชัน อาจมองไม่ออกว่าแต่ละฟังก์ชันต่างกันยังไง หรือเหมือนกันตรงไหน

เขียนสรุปรวมกันน่าจะดีที่สุด

ฟังก์ชันกลุ่มนี้เป็นฟังก์ชันที่สำคัญ มีรายละเอียดปลีกย่อยน่าสนใจไม่น้อย

มาทำความรู้จักกับพวกเขาแบบถึงกึ๋นกันครับ ^__^

ตามผมมาเลย…. ฟิ้ว

เริ่มจากฟังก์ชัน ROUND 

โครงสร้างของฟังก์ชัน ROUND คือ

=ROUND(number, num_digits)

number กับ num_digits คืออะไร?

number คือ ตัวเลขที่ต้องการปัด เช่น 521, 4.3, 23.56

num_digits คือ ตำแหน่งตัวเลขที่ต้องการปัด

หลักการปัดตัวเลขโดยใช้ฟังก์ชัน ROUND ใช้วิธีประมาณค่าเหมือนที่เราเคยเรียนสมัยประถมเลยครับ ^__^

นั่นคือ ถ้าตัวเลขมีค่าตั้งแต่ 5 ขึ้นไป (5-9) ให้ปัดขึ้น 

และถ้าตัวเลขมีค่าน้อยกว่า 5 (0-4) ให้ปัดลง

แล้วถ้าตัวเลขมีทศนิยมล่ะ จะปัดยังไง?

เป็นคำถามที่ดีมากครับ

ขออธิบายด้วยตัวอย่าง เพื่อให้เห็นภาพและชัดเจนที่สุดครับ

เข้าใจแน่นอน กล้ารับประกันเลย ^__^

ROUND.jpg

จากตัวอย่างด้านบน ตัวเลขที่ต้องการปัดคือ 782.4561 จะเห็นได้ว่า

ถ้า num_digits > 0 คือการปัดตัวเลขที่อยู่ด้านขวาของจุดทศนิยม หรือก็คือการปัดทศนิยมนั่นเอง จำนวนทศนิยมจะถูกปัดให้มีเท่าตัวเลขนั้น

num_digits = 1 ผลลัพธ์ที่ได้จะมีทศนิยม 1 ตำแหน่ง นั่นคือปัดทศนิยมตำแหน่งที่ 2 เพื่อให้ได้ตำแหน่งที่ 1 หรือก็คือปัด 782.45 ให้เป็น 782.5 (ทศนิยมตำแหน่งที่ 1 ถูกปัดขึ้น เพราะทศนิยมตำแหน่งที่ 2 คือ 5)

num_digits = 2 ผลลัพธ์ที่ได้จะมีทศนิยม 2 ตำแหน่ง นั่นคือปัดทศนิยมตำแหน่งที่ 3 เพื่อให้ได้ตำแหน่งที่ 2 หรือก็คือปัด 782.456 ให้เป็น 782.46 (ทศนิยมตำแหน่งที่ 2 ถูกปัดขึ้น เพราะทศนิยมตำแหน่งที่ 3 คือ 6)

num_digits = 3 ผลลัพธ์ที่ได้จะมีทศนิยม 3 ตำแหน่ง นั่นคือปัดทศนิยมตำแหน่งที่ 4 เพื่อให้ได้ตำแหน่งที่ 3 หรือก็คือปัด 782.4561 ให้เป็น 782.456 (ทศนิยมตำแหน่งที่ 3 มีค่าเท่าเดิม เพราะทศนิยมตำแหน่งที่ 4 คือ 1 (ถูกปัดทิ้ง))

ถ้า num_digits = 0 คือการปัดตัวเลขให้เป็นจำนวนเต็ม ผลลัพธ์ที่ได้จะไม่มีทศนิยม (ทศนิยมเป็น 0) นั่นคือปัดทศนิยมตำแหน่งที่ 1 เพื่อให้เป็นจำนวนเต็ม หรือก็คือปัด 782.4 ให้เป็น 782 (ตัวเลขจำนวนเต็มมีค่าเท่าเดิม เพราะทศนิยมตำแหน่งที่ 1 คือ 4 (ถูกปัดทิ้ง))

ถ้า num_digits < 0 คือการปัดตัวเลขที่อยู่ด้านซ้ายของจุดทศนิยม หลักการง่ายๆคือ ให้คิดว่าปัดแล้วจะมีผลกระทบกับตัวเลขตำแหน่งที่ 10 ยกกำลังเท่าใด

10 ยกกำลังเท่าใด งงอ่ะ?

ขออธิบายแบบนี้ครับ

num_digits = -1 ปัดแล้วจะมีผลกระทบกับตัวเลขหลักสิบ (10 ยกกำลัง 1 เท่ากับ 10) นั่นคือปัดตัวเลขหลักหน่วยเพื่อให้ได้ตำแหน่งหลักสิบ หรือก็คือปัด 782 ให้เป็น 780 (ตำแหน่งหลักหน่วยคือ 2 จึงถูกปัดทิ้ง ตำแหน่งที่มีผลกระทบต่อการปัดคือหลักสิบ (8) แต่เคสนี้เป็นการปัดทิ้ง ดังนั้น 8 จึงมีค่าเท่าเดิม)

num_digits = -2 ปัดแล้วจะมีผลกระทบกับตัวเลขหลักร้อย (10 ยกกำลัง 2 เท่ากับ 100) นั่นคือปัดตัวเลขหลักสิบเพื่อให้ได้ตำแหน่งหลักร้อย หรือก็คือปัด 782 ให้เป็น 800 (ตำแหน่งหลักสิบคือ 8 จึงถูกปัดขึ้น ตำแหน่งที่มีผลกระทบต่อการปัดคือหลักร้อย (7) ดังนั้น 7 จึงถูกปัดเป็น 8)

num_digits = -3 ปัดแล้วจะมีผลกระทบกับตัวเลขหลักพัน (10 ยกกำลัง 3 เท่ากับ 1,000) นั่นคือปัดตัวเลขหลักร้อยเพื่อให้ได้ตำแหน่งหลักพัน หรือก็คือปัด 782 ให้เป็น 1000 (ตำแหน่งหลักร้อยคือ 7 จึงถูกปัดขึ้น ตำแหน่งที่มีผลกระทบต่อการปัดคือหลักพัน ดังนั้นจากเดิมที่หลักพันเป็น 0 จึงถูกปัดเป็น 1)

เราอาจใช้หลักการนี้กับ num_digits = 0 ก็ได้เช่นกัน เพราะคือการปัดที่มีผลต่อตัวเลขหลักหน่วย (10 ยกกำลัง 0 เท่ากับ 1 จำกันได้ไหมเอ่ย ^^) นั่นคือปัดทศนิยมตำแหน่งที่ 1 เพื่อให้ได้หลักหน่วย หรือก็คือปัด 782.4 ให้เป็น 782 นั่นเอง

แล้วถ้าใช้กับตัวเลขที่เป็นลบล่ะ?

ขอตอบด้วยตัวอย่างนี้ครับ

ROUND_Negative.jpg

จะเห็นได้ว่า ตัวเลขติดลบก็ใช้หลักการเดียวกันนั่นเอง ^__^

ROUND vs ROUNDUP vs ROUNDDOWN

ฟังก์ชัน ROUND ปัดตัวเลขตามหลักการประมาณค่า (ตั้งแต่ 5 ปัดขึ้น น้อยกว่า 5 ปัดทิ้ง) ในบางครั้งเราอาจต้องการให้ปัดขึ้นทุกกรณี หรือปัดลงทุกกรณีก็ได้

ซึ่งถ้าต้องการให้ปัดขึ้นหรือปัดลงทุกกรณี เราคงใช้ ROUND ไม่ได้ ไม่งั้นปัดแล้วผิดแน่นอน T_T

ไม่ต้องเป็นห่วงครับ เอ็กเซลเค้าคิดเคสพวกนี้ไว้แล้ว จึงเป็นที่มาของฟังก์ชัน ROUNDUP และ ROUNDDOWN

ROUNDUP และ ROUNDDOWN มีโครงสร้างฟังก์ชันเหมือน ROUND ทุกกระเบียดนิ้ว นั่นคือ

=ROUNDUP(number, num_digits)

=ROUNDDOWN(number, num_digits)

ความแตกต่างคือ

ผลลัพธ์ของ ROUNDUP ปัดขึ้นทุกกรณี

ผลลัพธ์ของ ROUNDDOWN ปัดลงทุกกรณี

จากตัวอย่างเดิม ถ้าลองเปรียบเทียบผลลัพธ์ที่ได้จาก ROUND, ROUNDUP และ ROUNDDOWN ผลลัพธ์จะเป็นแบบนี้ครับ

ROUND_ROUNDUP_ROUNDDOWN.jpg

จะเห็นได้ว่า ROUNDUP ปัดขึ้นทุกกรณี โดยไม่สนใจว่าตัวเลขจะน้อยกว่าหรือมากกว่า 5 ส่วน ROUNDDOWN ปัดลงทุกกรณี โดยไม่สนใจว่าตัวเลขจะน้อยกว่าหรือมากกว่า 5 เช่นกัน

ถ้าใช้กับตัวเลขติดลบ ผลลัพธ์ที่ได้ก็เหมือนกันครับ ^__^

ROUND_ROUNDUP_ROUNDDOWN_negative.jpg

MROUND

ถ้าลองสังเกตดีๆ ไม่ว่าจะเป็น ROUND, ROUNDUP หรือ ROUNDDOWN ทุกตัวปัดค่าโดยเสมือนว่าปัดแล้วเป็นตัวเลขที่ 10 หารลงตัวทั้งนั้น (รวมถึงตัวเลขยกกำลังของสิบ เช่น 10 ยกกำลัง 1 (10), 10 ยกกำลัง 2 (100), 10 ยกกำลัง -1 (0.1), 10 ยกกำลัง -2 (0.01))

ถ้าอยากปัดแล้วได้เป็นตัวเลขที่ 5 หารลงตัวล่ะ ทำไงดี?

คำตอบคือฟังก์ชัน MROUND ครับ ^__^

ฟังก์ชัน MROUND เป็นฟังก์ชันมาตรฐานตั้งแต่ Excel 2013 ขึ้นไป

(ถ้าเป็นเวอร์ชันเก่า ต้องเปิดการใช้งานใน Add-Ins Analysis ToolPak (File/ Options/ Add-Ins/ Excel Add-Ins คลิกปุ่ม Go แล้วติ๊กเลือก Analysis ToolPak)

โครงสร้างของฟังก์ชัน MROUND แตกต่างจาก ROUND นิดหน่อย แบบนี้ครับ

=MROUND(number, multiple)

ไม่เห็นต่างกันเลย?

ต่างกันตรงอาร์กิวเมนต์ตัวที่สองครับ ถ้า ROUND จะเป็น num_digits แต่ถ้าเป็น MROUND จะเป็น multiple ก่อนจะอธิบายความต่างตรงนี้ เรามาทำความรู้จักกับ MROUND กันนิดนึงครับ ^__^

number คือ ตัวเลขที่ต้องการปัด เช่น 124, 17.4

multiple คือ ฐานตัวเลขที่ต้องการให้หารลงตัว เช่น 2, 5, 50

ผลลัพธ์จาก MROUND จะได้ตัวเลขที่ฐานตัวเลข (multiple) นั้นหารลงตัว

ถ้าเศษจากการหารมากกว่าครึ่งนึงของฐานตัวเลข ให้ปัดขึ้น

ถ้าเศษจากการหารน้อยกว่าครึ่งนึงของฐานตัวเลข ให้ปัดลง

ถ้าเครื่องหมายของตัวเลข (number) และ ฐานตัวเลข (multiple) ต่างกัน ผลลัพธ์ที่ได้จะเป็น #NUM!

มาดูตัวอย่างการใช้งานเลยดีกว่าครับ เห็นภาพชัดกว่า ^__^

MROUND.jpg

MROUND(17.4, 5) = 15 เพราะ 5*3 = 15 แต่เศษจากการหาร (17.4 – 15 = 2.4) น้อยกว่าครึ่งนึงของฐานตัวเลข (5/2 = 2.5) จึงปัดทิ้งเหลือแค่ 15

MROUND(17.5, 5) = 20 เพราะ 5*3 = 15 แต่เศษจากการหาร (17.5 – 15 = 2.5) เท่ากับครึ่งนึงของฐานตัวเลข (5/2 = 2.5) จึงปัดขึ้นเป็น 20

MROUND(17.6, 5) = 20 เพราะ 5*3 = 15 แต่เศษจากการหาร (17.6 – 15 = 2.6) มากกว่าครึ่งนึงของฐานตัวเลข (5/2 = 2.5) จึงปัดขึ้นเป็น 20

MROUND(124, 50) = 100 เพราะ 50*2 = 100 แต่เศษจากการหาร (124 – 100 = 24) น้อยกว่าครึ่งนึงของฐานตัวเลข (50/2 = 25) จึงปัดทิ้งเหลือแค่ 100

MROUND(125, 50) = 150 เพราะ 50*2 = 100 แต่เศษจากการหาร (125 – 100 = 25) เท่ากับครึ่งนึงของฐานตัวเลข (50/2 = 25) จึงปัดขึ้นเป็น 150

MROUND(126, 50) = 150 เพราะ 50*2 = 100 แต่เศษจากการหาร (126 – 100 = 26) มากกว่าครึ่งนึงของฐานตัวเลข (50/2 = 25) จึงปัดขึ้นเป็น 150

MROUND(-126, 50) = #NUM! เพราะเครื่องหมายของ -126 กับ 50 ไม่ตรงกัน (ถ้าเป็นบวก ต้องเป็นบวกทั้งคู่ หรือถ้าเป็นลบ ต้องเป็นลบทั้งคู่)

แล้วถ้าไม่อยากต้องมานั่งคิดว่า เศษจากการหารน้อยกว่าครึ่งนึงของฐานตัวเลขหรือเปล่า อยากให้ปัดขึ้นหรือปัดลงทุกกรณีเลย ทำไงดี?

ทำได้แน่นอน คำตอบคือฟังก์ชัน CEILING และ FLOOR ครับ ^__^

MROUND vs CEILING vs FLOOR

เรามาทำความรู้จักกับฟังก์ชัน CEILING และ FLOOR กันหน่อยครับ

โครงสร้างของทั้งสองฟังก์ชันเหมือนกันเป๊ะเลย คือ

=CEILING(number, significance)

=FLOOR(number, significance)

number คือ ตัวเลขที่ต้องการปัด เช่น 124, 17.4

significance คือ ฐานตัวเลขที่ต้องการให้หารลงตัว เช่น 2, 5, 50

ผลลัพธ์ที่ได้คล้ายกับ MROUND แต่ CEILING ปัดขึ้นทุกกรณี ส่วน FLOOR ปัดลงทุกกรณี

หรือจะมองว่า CEILING คือร่างแปลงของ ROUNDUP ส่วน FLOOR คือร่างแปลงของ ROUNDDOWN ก็พอกล้อมแกล้มได้

ความต่างอยู่ที่ฐานตัวเลข (significance) ของ CEILING กับ FLOOR เป็นค่าใดๆก็ได้ ส่วน ROUNDUP, ROUNDDOWN ต้องเป็นตัวเลขยกกำลังของ 10

ข้อควรระวังของ CEILING และ FLOOR คือ

  • ถ้าตัวเลข (number) เป็นลบ และฐานตัวเลข (significance) เป็นบวก ผลลัพธ์จาก CEILING คือค่าที่อยู่ใกล้ศูนย์มากกว่า ผลลัพธ์ของ FLOOR คือค่าที่อยู่ไกลศูนย์มากกว่า
  • ถ้าตัวเลข (number) เป็นลบ และฐานตัวเลข (significance) เป็นลบ ผลลัพธ์จาก FLOOR คือค่าที่อยู่ใกล้ศูนย์มากกว่า ผลลัพธ์ของ CEILING คือค่าที่อยู่ไกลศูนย์มากกว่า
  • ถ้าตัวเลข (number) เป็นบวก และฐานตัวเลข (significance) เป็นลบ จะไม่สามารถหาค่าได้ทั้ง CEILING และ FLOOR

เพื่อให้เห็นภาพชัดเจน เรามาดูตัวอย่างกันดีกว่าครับ

CEILING_FLOOR.jpg

ถ้าตัวเลข (number) เป็นบวก อันนี้ชัดเจน ยิ่งเปรียบเทียบกับผลลัพธ์จาก MROUND ยิ่งเข้าใจมากขึ้นใช่ไหมครับ ^__^

แต่ถ้าตัวเลข (number) เป็นลบ มันจะรู้สึกงงๆใช่ไหมครับ ผมเองก็งงครับ T_T

CEILING vs CEILING.MATH

ด้วยความที่ว่า ถ้าตัวเลข (number) และฐานตัวเลข (significance) มีเครื่องหมายไม่ตรงกัน ผลลัพธ์ที่ได้จาก CEILING (และ FLOOR) อาจเป็นทั้งค่าที่อยู่ใกล้ศูนย์ หรือค่าที่อยู่ไกลศูนย์ การนำไปใช้งานจริงจึงเกิดความสับสน (มาก)

ตั้งแต่ Excel 2013 เป็นต้นไป มีฟังก์ชันใหม่เพื่อป้องกันปัญหานี้ (ไชโย !) นั่นคือ

CEILING.MATH

โครงสร้างของ CEILING.MATH คือ

=CEILING.MATH(number, [significance], [mode])

number คือ ตัวเลขที่ต้องการปัด เช่น 124, 17.4

[significance] คือ ฐานตัวเลขที่ต้องการให้หารลงตัว (แล้วปัดขึ้น) เช่น 2, 5, 50

ข้อสังเกตคือ [significance] มีวงเล็บก้ามปูครอบ ( [ ] )

ความหมายของวงเล็บก้ามปูคือ อาร์กิวเมนต์นี้จะใส่หรือไม่ใส่ก็ได้ ถ้าไม่ใส่ เอ็กเซลจะคิดว่า significance มีค่าเป็น 1

[mode] คือ ทิศทางในการปัดตัวเลข (ขอใช้คำว่า “ทิศทาง” นะครับ เพราะเข้าใจง่ายกว่า “โหมด”)

[mode] มีวงเล็บก้ามปู (เหมือน [significance]) แปลว่า อาร์กิวเมนต์นี้จะใส่หรือไม่ใส่ก็ได้ ถ้าไม่ใส่ เอ็กเซลจะคิดว่า mode มีค่าเป็น 0

ถ้า mode มีค่าเป็น 0 (หรือไม่ใส่) ผลลัพธ์ทีได้จาก CEILING.MATH จะเหมือนกับ CEILING เป๊ะ!

ถ้า mode มีค่าเป็น -1 (หรือ 1 ก็ได้) และ number มีค่าเป็นลบ ผลลัพธ์ทีได้ของ CEILING.MATH จะปัดแบบปกติ นั่นคือ ยึดตัวเลขเป็นหลัก ถ้าติดลบก็ติดลบเพิ่มขึ้น ไม่สนใจว่าเครื่องหมายของตัวเลข (number) และฐานตัวเลข (significance) ตรงกันหรือไม่ (คล้ายกับ ROUNDUP)

เพื่อให้เห็นภาพชัดเจนขึ้น ลองมาดูตัวอย่างกันดีกว่าครับ ^__^

CEILING.MATH

จะเห็นได้ว่า ถ้าตัวเลข (number) เป็นบวก ผลลัพธ์จาก CEILING และ CEILING.MATH เหมือนกันเป๊ะ

ถ้าตัวเลข (number) เป็นลบ ฐานตัวเลข (significance) เป็นบวก ผลลัพธ์จาก CEILING จะได้ -15 (เพราะ -15 มีค่ามากกว่า -20) ซึ่งตัวเลขนี้อาจค้านกับความรู้สึกของเรา T_T

แต่ผลลัพธ์จาก CEILING.MATH ที่กำหนดทิศทาง (mode) ให้เป็น -1 จะได้ -20 ตัวเลขนี้จะตรงกับความรู้สึกของเรามากกว่า ^__^

ถ้าตัวเลข (number, 17.4) เป็นบวก และฐานตัวเลข (significance, -5) เป็นลบ จะหาผลลัพธ์จาก CEILING ไม่ได้ แต่สามารถหาผลลัพธ์ได้จาก CEILING.MATH และได้ผลลัพธ์เป็น 20

แม้ CEILING.MATH ดูเหมือนใช้ยากกว่า CEILING แต่ผลลัพธ์เข้าใจง่ายกว่า จริงไหมครับ ^__^

FLOOR vs FLOOR.MATH

เฉกเช่นเดียวกับ CEILING ถ้าตัวเลข (number) และฐานตัวเลข (significance) มีเครื่องหมายไม่ตรงกัน ตัวเลขที่ได้จาก FLOOR อาจเป็นทั้งค่าที่อยู่ใกล้ศูนย์ หรือค่าที่อยู่ไกลศูนย์ การนำไปใช้จริงจึงเกิดความสับสน (มาก)

ตั้งแต่ Excel 2013 เป็นต้นไป มีฟังก์ชันใหม่เพื่อป้องกันปัญหานี้ นั่นคือ

FLOOR.MATH

โครงสร้างของ FLOOR.MATH เหมือน CEILING.MATH เป๊ะ นั่นคือ

=FLOOR.MATH(number, [significance], [mode])

มาดูตัวอย่างกันเลยดีกว่าครับ ^__^

FLOOR.MATH.jpg

จะเห็นได้ว่า ถ้าตัวเลข (number) เป็นบวก ผลลัพธ์จาก FLOOR และ FLOOR.MATH เหมือนกันเป๊ะ

ถ้าตัวเลข (number) เป็นลบ ฐานตัวเลข (significance) เป็นบวก ผลลัพธ์จาก FLOOR จะได้ -20 (เพราะ -20 มีค่าน้อยกว่า -15) ซึ่งตัวเลขนี้อาจค้านกับความรู้สึกของเรา T_T

แต่ผลลัพธ์จาก FLOOR.MATH ที่กำหนดทิศทาง (mode) ให้เป็น -1 จะได้ -15 ตัวเลขนี้จะตรงกับความรู้สึกของเรามากกว่า ^__^

ถ้าตัวเลข (number, 17.6) เป็นบวก และฐานตัวเลข (significance, -5) เป็นลบ จะหาผลลัพธ์จาก FLOOR ไม่ได้ แต่สามารถหาผลลัพธ์ได้จาก FLOOR.MATH และได้ผลลัพธ์เป็น 15

แม้ FLOOR.MATH ดูเหมือนใช้ยากกว่า FLOOR แต่ผลลัพธ์เข้าใจง่ายกว่า จริงไหมครับ ^__^

num_digits ไม่เหมือน multiple และ significance

ตอนอธิบายฟังก์ชัน MROUND ผมแอบทิ้งคำถามไว้ว่า num_digits ของ ROUND และ multiple ของ MROUND ไม่เหมือนกัน จำได้ไหมครับ ^^

อันที่จริงแล้ว significance ของ CEILING และ FLOOR ก็ไม่เหมือน num_digits เช่นกัน

จุดต่างที่เห็นได้ชัดคือ num_digits ต้องเป็นตัวเลขอย่างเดียว

แต่ multiple และ significance นอกจากเป็นตัวเลขได้แล้ว ยังเป็นตัวอักษร (Text) ที่หน้าตาเหมือนเวลาได้อีกด้วย

ซึ่งถ้าใช้ในลักษณะนี้ อาจใช้ปัดข้อมูลที่เป็นเวลา โดยปัดให้เป็นเวลาที่หารด้วย 15 นาทีลงตัว

ฮ้า!

เทคนิคง่ายมาก เพียงแค่ปรับ significance (หรือ multiple) ให้เป็นตัวอักษรที่หน้าตาเหมือนเวลา นั่นก็คือ  “0:15” 

ถ้าจะปัดเป็นเวลาที่หารด้วย 30 นาทีลงตัว เพียงแค่ปรับ significance (หรือ multiple) ให้เป็น “0:30” 

มาอธิบายด้วยตัวอย่างกันดีกว่าครับ ^__^

significance_multiple.jpg

ฮัดช่า!

อ้อ ! สำหรับเคสนี้ ถ้าพิมพ์ significance (หรือ multiple) ไว้คนละเซลล์ และลิงค์ค่ากลับมาในสูตร (เช่นตัวอย่างด้านบน) ต้องใส่เครื่องหมาย ‘ (apostrophe) นำหน้าด้วย เช่น ‘0:15, ‘0:30 (ทำให้เป็นข้อความ (Text))

แต่ถ้าพิมพ์ตรงๆในสูตร ต้องพิมพ์เป็น “0:15” เช่น =CEILING(A2,”0:15″)

เจ๋งเป้งไปเลยป่ะล่ะ !!

อ่านถึงตรงนี้แล้ว เป็นยังไงกันมั่งครับ ^__^

บทความนี้พูดถึง 8 ฟังก์ชัน อันได้แก่

  1. ROUND
  2. ROUNDUP
  3. ROUNDDOWN
  4. MROUND
  5. CEILING
  6. FLOOR
  7. CEILING.MATH
  8. FLOOR.MATH

ถ้าแบ่งกลุ่มตามการใช้งาน อาจแบ่งได้กว้างๆ 3 กลุ่ม

  1. กลุ่มปัดตามหลักเกณฑ์ คือ ROUND, MROUND
    • ROUND ปัดตามหลักการประมาณค่า นั่นคือ ตั้งแต่ 5 (5-9) ปัดขึ้น น้อยกว่า 5 (0-4) ปัดทิ้ง
    • MROUND ปัดตัวเลข (number) ให้เป็นตัวเลขที่ฐานตัวเลข (multiple) หารลงตัว ถ้าเศษจากการหารมีค่าตั้งแต่ครึ่งหนึ่งของฐานตัวเลข ให้ปัดขึ้น ในทางตรงข้าม ถ้าเศษจากการหารมีค่าน้อยกว่าครึ่งหนึ่งของฐานตัวเลข ให้ปัดลง
  2. กลุ่มปัดขึ้น คือ ROUNDUP, CEILING, CEILING.MATH
    • ROUNDUP ปัดขึ้นทุกกรณี ค่าบวกค่าลบใช้หลักการเดียวกัน
    • CEILING ปัดตัวเลข (number) ให้เป็นตัวเลขที่ฐานตัวเลข (significance) หารลงตัว ถ้ามีเศษจากการหารให้ปัดขึ้น
    • ปัญหาของ CEILING คือ ถ้าตัวเลข (number) ติดลบ หรือเครื่องหมายของตัวเลข และฐานตัวเลขไม่ตรงกัน ผลลัพธ์เป็นได้ทั้งมีค่าลดลงและมีค่ามากขึ้น (ไม่เหมือน ROUNDUP) ก่อให้เกิดความสับสน T_T
    • ถ้าต้องการให้ผลลัพธ์จากการปัดเป็นในทิศทางเดียวกันทั้งตัวเลขบวกและลบ ให้ใช้ CEILING.MATH และระบุทิศทาง (mode) เป็น -1 (หรือ 1)
  3. กลุ่มปัดลง คือ ROUNDDOWN, FLOOR, FLOOR.MATH
    • ROUNDDOWN ปัดลงทุกกรณี ค่าบวกค่าลบใช้หลักการเดียวกัน
    • FLOOR ปัดตัวเลข (number) ให้เป็นตัวเลขที่ฐานตัวเลข (significance) หารลงตัว ถ้ามีเศษจากการหารให้ปัดลง
    • ปัญหาของ FLOOR คือ ถ้าตัวเลข (number) ติดลบ หรือเครื่องหมายของตัวเลข และฐานตัวเลขไม่ตรงกัน ผลลัพธ์เป็นได้ทั้งมีค่าลดลงและมีค่ามากขึ้น (ไม่เหมือน ROUNDDOWN) ก่อให้เกิดความสับสน T_T
    • ถ้าต้องการให้ผลลัพธ์จากการปัดเป็นในทิศทางเดียวกันทั้งตัวเลขบวกและลบ ให้ใช้ ROUND.MATH และระบุทิศทาง (mode) เป็น -1 (หรือ 1)

ถ้าต้องการปัดตัวเลขที่อยู่ในรูปแบบของเวลา (เช่น 06:43, 11:48) ทำได้ง่ายมาก ใช้เทคนิคเปลี่ยนฐานตัวเลข (significance, multiple) ให้เป็นข้อความที่หน้าตาเหมือนเวลา แล้วเข้าสูตรตามปกติ เช่น

  • MROUND(A2, “0:15”)
  • CEILING(A2, “0:05”)
  • FLOOR(A2, “0:30”)

ฟังก์ชันปัดตัวเลขยังไม่จบนะครับ แต่บทความนี้ยาวว…ว มากแล้ว ขอยกยอดไปไว้ภาค 2 ครับ ^__^

ไฟล์ตัวอย่างทั้งหมดของบทความนี้ ถ้าสนใจ ดาวน์โหลดได้จากลิงค์นี้ครับ ^__^

ROUNDSeries_170911

หากคุณชอบบทความแนวนี้ สามารถอัพเดตบทความใหม่ๆโดยคลิก Like เฟสบุ๊คแฟนเพจ วิศวกรรีพอร์ต หรือคลิก ที่นี่

อย่าลืมแชร์ให้เพื่อนอ่านเพื่อเป็นกำลังใจให้คนเขียนด้วยนะครับ ^__^

Credits:

https://support.office.com/en-us/article/MROUND-function-c299c3b0-15a5-426d-aa4b-d2d5b3baf427

https://support.office.com/en-us/article/CEILING-function-0a5cd7c8-0720-4f0a-bd2c-c943e510899f

https://support.office.com/en-us/article/CEILING-MATH-function-80F95D2F-B499-4EEE-9F16-F795A8E306C8

https://exceljet.net/formula/round-time-to-nearest-15-minutes

.