Page 1 of 1

อยากใช้ sumif กับ non duplicate ต้องทำยังไงครับ

Posted: Fri May 22, 2020 11:33 am
by scars13
เนื่องจากผมต้องคำนวณการใช้ Material เป็นจำนวนมาก อยากหายอดใช้จริง โดยที่ ไม่สนใจค่าที่ซ้ำกัน และ เป็นค่าของ รายการนั้นๆ ( เบอร์ FG )
จากตัวอย่างผมมี 2 FG มีโปรแกรมตัด ซ้ำๆกัน เนื่องจากมี ส่วนประกอบหลายตัวในโปรแกรมตัดนั้นๆ เลยมีผลให้เกิดหลายบรรทัด
ทีนี้ผมต้องการหาค่า Usage จริงๆจาก Usage เช่น FG 26489KA1 มี Usage 3 ค่าที่ไม่ซ้ำกันคือ 0.626 0.95 0.25 ผมต้องการ sum แค่ 3 รายการนี้เท่านั้น

Parent items Program Model Usage Actual Usage
26489KA1 5723600S AAA 0.626 1.60
26489KA1 5723600S AAA 0.626 1.60
26489KA1 5723900S AAA 0.951 1.60
26489KA1 5723900S AAA 0.951 1.60
26489KA1 5723900S AAA 0.951 1.60
26489KA1 5723900S AAA 0.951 1.60
26489KA1 5723900S AAA 0.951 1.60
26489KA1 5723900S AAA 0.951 1.60
26489KA1 5724000S AAA 0.025 1.60
6501052X 1686900K BBB 0.396 8.45
6501052X 1686900K BBB 0.396 8.45
6501052X 1686900K BBB 0.396 8.45
6501052X 1686900K BBB 0.396 8.45
6501052X 1687300K BBB 0.178 8.45
6501052X 1687300K BBB 0.178 8.45
6501052X 1687500D BBB 1.776 8.45
6501052X 1687500D BBB 1.776 8.45
6501052X 1687500D BBB 1.776 8.45
6501052X 1687500D BBB 1.776 8.45
6501052X 1687500D BBB 1.776 8.45
6501052X 1687700K BBB 0.039 8.45
6501052X 1692700C BBB 0.435 8.45
6501052X 5669200S BBB 0.105 8.45
6501052X 1166000S BBB 0.118 8.45
6501052X 1426100S BBB 0.071 8.45

Re: อยากใช้ sumif กับ non duplicate ต้องทำยังไงครับ

Posted: Fri May 22, 2020 12:02 pm
by logic
แบบนี้ไหมครับ

I3 =SUMPRODUCT(($A$2:$A$26=H3)/COUNTIF($D$2:$D$26,$D$2:$D$26),$D$2:$D$26)

Re: อยากใช้ sumif กับ non duplicate ต้องทำยังไงครับ

Posted: Fri May 22, 2020 2:03 pm
by Bo_ry
J3 Count
=COUNT(1/IF($A$2:$A$27=H3,FREQUENCY($D$2:$D$26,$D$2:$D$26)))

K3 Sum
=SUM(IF(IF($A$2:$A$27=H3,FREQUENCY($D$2:$D$26,$D$2:$D$26)),$D$2:$D$26))

L3
=AVERAGE(IF(IF($A$2:$A$27=H3,FREQUENCY($D$2:$D$26,$D$2:$D$26)),$D$2:$D$26))

กด Ctrl+Shift+Enter

แต่ถ้าข้อมูลเยอะเกิน 10,000 rows ควรใช้ Power Pivot เพราะสูตร Array คำนวณช้ามาก
Insert Pivot แล้ว check add to the data model
New measure

Count
=DISTINCTCOUNT([Usage])

Sum
=SUMX(DISTINCT(Range[Usage]),Range[Usage])

Average
=AVERAGEX( DISTINCT(Range[Usage]),Range[Usage])

Re: อยากใช้ sumif กับ non duplicate ต้องทำยังไงครับ

Posted: Fri May 22, 2020 4:08 pm
by scars13
logic wrote: Fri May 22, 2020 12:02 pm แบบนี้ไหมครับ

I3 =SUMPRODUCT(($A$2:$A$26=H3)/COUNTIF($D$2:$D$26,$D$2:$D$26),$D$2:$D$26)
ขอบคุณครับ ออกแล้วครับ ตามที่ต้องการเลย แต่หน่วงอย่างที่คุณ โบ แนะนำไว้จริงๆครับ

Re: อยากใช้ sumif กับ non duplicate ต้องทำยังไงครับ

Posted: Fri May 22, 2020 4:11 pm
by scars13
Bo_ry wrote: Fri May 22, 2020 2:03 pm J3 Count
=COUNT(1/IF($A$2:$A$27=H3,FREQUENCY($D$2:$D$26,$D$2:$D$26)))

K3 Sum
=SUM(IF(IF($A$2:$A$27=H3,FREQUENCY($D$2:$D$26,$D$2:$D$26)),$D$2:$D$26))

L3
=AVERAGE(IF(IF($A$2:$A$27=H3,FREQUENCY($D$2:$D$26,$D$2:$D$26)),$D$2:$D$26))

กด Ctrl+Shift+Enter

แต่ถ้าข้อมูลเยอะเกิน 10,000 rows ควรใช้ Power Pivot เพราะสูตร Array คำนวณช้ามาก
Insert Pivot แล้ว check add to the data model
New measure

Count
=DISTINCTCOUNT([Usage])

Sum
=SUMX(DISTINCT(Range[Usage]),Range[Usage])

Average
=AVERAGEX( DISTINCT(Range[Usage]),Range[Usage])




ขอบคุณครับ คุณโบ เดี๋ยวขอลองใช้ดูนะครับ แบบ sumproduct หน่วงจริงๆ อย่างที่แนะนำไว้ เพราะ ข้อมูลผลตอนนี้ ราวๆ 15000 แถวแล้ว