Page 2 of 2

Re: คำนวณหลายเงื่อนไข

Posted: Tue Mar 29, 2011 11:08 pm
by joo
1. เซลล์ I5 คีย์สูตรเพื่อการปัดหรือไม่ปัดตามเงื่อนไข

=IF($D5=MAX(IF($B5= บัญชีเงินเดือน!$B$5:$B$26,IF($C5=บัญชีเงินเดือน!$C$5:$C$26,บัญชีเงิน เดือน!$E$5:$E$26))), ROUNDUP($H5*I$4,-1),$H5*I$4)

Ctrl+Shift+Enter > Copy ไปทางขวาและลงด้านล่าง
ทดลองแล้วใช้ได้แต่เงื่อนไขกลับกันอยู่ผมจึงปรับใหม่และให้ตรวจสอบที่ D5 ด้วยถ้าเป็นค่าว่างหรืออยู่นอกเรนจ์ก็ให้แสดงค่าว่างแบบนี้ครับ
I5=IF(ISNA(MATCH(1,IF($B5=บัญชีเงินเดือน!$B$5:$B$26,IF($C5=บัญชีเงินเดือน!$C$5:$C$26,IF($D5>=บัญชีเงินเดือน!$D$5:$D$26,IF($D5<=บัญชีเงินเดือน!$E$5:$E$26,1)))))),"",IF($D5=MAX(IF($B5=บัญชีเงินเดือน!$B$5:$B$26,IF($C5=บัญชีเงินเดือน!$C$5:$C$26,บัญชีเงินเดือน!$E$5:$E$26))),$H5*I$4,ROUNDUP($H5*I$4,-1)))
Ctrl+Shift+Ente
2. เซลล์ W5 คีย์สูตรเพื่อหาค่า Max ของแต่ละบรรทัดตามเงื่อนไข

=MAX(IF($B5=บัญชีเงินเดือน!$B$5:$B$26,IF($C5=บัญชีเงินเดือน!$C$5:$C$26,บัญชีเงินเดือน!$E$5:$E$26)))

Ctrl+Shift+Enter > Copy ลงด้านล่าง
ทดลองแล้วค่าที่ D6 ไม่ยอมเปลี่ยนสีตามเงื่อนไขผมจึงปรับเงื่อนไขใหม่เป็น
=D6=$W6
จากนั้นก็Copy จากD6 ลงด้านล่าง ก็OK ครับ
3. เซลล์ J19 คีย์สูตรเพื่อแสดงเต็มขั้นหรือว่างเมื่อเข้าเงื่อนไข

=IF($D5=MAX(IF(บัญชีเงินเดือน!$B$5:$B$26=$B5,IF(บัญชีเงินเดือน!$C$5:$C$26=$C5,บัญชีเงินเดือน!$E$5:$E$26))),"เต็มขั้น","")

Ctrl+Shift+Enter
ทดลองแล้วใช้งานได้ดีครับ...ขอบคุณครับสำหรับคำแนะนำ :D

Re: คำนวณหลายเงื่อนไข

Posted: Wed Mar 30, 2011 6:38 am
by joo
- ที่ D5 สามารถใส่เงื่อนไขการหาค่า Max ลงไปในเซลล์เลยได้ไหมครับโดยไม่ต้องไปลิงค์จากเซลล์ W5 :)
- ที่ F5 ของซีท"เงินเดือนใหม่"จะต้องปรับสูตรอย่างไรเพื่อปัดเศษและไม่ปัดเศษเหมือนกับเงื่อนไขเดียวกันที่ I5 ของซีท"เงินเดือน" ครับ
F5=IF(OR(ISNA(MATCH(E5/100,บัญชีเงินเดือน!$I$4:$U$4,0)),E5=""),"",ROUNDUP(E5*INDEX(บัญชีเงินเดือน!$G$5:$G$26,MATCH(1,IF($B5=บัญชีเงินเดือน!$B$5:$B$26,IF($C5=บัญชีเงินเดือน!$C$5:$C$26,IF($D5>=บัญชีเงินเดือน!$D$5:$D$26,IF($D5<=บัญชีเงินเดือน!$E$5:$E$26,1)))),0))/100,-1))

Re: คำนวณหลายเงื่อนไข

Posted: Wed Mar 30, 2011 1:21 pm
by snasui
สำหรับข้อแรก การ Conditional Formatting ด้วยเงื่อนไขหลายเงื่อนไขด้วย Array Formula ไม่สามารถทำได้โดยไม่เขียนค่าตามเงื่อนไขออกมาก่อนครับ

ส่วนข้อถัดมาต้องใช้สูตรหากจะเขียนในเซลล์เดียวต้องซ้อน IF กันเกินกว่า 7 ชั้นจึงไม่สามารถทำงานได้ใน Version2003 ครับ ควรจะนำค่า Max ออกมาแสดงอีกหนึ่งคอลัมน์แล้วค่อยเปรียบเทียบกันดังเช่นชีทเงินเดือน 1 ครับ ดูตัวอย่างตามไฟล์แนบครับ

Re: คำนวณหลายเงื่อนไข

Posted: Thu Mar 31, 2011 8:08 pm
by joo
ทดลองดูพบว่าสูตรที่ F5 ผิดอยู่ครับทำให้ค่าที่คำนวณออกมาไม่ตรง ผมจึงปรับใหม่เป็น
F5=IF(I5=D5,J5*E5%,ROUNDUP(J5*E5%,-1)) :D

Re: คำนวณหลายเงื่อนไข

Posted: Thu Mar 31, 2011 8:13 pm
by snasui
:D ขอบคุณที่ปรับแก้แล้วแจ้งทุกครั้ง จะเป็นประโยชน์กับท่านอื่น ๆ ให้ได้คำตอบที่ถูกต้องไปด้วยครับ