Page 1 of 1
ต้องการปัดเลขทีละ 50
Posted: Thu Dec 29, 2016 11:02 am
by onemai
สวัสดีค่ะ
ดิฉันต้องการปัดเลขทีละ 50 โดยค่าหลักสิบที่น้อยกว่า 25 ปัดลดลง และค่าหลักสิบที่มีค่าตั้งแต่ 25 ขึ้นไป ปัดเพิ่มขึ้น ยกตัวอย่างเช่น
ค่าตั้งแต่ 400-424 ปัดเป็น 400
ค่าตั้งแต่ 425-450 ปัดเป็น 450
ค่าตั้งแต่ 451-474 ปัดเป็น 450
ค่าตั้งแต่ 475-500 ปัดเป็น 500
ดังนั้น
415 ปัดเป็น 400
430 ปัดเป็น 450
485 ปัดเป็น 500
รบกวนกูรูแนะนำด้วยค่ะ ขอบคุณมากค่ะ
Re: ต้องการปัดเลขทีละ 50
Posted: Thu Dec 29, 2016 2:02 pm
by menem
ถ้าค่าอยู่ที่ A1 สูตรจะเป็น
=IF(A1-ROUND(A1,-2)<=24,0,IF(A1-ROUND(A1,-2)<=74,50,100))+ROUND(A1,-2)
หมายเหตุ : ปัดค่าแค่ 3 ช่วงใช่ไหมครับ
0-24
25-74
75-99
Re: ต้องการปัดเลขทีละ 50
Posted: Thu Dec 29, 2016 2:21 pm
by parakorn
อีกวิธีครับ

เผอิญผมใช้ ROUND ไม่เป็น
=IF(RIGHT(A1,2)>="75",A1-(RIGHT(A1,2))+100,IF(RIGHT(A1,2)>="51",A1-(RIGHT(A1,2))+50,IF(RIGHT(A1,2)>="25",A1-(RIGHT(A1,2))+50,A1-(RIGHT(A1,2)))))
Re: ต้องการปัดเลขทีละ 50
Posted: Thu Dec 29, 2016 3:14 pm
by DhitiBank
แถมครับ
สมมติค่าอยู่ที่ A1 เซลล์ใดๆ คีย์
=LOOKUP(MOD(A1,100),{0,25,75},{0,50,100})+ROUNDDOWN(A1,-2)
Re: ต้องการปัดเลขทีละ 50
Posted: Thu Dec 29, 2016 8:32 pm
by onemai
menem wrote:ถ้าค่าอยู่ที่ A1 สูตรจะเป็น
=IF(A1-ROUND(A1,-2)<=24,0,IF(A1-ROUND(A1,-2)<=74,50,100))+ROUND(A1,-2)
หมายเหตุ : ปัดค่าแค่ 3 ช่วงใช่ไหมครับ
0-24
25-74
75-99
ทดลองแล้วเกือบได้แล้วค่ะ ติดตรงช่วง 451-474 อยากให้ปัดเป็น 450 แต่ตามสูตรที่ให้มานี้ปัดขึ้นไปเป็น 500 ค่ะ ขอบคุณมากค่ะ เดี๋ยวจะลองไปประยุกต์ใช้ดูค่ะ

Re: ต้องการปัดเลขทีละ 50
Posted: Thu Dec 29, 2016 8:36 pm
by onemai
parakorn wrote:อีกวิธีครับ

เผอิญผมใช้ ROUND ไม่เป็น
=IF(RIGHT(A1,2)>="75",A1-(RIGHT(A1,2))+100,IF(RIGHT(A1,2)>="51",A1-(RIGHT(A1,2))+50,IF(RIGHT(A1,2)>="25",A1-(RIGHT(A1,2))+50,A1-(RIGHT(A1,2)))))
ขอบคุณมากค่ะ

สูตรนี้ใช้ได้ตรงความต้องการเลยค่ะ ดิฉันก็คิดได้ออกมาแล้วเช่นกัน แต่สูตรยาวทีเดียว คือ
=IF(MOD(A1,100)>=75,ROUNDUP(A1,-2),IF(MOD(A1,100)>=50,ROUNDDOWN(A1,-2)+50,IF(MOD(A1,100)>=25,ROUNDUP(A1,-2)-50,ROUNDDOWN(A1,-2))))
Re: ต้องการปัดเลขทีละ 50
Posted: Thu Dec 29, 2016 8:37 pm
by onemai
DhitiBank wrote:แถมครับ
สมมติค่าอยู่ที่ A1 เซลล์ใดๆ คีย์
=LOOKUP(MOD(A1,100),{0,25,75},{0,50,100})+ROUNDDOWN(A1,-2)
ขอบคุณมากค่ะ สูตรนี้สั้นกระทัดรัดดี และใช้ได้ตรงความต้องการค่ะ

ส่วนที่ดิฉันคิดได้มาแล้วนั้นยาวกว่าของคุณเสียอีก คือ
=IF(MOD(A1,100)>=75,ROUNDUP(A1,-2),IF(MOD(A1,100)>=50,ROUNDDOWN(A1,-2)+50,IF(MOD(A1,100)>=25,ROUNDUP(A1,-2)-50,ROUNDDOWN(A1,-2))))
Re: ต้องการปัดเลขทีละ 50
Posted: Tue Jan 03, 2017 10:04 am
by logic
ปัดเศษทีละ 50
=round(a1/50,0)*50
=mround(a1,50)
อาจารย์เขียนบทความไว้ที่นี่ครับ
wordpress/round-to-specific-value/