IIF (ไม่มี นิพจน์ผิด)แต่ รายงานไม่ตรงตามเงื่อนไข

หากท่านใดมีข้อสงสัยหรือคำถามเกี่ยวกับการใช้งานโปรแกรม Express สามารถเข้ามาสอบถามได้ที่นี่ครับ

Moderator: Sutas, CO-Admin, Global Moderator

IIF (ไม่มี นิพจน์ผิด)แต่ รายงานไม่ตรงตามเงื่อนไข

โพสต์โดย accom » พุธ ก.ย. 05, 2018 8:54 am

ขอความช่วยเหลือ ตรวจคำสั่ง IIF เงื่อนไข DF > 120 .and. DF < 135 รายงานไม่ตรง (สีแดง) หรือว่า คำสั่งยาวเกินไปค่ะ
มีวิธีเขียนสั้นกว่านี้ไหมค่ะ


comm=IIF(ARTRNX->DEPCOD='SANT'.OR.ARTRNX->DEPCOD='SNSE'.OR.ARTRNX->DEPCOD='STNE'.OR.ARTRNX->DEPCOD='BOX'.AND.DF<121,COM1*2/100,IIF(ARTRNX->DEPCOD='PIL'.AND.DF<121,COM1*1.5/100,IIF(ARTRNX->DEPCOD='SNSP'.OR.ARTRNX->DEPCOD='STNP'.OR.ARTRNX->DEPCOD='STPM'.OR.ARTRNX->DEPCOD='LADY'.AND.DF<120,COM1*4/100,IIF(ARTRNX->DEPCOD='SANT'.OR.ARTRNX->DEPCOD='SNSE'.OR.ARTRNX->DEPCOD='STNE'.OR.ARTRNX->DEPCOD='BOX'.AND.DF >120.AND.DF<135,COM1*1/100,IIF(ARTRNX->DEPCOD='PIL'.AND.DF>120.AND.DF<135,COM1*0.75/100,IIF(ARTRNX->DEPCOD='SNSP'.OR.ARTRNX->DEPCOD='STNP'.OR.ARTRNX->DEPCOD='STPM'.OR.ARTRNX->DEPCOD='LADY'.AND.DF>120.AND.DF<135,COM1*2/100,0))))))

[url][url=https://uppic.cc/v/HHb]รูปภาพ[/url] [/url]
accom
Jr. Member
Jr. Member
 
โพสต์: 68
ลงทะเบียนเมื่อ: ศุกร์ ธ.ค. 16, 2016 7:26 pm

Re: IIF (ไม่มี นิพจน์ผิด)แต่ รายงานไม่ตรงตามเงื่อนไข

โพสต์โดย savek » ศุกร์ ก.ย. 07, 2018 9:55 am

อาจจะเกี่ยวกับเรื่องความยาวครับ ลองใช้วิธีนี้นะครับ

DPC=ARTRNX->DEPCOD; comm=IIF(DPC='SANT'.OR.DPC='SNSE' ....

คือย่อฟิลด์ข้อมูล ARTRNX->DEPCOD ให้เหลือแค่คำว่า DPC ครับ
ภาพประจำตัวสมาชิก
savek
Administrator
Administrator
 
โพสต์: 12467
ลงทะเบียนเมื่อ: พฤหัสฯ. พ.ย. 15, 2007 11:04 am

Re: IIF (ไม่มี นิพจน์ผิด)แต่ รายงานไม่ตรงตามเงื่อนไข

โพสต์โดย กฤตเมธ » เสาร์ ก.ย. 08, 2018 10:55 pm

ข้อความที่ใช้ .or. ต้องมีวงเล็บปิดหัวและท้าย
ฉะนั้นคำสั่้งที่ถูกต้องจะเป็นดังนี้

comm=IIF((ARTRNX->DEPCOD='SANT'.OR.ARTRNX->DEPCOD='SNSE'.OR.ARTRNX->DEPCOD='STNE'.OR.ARTRNX->DEPCOD='BOX').AND.DF<121,COM1*2/100,IIF(ARTRNX->DEPCOD='PIL'.AND.DF<121,COM1*1.5/100,IIF((ARTRNX->DEPCOD='SNSP'.OR.ARTRNX->DEPCOD='STNP'.OR.ARTRNX->DEPCOD='STPM'.OR.ARTRNX->DEPCOD='LADY').AND.DF<120,COM1*4/100,IIF((ARTRNX->DEPCOD='SANT'.OR.ARTRNX->DEPCOD='SNSE'.OR.ARTRNX->DEPCOD='STNE'.OR.ARTRNX->DEPCOD='BOX').AND.DF >120.AND.DF<135,COM1*1/100,IIF(ARTRNX->DEPCOD='PIL'.AND.DF>120.AND.DF<135,COM1*0.75/100,IIF((ARTRNX->DEPCOD='SNSP'.OR.ARTRNX->DEPCOD='STNP'.OR.ARTRNX->DEPCOD='STPM'.OR.ARTRNX->DEPCOD='LADY').AND.DF>120.AND.DF<135,COM1*2/100,0))))))

ตามเงื่อนไข ถ้า df = 120 จะได้ค่า 0
เพราะเงื่อนไขมี แต่ < 120 และ > 120 แต่น้อยกว่า 135
จริงๆ ถ้าเงื่อนไขแรก < 120 อีกตัวต้องเป็น >= 120 แต่น้อยกว่า 135
หรือ ถ้าเงื่อนไขแรก <= 120 อีกตัวต้องเป็น > 120 แต่น้อยกว่า 135

เพราะ < 120 คือ 199.9999999 ลงมา
> 120 คือ 120.000000001 ขึ้นไป
กฤตเมธ
Newbie
Newbie
 
โพสต์: 10
ลงทะเบียนเมื่อ: พุธ มี.ค. 28, 2018 6:53 pm

Re: IIF (ไม่มี นิพจน์ผิด)แต่ รายงานไม่ตรงตามเงื่อนไข

โพสต์โดย accom » อาทิตย์ ก.ย. 16, 2018 6:12 pm

แก้ไข ตามที่แจ้งมาน่ะค่ะ

ข้อความที่ใช้ .or. ต้องมีวงเล็บปิดหัวและท้าย

ขอบคุณมากค่ะ
accom
Jr. Member
Jr. Member
 
โพสต์: 68
ลงทะเบียนเมื่อ: ศุกร์ ธ.ค. 16, 2016 7:26 pm


ย้อนกลับไปยัง ถาม-ตอบปัญหาเกี่ยวกับโปรแกรม Express

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: Google [Bot] และ บุคคลทั่วไป 34 ท่าน