รบกวนอาจาร์ย และเพื่อนๆ เรื่อง Sum ใน IIF ครับ
กระทู้เก่าบอร์ด อ.Yeadram

 1,933   4
URL.หัวข้อ / URL
รบกวนอาจาร์ย และเพื่อนๆ เรื่อง Sum ใน IIF ครับ

ตอนนี้ผมมีปัญหาว่า เวลาใช้ Sum ในเงื่อนไข IIF มันจะขึ้น Error แต่ถ้าไม่ใส่ Sum เข้าไปก็ใช้งานได้ปกติ แต่ถ้าผมใช้ Sum แค่ 4 เงื่อนไข มันก็ไม่ Error นะครับ เลยไม่แน่ใจว่า Sum ใน IIF มันรองรับแค่ 4 เงื่อนไขเหรอครับ งงมากๆ

ถ้าผมใช้ Sum ด้านล่าง และมี 5 เงือนไข ขึ้น Error ครับ
=Sum(IIf([PIDTxtUnit]="USD / 1,000 PC",[PIDQty]*[PIDQtyPerUnit]/1000*[PIDUnitPrice],IIf([PIDTxtUnit]="USD / 1 KG.",[PIDQty]*[KiloPerUnit]*[PIDUnitPrice],IIf([PIDTxtUnit]="USD / 1 PACK",[PIDQty]*[PackPerUnit]*[PIDUnitPrice],IIf([PIDTxtUnit]="USD / 1 BOX",[PIDQty]*[BoxesPerUnit]*[PIDUnitPrice],IIf([PIDTxtUnit]="USD / 1 CTN.",[PIDQty]*[PIDUnitPrice]))))))

ถ้าผมใช้ Sum ด้านล่าง 4 เงื่อนไข แสดงผลครับ ไม่มี error
=Sum(IIf([PIDTxtUnit]="USD / 1,000 PC",[PIDQty]*[PIDQtyPerUnit]/1000*[PIDUnitPrice],IIf([PIDTxtUnit]="USD / 1 KG.",[PIDQty]*[KiloPerUnit]*[PIDUnitPrice],IIf([PIDTxtUnit]="USD / 1 PACK",[PIDQty]*[PackPerUnit]*[PIDUnitPrice],IIf([PIDTxtUnit]="USD / 1 BOX",[PIDQty]*[BoxesPerUnit]*[PIDUnitPrice])))))

ถ้าไม่ใส่ Sum ก็ไม่มีปัญหาครับ 5 เงื่อนไข ก็แสดงผลครับ
=IIf([PIDTxtUnit]="USD / 1,000 PC",[PIDQty]*[PIDQtyPerUnit]/1000*[PIDUnitPrice],IIf([PIDTxtUnit]="USD / 1 KG.",[PIDQty]*[KiloPerUnit]*[PIDUnitPrice],IIf([PIDTxtUnit]="USD / 1 PACK",[PIDQty]*[PackPerUnit]*[PIDUnitPrice],IIf([PIDTxtUnit]="USD / 1 BOX",[PIDQty]*[BoxesPerUnit]*[PIDUnitPrice],IIf([PIDTxtUnit]="USD / 1 CTN.",[PIDQty]*[PIDUnitPrice])))))

ผมจะทำยังได้บ้างครับ เพื่อที่จะหาผลรวม 5 เงื่อนไข รองใช้ Switch แล้วก็ไม่ได้

รบกวนท่านอาจาร์ย และผู้รู้และเชี่ยวชาญชี้แนะด้วยครับ

ขอบคุณครับ

4 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R08184
ท่านใดทราบช่วยบอกวิธีด้วยนะครับ เหลือตัวนี้อันเดียว ปิดโปรเจคไม่ได้สักที

ขอบคุณครับ
2 @R08186
รายละเอียดบอกน้อยไปครับ...
-ทำในไหนครับ report หรือเปล่า
-ติดที่ประเด็นไหนกันแน่ การเขียน iif ซ้อนหลายชั้น หรือ การเขียน Sum กันแน่

>ซ้อน iif หลายชั้นได้โดยการไปพักไว้ที่ control(หรือ textbox ได้ก่อนครับ)
>การ sum ซ้อนกะ if บางครั้งโปรแกรมมันงงหนะครับ มันเลยไม่คืนค่าให้ จะมาเขียนบอกมันกว้างๆง่ายๆไม่ได้หนะครับ
>ถ้าไม่ใส่ sum แล้วออกจะใส่ sum ทำไมหละครับ... นั่นแสดงว่า iif ไม่ใช่ปัญหาหรือเปล่า
>จริงๆวิธีแก้ปัญหาหนะมันมีหนะครับ แต่อยากที่บอก รายละเอียดมันไม่ชัดเจน การตอบไปเป็นการตอบแบบเดาเอาจากประสบการ์ณ อาจทำให้ได้คำตอบที่ไม่ถูกต้องหรืออาจต้องเสียเวลาหลายที... ทางที่ดีลองบอกรายละเอียดให้ชัดอีกสักหน่อย ผมรับรองได้คำตอบแน่นอน เพราะคำถามนี้ไม่ได้ยากเลย
3 @R08187
ผมทำได้แล้วครับ ต้องใช้เป็นแบบนี้ครับ (คือต้องการให้ออกค่ารวมของจำนวนเงินทั้งหมด ทั่งในฟอร์ม และ report

=Sum(IIf([PIDTxtUnit]="USD / 1,000 PC",[PIDQty]*[PIDQtyPerUnit]/1000*[PIDUnitPrice],0))+Sum(IIf([PIDTxtUnit]="USD / 1 KG.",[PIDQty]*[KiloPerUnit]*[PIDUnitPrice],0))+Sum(IIf([PIDTxtUnit]="USD / 1 PACK",[PIDQty]*[PackPerUnit]*[PIDUnitPrice],0))+Sum(IIf([PIDTxtUnit]="USD / 1 BOX",[PIDQty]*[BoxesPerUnit]*[PIDUnitPrice],0))+Sum(IIf([PIDTxtUnit]="USD / 1 CTN.",[PIDQty]*[PIDUnitPrice],0))

ขอบคุณอาจารย์ และเพื่อนๆ พี่ ในนี้มากนะครับ
4 @R08816
ขอรบกวนเพื่อน ๆ และอาจารย์ช่วยแนะนำด้วยครับ ตันอีกแล้ว

สมมุติว่าตารางที่ 1 จำนวนเงิน 12,000 บาท และตารางที่ 2 จำนวนเงิน 3,000 บาท และอยากให้จำนวนเงินในตารางที่ 1 ตัดให้เหลือที่ 10,000 บาท แล้วยกจำนวนเงินที่เหลือจากตารางที่ 1 2,000 บาทไปรวมกับจำนวนเงินในตารางที่ 2 คือ 3,000+2,000 เป็น 5,000 บาท จะต้องเขียนสูตรว่าอย่างไร

ของผมใช้สูตรแบบนี้ครับ

ตารางที่ 1=IIf(Sum([เงินรางวัล60%])>10000,10000,Sum([เงินรางวัล60%]))

ตารางที่ 2=IIf(Sum([เงินรางวัล60%])>10000,Sum([เงินรางวัล40%])+Sum([เงินรางวัล60%])-10000,Sum([เงินรางวัล40%]))

และช่วยสรุปผลรวมของตารางขั้นสุดท้ายให้ด้วย ขอขอบพระคุณล่วงหน้า
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3401s