Page 1 of 1
การนับค่าที่ไม่ซ้ำกัน
Posted: Wed Feb 15, 2012 3:19 pm
by rachan
ขอสอบถามท่านผู้รู้หน่อยครับ
ผมดึงข้อมูลมาจากระบบ เป็นข้อมูลการขายรายวันและเป็น line items ทำให้ใน 1 วัน ค่าที่ซ้ำคือหมายเลขออเดอร์(อินวอยซ์) และวันที่ (ตามตารางแนบ) ถ้าผมต้องการหาว่าในแต่ละวันมีออเดอร์เข้ามากี่ใบ และขายไปได้กี่ชิ้น (ตามตารางแนบ)ต้องใช้สูตรอะไรบ้างครับ ข้อมูลที่คึงมา เดือนละประมาณ 10,000 บรรทัดครับ
ขอบคุณล่วงหน้าครับ
Re: การนับค่าที่ไม่ซ้ำกัน
Posted: Wed Feb 15, 2012 3:52 pm
by tupthai
ขอลบก่อนครับสูตรผิด
Re: การนับค่าที่ไม่ซ้ำกัน
Posted: Wed Feb 15, 2012 7:46 pm
by snasui

ลองใช้ PivotTble เข้ามาช่วยจัดการงานนี้ครับ กรณีข้อมูลจำนวนมากจะไม่เหมาะกับการใช้สูตร
การทำ PivotTable สำหรับ Excel 2003 คลิกลงในตารางข้อมูลแล้วเข้าเมนู Data > PivotTable and PivotChart Report จากนั้นลาก Field ที่ต้องการมาในตารางและกำหนดว่าให้นับหรือให้รวม ฯลฯ ดูตัวอย่างที่ Link นี้ครับ
http://www.snasui.com/viewtopic.php?p=2409#p2409
Re: การนับค่าที่ไม่ซ้ำกัน
Posted: Fri Feb 17, 2012 3:23 pm
by rachan
ผมลองใช้ filter แล้ว ค่าที่ได้ไม่ตรงกับที่ต้องการครับ เนื่องจากว่าใน 1 วัน มีสั่งสินค้าหลายออเดอร์ และใน 1 ออเดอร์ก็มีสั่งสินค้าหลายรายการ เมื่อ filter ตามวันที่ ก็จะแสดงหมายเลขออเดอร์และ sum จำนวนชิ้นของแต่ละออเดอร์ ถ้าต้องการทราบผลการ count ว่าวันนั้นมีกี่ออเดอร์และรวม(sum)ว่าที่ขายได้เป็นกี่ชิ้น ต้องใช้คำสั่งอะไรใน filter ครับ (ดังตัวอย่างใน file แนบ) ขอบคุณครับ
Re: การนับค่าที่ไม่ซ้ำกัน
Posted: Fri Feb 17, 2012 5:59 pm
by snasui

กรณีนี้ผมแนะนำให้ใช้ PivotTable ทำแล้วติดตรงไหนสามารถถามได้ครับ และหากได้ทำการ Filter สามารถใช้ฟังก์ชั่น Subtotal เข้ามาช่วยได้ครับ
เช่น
=Subtotal(2,A2:A10000)
หมายถึงว่าข้อมูลจากการ Filter ช่วง A2:A10000
นับแล้วมีกี่รายการ
หากเป็น
=Subtotal(9,A2:A10000)
หมายถึงว่าข้อมูลจากการ Filter ช่วง A2:A10000
รวมแล้วมีกี่รายการ
สามารถศึกษาเพิ่มเติมเกี่ยวกับ Subtotal ได้ที่นี่ครับ
Subtotal
Re: การนับค่าที่ไม่ซ้ำกัน
Posted: Sat Feb 18, 2012 9:14 am
by snasui

กรณีใช้สูตรหาข้อมูลตามที่ต้องการลองตามล่างครับ
- เซลล์ A17 คีย์สูตรเพื่อนับว่า วดป ที่ไม่ซ้ำมีกี่รายการ
=SUMPRODUCT(1/COUNTIF(B3:B15,B3:B15))
Enter
- ที่เซลล์ B18 คีย์สูตรเพื่อ List วดป
=IF(ROWS(B$18:B18)>$A$17,"",INDEX($B$3:$B$15,SMALL(IF(MATCH($B$3:$B$15,$B$3:$B$15,0)=ROW($B$3:$B$15)-ROW($B$3)+1,ROW($B$3:$B$15)-ROW($B$3)+1,$B$3:$B$15),ROWS($B18:B18))))
กดแป้น Ctrl+Shift+Enter แทนการกดแป้น Enter เพียงอย่างเดียวในการรับสูตร เนื่องจากเป็นสูตร Array จากนั้น Copy ลงด้านล่าง
- เซลล์ C18 คีย์สูตรเพื่อนับจำนวนออเดอร์
=IF($B18<>"",SUM(IF(FREQUENCY(IF($B$3:$B$15=B18,MATCH($C$3:$C$15,$C$3:$C$15,0)),ROW($B$3:$B$15)-ROW($B$3)+1),1)),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง
- เซลล์ C18 คีย์สูตรเพื่อรวมจำนวน Unit
=IF($B18<>"",SUMIF($B$3:$B$15,$B18,$G$3:$G$15),"")
Enter > Copy ลงด้านล่าง
ซึ่งหากใช้กับข้อมูลจำนวนมากจะใช้เวลาในการคำนวณค่อนข้างนานครับ