:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

การรวมยอดแบบมีเงื่อนไข

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Panuwat
Member
Member
Posts: 82
Joined: Thu Feb 03, 2011 1:05 pm

การรวมยอดแบบมีเงื่อนไข

#1

Post by Panuwat »

เรียนถามท่านผู้รู้ครับ เนื่องจากผมมีข้อมูลการขายของพนักงานแต่ละคน แต่ละวันตามตาราง สรุปรายชื่อพนักงานที่ขายได้ประจำเดือน (1) ต้องการให้ excel ทำการ คำนวณ และแสดงผลออกมาตามตาราง สรุปยอดขาย (2) คืิอการสรุปผลรวมยอดขายของแต่้ละคนออกมา จะต้องทำอย่างไรครับ

ขอแสดงความนับถือ
You do not have the required permissions to view the files attached to this post.
joo
Gold
Gold
Posts: 1213
Joined: Sat Apr 17, 2010 3:50 pm

Re: การรวมยอดแบบมีเงื่อนไข

#2

Post by joo »

:D ลองแบบนี้ดูครับที่ O3 คีย์ =SUMIF($D$3:$D$17,$L3,$G$3:$G$17) Enter > Copy ลงล่าง
Panuwat
Member
Member
Posts: 82
Joined: Thu Feb 03, 2011 1:05 pm

Re: การรวมยอดแบบมีเงื่อนไข

#3

Post 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
<คอลัมน์ จำนวนเงิน> นำผลงานที่รหัสซ้ำกันรวมกันครับ

ขอแสดงความนับถือ
Panuwat
Member
Member
Posts: 82
Joined: Thu Feb 03, 2011 1:05 pm

Re: การรวมยอดแบบมีเงื่อนไข

#4

Post by Panuwat »

ขอโทษครับ จำนวนเงิน จำนวนเงิน <คอลัมน์ O> ครับ
joo
Gold
Gold
Posts: 1213
Joined: Sat Apr 17, 2010 3:50 pm

Re: การรวมยอดแบบมีเงื่อนไข

#5

Post by joo »

:D ลองแบบนี้ดูครับ
ที่ 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 ลงล่าง
You do not have the required permissions to view the files attached to this post.
Panuwat
Member
Member
Posts: 82
Joined: Thu Feb 03, 2011 1:05 pm

Re: การรวมยอดแบบมีเงื่อนไข

#6

Post by Panuwat »

ขอบคุณ คุณ Joo มากครับ สามารถใชังานได้ดีเลยครับ
Panuwat
Member
Member
Posts: 82
Joined: Thu Feb 03, 2011 1:05 pm

Re: การรวมยอดแบบมีเงื่อนไข

#7

Post 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))
ซึ่งหมายความว่าฟังก์ชั่นนี้ไม่สามารถใช้กับค่าว่างใช่หรือปล่าวครับ จะต้องแก้ไขอย่างไรครับ รบกวนด้วยครับ

ขอบคุณมากครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30736
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: การรวมยอดแบบมีเงื่อนไข

#8

Post by snasui »

:D ลองปรับเป็นสูตรนี้ครับ

=SUMPRODUCT(($D$3:$D$900<>"")/COUNTIF($D$3:$D$900,$D$3:$D$900&""))
Panuwat
Member
Member
Posts: 82
Joined: Thu Feb 03, 2011 1:05 pm

Re: การรวมยอดแบบมีเงื่อนไข

#9

Post 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 แล้วคัดลอกลงล่าง


ขอความกรุณาช่วยอนุเคราะห์ด้วยครับ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การรวมยอดแบบมีเงื่อนไข

#10

Post by bank9597 »

:D ลองดูตามตัวอย่างของผมอีกวิธีนึงครับ

หากสงสัยก็ตั้งคำถามได้ครับ
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
Panuwat
Member
Member
Posts: 82
Joined: Thu Feb 03, 2011 1:05 pm

Re: การรวมยอดแบบมีเงื่อนไข

#11

Post 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 เช่นเดียวกับที่ผ่านมาครับ จึงขอรบกวนช่วยแก้ปัญหาให้ด้วยครับ
ปล.ที่ต้องปรับเปลี่ยนเนื่องจากรองรับข้อมูลที่เพิ่มขึ้นครับ

ขอแสดงความนับถือ
You do not have the required permissions to view the files attached to this post.
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การรวมยอดแบบมีเงื่อนไข

#12

Post 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 หลังจากวางสูตรครับ
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
joo
Gold
Gold
Posts: 1213
Joined: Sat Apr 17, 2010 3:50 pm

Re: การรวมยอดแบบมีเงื่อนไข

#13

Post 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 แล้วคัดลอกลงล่าง
:D ที่ 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 พร้อมกันแล้วคัดลอกลงล่าง
Panuwat
Member
Member
Posts: 82
Joined: Thu Feb 03, 2011 1:05 pm

Re: การรวมยอดแบบมีเงื่อนไข

#14

Post by Panuwat »

ขอขอบพระคุณ คุณ BANK9597 คุณ JOO มากครับ
ฟังก์ชั่นที่ท่านทั้ง 2 ให้มาสามารถทำงานได้เป็นอย่างดีครับ
Post Reply