Page 1 of 1
การรวมยอดแบบมีเงื่อนไข
Posted: Thu Aug 29, 2013 12:57 am
by Panuwat
เรียนถามท่านผู้รู้ครับ เนื่องจากผมมีข้อมูลการขายของพนักงานแต่ละคน แต่ละวันตามตาราง สรุปรายชื่อพนักงานที่ขายได้ประจำเดือน (1) ต้องการให้ excel ทำการ คำนวณ และแสดงผลออกมาตามตาราง สรุปยอดขาย (2) คืิอการสรุปผลรวมยอดขายของแต่้ละคนออกมา จะต้องทำอย่างไรครับ
ขอแสดงความนับถือ
Re: การรวมยอดแบบมีเงื่อนไข
Posted: Thu Aug 29, 2013 7:22 am
by joo
ลองแบบนี้ดูครับที่ O3 คีย์ =SUMIF($D$3:$D$17,$L3,$G$3:$G$17) Enter > Copy ลงล่าง
Re: การรวมยอดแบบมีเงื่อนไข
Posted: Thu Aug 29, 2013 8:02 am
by Panuwat
ขอบคุณ คุณJOO มากครับที่กรุณา
แต่ถ้าผมต้องการให้แสดงผล ลำดับ <คอลัมน์ K> และ รหัส <คอลัมน์ L> และ จำนวนเงิน <คอลัมน์ L>
ลำดับ รหัส ชิ่อ-สกุล จำนวนเงิน
1 111 นาย A 2140
2 222 นาง B 1600
3 333 นาย C 1900
4 444 นาย D 400
5 555 นาง R 250
6 989 นาง X 600
หมายเหตุ ไม่จำเป็นต้องเรียงตามรหัสครับ
คือ ให้ปรากฏ <คอลัมน์ ลำดับ>
<คอลัมน์ รหัส> ซ้ำกัน เลือกมาแค่ 1
<คอลัมน์ จำนวนเงิน> นำผลงานที่รหัสซ้ำกันรวมกันครับ
ขอแสดงความนับถือ
Re: การรวมยอดแบบมีเงื่อนไข
Posted: Thu Aug 29, 2013 8:11 am
by Panuwat
ขอโทษครับ จำนวนเงิน จำนวนเงิน <คอลัมน์ O> ครับ
Re: การรวมยอดแบบมีเงื่อนไข
Posted: Thu Aug 29, 2013 8:57 am
by joo
ลองแบบนี้ดูครับ
ที่ J2 คีย์ =SUMPRODUCT(1/COUNTIF($D$3:$D$17,$D$3:$D$17))
ที่ K3 คีย์ =IF(ROWS(K$3:K3)>$J$2,"",ROWS(K$3:K3)) Enter >Copy ลงล่าง
ที่ L3 คีย์ =IF(ROWS(L$3:L3)>$J$2,"",INDEX($D$3:$D$17,SMALL(IF(FREQUENCY(MATCH($D$3:$D$17,$D$3:$D$17,0),ROW($D$3:$D$17)-ROW($D$3)+1),ROW($D$3:$D$17)-ROW($D$3)+1),ROWS(L$3:L3)))) กดแป้น Ctrl+Shift+Enter แล้วคัดลอกลงล่าง
ที่ M3 คีย์ =INDEX($E$3:$E$17,MATCH($L3,$D$3:$D$17,0)) Enter >Copy ลงล่าง
ที่ O3คีย์ =SUMIF($D$3:$D$17,$L3,$G$3:$G$17) Enter >Copy ลงล่าง
Re: การรวมยอดแบบมีเงื่อนไข
Posted: Thu Aug 29, 2013 10:37 am
by Panuwat
ขอบคุณ คุณ Joo มากครับ สามารถใชังานได้ดีเลยครับ
Re: การรวมยอดแบบมีเงื่อนไข
Posted: Thu Aug 29, 2013 12:26 pm
by Panuwat
เรียนคุณ JOO และท่านผู้รู้ครับ
ตามที่ฟังก์ชั่นใน คอลัมน์ J2 คือ =SUMPRODUCT(1/COUNTIF($D$3:$D$17,$D$3:$D$17))
คือการนับค่าตามเงือนไข ซึ่งในที่นี้ให้นับค่าในคอลัมน์ D3 ถึง D17 ซึ่งมีข้อมูลอยู่แล้ว
แต่ปัญหาคือ เมื่อผมต้องการให้ มีการนับค่าตั้งแต่ D3 ถึง D900 (คือตั้งแต่ D18 เป็นต้นไปเป็นค่าว่าง เพื่อรองรับการเพิ่มข้อมูล
โดยใช้ฟังก์ชั่น คอลัมน์ J2 คือ =SUMPRODUCT(1/COUNTIF($D$3:$D$900,$D$3:$D$900))
ซึ่งหมายความว่าฟังก์ชั่นนี้ไม่สามารถใช้กับค่าว่างใช่หรือปล่าวครับ จะต้องแก้ไขอย่างไรครับ รบกวนด้วยครับ
ขอบคุณมากครับ
Re: การรวมยอดแบบมีเงื่อนไข
Posted: Thu Aug 29, 2013 1:11 pm
by snasui
ลองปรับเป็นสูตรนี้ครับ
=SUMPRODUCT(($D$3:$D$900<>"")/COUNTIF($D$3:$D$900,$D$3:$D$900&""))
Re: การรวมยอดแบบมีเงื่อนไข
Posted: Thu Aug 29, 2013 5:36 pm
by Panuwat
ขอบคุณท่านอาจารย์ มากครับที่ให้ความอนุเคราะห์ ซึ่งฟังก์ชั่นที่อาจารย์ทำให้มา สามารถทำได้ด้วยดีครับ
แต่ปัญหาเกิดขึ้นอีก 1 ข้อครับ ที่ L3 คีย์ =IF(ROWS(L$3:L3)>$J$2,"",INDEX($D$3:$D$17,SMALL(IF(FREQUENCY(MATCH($D$3:$D$17,$D$3:$D$17,0),ROW($D$3:$D$17)-ROW($D$3)+1),ROW($D$3:$D$17)-ROW($D$3)+1),ROWS(L$3:L3)))) กดแป้น Ctrl+Shift+Enter แล้วคัดลอกลงล่าง
เป็นปัญหาเดียวกันกับที่ J2 (ที่อาจารย์ช่วยแก้ปัญหาให้)
ซึ่งผมคีย์ดังนี้ เกิด ERROR ครับ
=IF(ROWS(L$3:L3)>$J$2,"",INDEX($D$3:$D$900,SMALL(IF(FREQUENCY(MATCH($D$3:$D$900,$D$3:$D$900,0),ROW($D$3:$D$900)-ROW($D$3)+1),ROW($D$3:$D$900)-ROW($D$3)+1),ROWS(L$3:L3)))) กดแป้น Ctrl+Shift+Enter แล้วคัดลอกลงล่าง
ขอความกรุณาช่วยอนุเคราะห์ด้วยครับ
Re: การรวมยอดแบบมีเงื่อนไข
Posted: Thu Aug 29, 2013 6:32 pm
by bank9597
ลองดูตามตัวอย่างของผมอีกวิธีนึงครับ
หากสงสัยก็ตั้งคำถามได้ครับ
Re: การรวมยอดแบบมีเงื่อนไข
Posted: Thu Aug 29, 2013 7:01 pm
by Panuwat
เรียนคุณ bank9597
ขอขอบคุณมากครับที่ช่วยในการแก้ปัญหาครับ
จากฟังก์ชั่นที่ คุณbank9597 ทำให้มาสามารถทำได้ครับ แต่กรณีที่มีการเพิ่มข้อมูลขึ้นเรื่อยๆ (เนื่องจากในความเป็นจริงข้อมูลเยอะมากครับ)
ผมได้ทำการปรับเปลี่ยนฟังก์ชั่นที่คุณ bank9597 ทำให้มาใน L4 ดังนี้
=IF(ROWS($L$3:$L4)>COUNTIF($H$3:$H$900,1),"",INDEX($D$3:$D$900,SMALL(IF($H$3:$H$900=1,ROW($H$3:$H$900)-ROW($H$3)+1),ROWS($L$3:$L4))))
ก็จะเกิด ERROR เช่นเดียวกับที่ผ่านมาครับ จึงขอรบกวนช่วยแก้ปัญหาให้ด้วยครับ
ปล.ที่ต้องปรับเปลี่ยนเนื่องจากรองรับข้อมูลที่เพิ่มขึ้นครับ
ขอแสดงความนับถือ
Re: การรวมยอดแบบมีเงื่อนไข
Posted: Thu Aug 29, 2013 7:10 pm
by bank9597
Panuwat wrote:เรียนคุณ bank9597
ขอขอบคุณมากครับที่ช่วยในการแก้ปัญหาครับ
จากฟังก์ชั่นที่ คุณbank9597 ทำให้มาสามารถทำได้ครับ แต่กรณีที่มีการเพิ่มข้อมูลขึ้นเรื่อยๆ (เนื่องจากในความเป็นจริงข้อมูลเยอะมากครับ)
ผมได้ทำการปรับเปลี่ยนฟังก์ชั่นที่คุณ bank9597 ทำให้มาใน L4 ดังนี้
=IF(ROWS($L$3:$L4)>COUNTIF($H$3:$H$900,1),"",INDEX($D$3:$D$900,SMALL(IF($H$3:$H$900=1,ROW($H$3:$H$900)-ROW($H$3)+1),ROWS($L$3:$L4))))
ก็จะเกิด ERROR เช่นเดียวกับที่ผ่านมาครับ จึงขอรบกวนช่วยแก้ปัญหาให้ด้วยครับ
ปล.ที่ต้องปรับเปลี่ยนเนื่องจากรองรับข้อมูลที่เพิ่มขึ้นครับ
ขอแสดงความนับถือ
สูตรอาร์เรย์ ให้กด ctrl+shift+enter หลังจากวางสูตรครับ
Re: การรวมยอดแบบมีเงื่อนไข
Posted: Thu Aug 29, 2013 7:16 pm
by joo
Panuwat wrote:ซึ่งผมคีย์ดังนี้ เกิด ERROR ครับ
=IF(ROWS(L$3:L3)>$J$2,"",INDEX($D$3:$D$900,SMALL(IF(FREQUENCY(MATCH($D$3:$D$900,$D$3:$D$900,0),ROW($D$3:$D$900)-ROW($D$3)+1),ROW($D$3:$D$900)-ROW($D$3)+1),ROWS(L$3:L3)))) กดแป้น Ctrl+Shift+Enter แล้วคัดลอกลงล่าง
ที่ L3 จากสูตรเดิมลองปรับเป็นแบบนี้ดูครับ
=IF(ROWS($L$3:L3)>$J$2,"",INDEX($D$3:$D$900,SMALL(IF(FREQUENCY(IF($D$3:$D$900<>"",MATCH($D$3:$D$900,$D$3:$D$900,0)),ROW($D$3:$D$900)-ROW($D$3)+1),ROW($D$3:$D$900)-ROW($D$3)+1),ROWS($L$3:L3))))
กดแป้น Ctrl+Shift+Enter พร้อมกันแล้วคัดลอกลงล่าง
Re: การรวมยอดแบบมีเงื่อนไข
Posted: Thu Aug 29, 2013 9:06 pm
by Panuwat
ขอขอบพระคุณ คุณ BANK9597 คุณ JOO มากครับ
ฟังก์ชั่นที่ท่านทั้ง 2 ให้มาสามารถทำงานได้เป็นอย่างดีครับ