: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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
pum_puy
Member
Member
Posts: 37
Joined: Sun Sep 16, 2012 10:59 am

การหารายการซ้ำ

#1

Post by pum_puy »

ขอคำแนะนำด้วยครับ
ผมต้องการกำหนดพื้นที่เอาไว้ก่อนแต่มันไม่แสดงตามความต้องการ
แบบนี้จะแก้ไขอย่างไรได้บ้างครับ

ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30920
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: การหารายการซ้ำ

#2

Post by snasui »

:D กรณีมีค่าว่างอยู่ด้วย ต้องเปลี่ยนสูตรใหม่ครับ

ลองตามนี้ครับ
  1. ที่ B1 คีย์
    =SUMPRODUCT((A2:A32<>"")/COUNTIF(A2:A32,A2:A32&""))
    Enter
  2. ที่ B2 คีย์
    =IF(ROWS($B$3:B3)>$B$1,"",INDEX($A$2:$A$32,SMALL(IF(FREQUENCY(IF($A$2:$A$32<>"",MATCH($A$2:$A$32,$A$2:$A$32,0)),ROW($A$2:$A$32)-ROW($A$2)+1),ROW($A$2:$A$32)-ROW($A$2)+1),ROWS($B$3:B3))))
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
pum_puy
Member
Member
Posts: 37
Joined: Sun Sep 16, 2012 10:59 am

Re: การหารายการซ้ำ

#3

Post by pum_puy »

สอบถามเพิ่มเติมรบกวนแนะนำด้วยครับ
part numberและcustomer ให้ข้อมูลแสดงอัตโนมัติเหมือนตารางด้านบนและแยกให้ด้วยว่ามีกี่ราย
รายละเอียดตามไฟล์แนบครับ

ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30920
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: การหารายการซ้ำ

#4

Post by snasui »

:D ลองตามนี้ครับ

เซลล์ I15 คีย่์

=SUMPRODUCT(--(LOOKUP(CHAR(255),$G$15:$G15)=$C$3:$C$26),--($H15=$B$3:$B$26),--(I$14=$A$3:$A$26),$D$3:$D$26)

Enter > Copy ไปทางขวาและลงด้านล่าง
pum_puy
Member
Member
Posts: 37
Joined: Sun Sep 16, 2012 10:59 am

Re: การหารายการซ้ำ

#5

Post by pum_puy »

สอบถามเพิ่มเติมครับ
1.ที่ G10 ผมเขียนสูตรให้หาค่าซ้ำแล้วแสดงผลแล้วที่ G22 ใช้วิธีเดียวกันได้ใช้หรือเปล่าครับ
2. ที่ช่อง Customer ต้องการให้แสดงผลอัตโนมัติเมื่อมีคำสั่งซื้อของลูกค้าใหม่มาเพิ่มก็ให้แสดงชื่อลูกค้าขึ้นมาเลย
เช่นpart_number 014302-1450 ถ้ามีลูกค้ารายใหม่เข้ามาก็ให้แสดงชื่อลูกค้า จำนวนและ กำหนดส่งในตารางเลยไม่ต้องมาพิมพ์ชื่อลูกค้าเข้าไปอีก

ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30920
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: การหารายการซ้ำ

#6

Post by snasui »

:D ลองตามนี้ครับ
  1. เซลล์ H22 คีย์สูตร
    =LOOKUP(CHAR(255),CHOOSE({1,2},"",INDEX($B$10:$B$588,SMALL(IF(FREQUENCY(IF($B$10:$B$588<>"",MATCH($B$10:$B$588&$C$10:$C$588,$B$10:$B$588&$C$10:$C$588,0)),ROW($B$10:$B$588)-ROW($B$10)+1),ROW($B$10:$B$588)-ROW($B$10)+1),ROWS($H$22:H22)))))
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
  2. ที่ G22 คีย์สูตร
    =IF(INDEX($C$10:$C$588,SMALL(IF(FREQUENCY(IF($B$10:$B$588<>"",MATCH($B$10:$B$588&$C$10:$C$588,$B$10:$B$588&$C$10:$C$588,0)),ROW($B$10:$B$588)-ROW($B$10)+1),ROW($B$10:$B$588)-ROW($B$10)+1),ROWS($H$22:H22)))=LOOKUP(2,1/(G$21:G21<>""),G$21:G21),"",INDEX($C$10:$C$588,SMALL(IF(FREQUENCY(IF($B$10:$B$588<>"",MATCH($B$10:$B$588&$C$10:$C$588,$B$10:$B$588&$C$10:$C$588,0)),ROW($B$10:$B$588)-ROW($B$10)+1),ROW($B$10:$B$588)-ROW($B$10)+1),ROWS($H$22:H22))))
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การหารายการซ้ำ

#7

Post by bank9597 »

snasui wrote::D ลองตามนี้ครับ
  1. เซลล์ H22 คีย์สูตร
    =LOOKUP(CHAR(255),CHOOSE({1,2},"",INDEX($B$10:$B$588,SMALL(IF(FREQUENCY(IF($B$10:$B$588<>"",MATCH($B$10:$B$588&$C$10:$C$588,$B$10:$B$588&$C$10:$C$588,0)),ROW($B$10:$B$588)-ROW($B$10)+1),ROW($B$10:$B$588)-ROW($B$10)+1),ROWS($H$22:H22)))))
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
  2. ที่ G22 คีย์สูตร
    =IF(INDEX($C$10:$C$588,SMALL(IF(FREQUENCY(IF($B$10:$B$588<>"",MATCH($B$10:$B$588&$C$10:$C$588,$B$10:$B$588&$C$10:$C$588,0)),ROW($B$10:$B$588)-ROW($B$10)+1),ROW($B$10:$B$588)-ROW($B$10)+1),ROWS($H$22:H22)))=LOOKUP(2,1/(G$21:G21<>""),G$21:G21),"",INDEX($C$10:$C$588,SMALL(IF(FREQUENCY(IF($B$10:$B$588<>"",MATCH($B$10:$B$588&$C$10:$C$588,$B$10:$B$588&$C$10:$C$588,0)),ROW($B$10:$B$588)-ROW($B$10)+1),ROW($B$10:$B$588)-ROW($B$10)+1),ROWS($H$22:H22))))
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
:o :o
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
pum_puy
Member
Member
Posts: 37
Joined: Sun Sep 16, 2012 10:59 am

Re: การหารายการซ้ำ

#8

Post by pum_puy »

เกิดปัญหาใหม่ครับ
แสดงข้อมูลไม่ครบแสดงเฉพาะลูกค้ารายแรกเท่านั้นครับก่อนหน้านี้ที่แนะนำข้อมูลถูกต้อง

รบกวนชี้แนะด้วยครับ
ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30920
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: การหารายการซ้ำ

#9

Post by snasui »

:D ลองตามนี้ครับ

เซลล์ I22 คีย่์

=SUMPRODUCT(--(LOOKUP(2,1/($G$22:$G22<>""),$G$22:$G22)=$C$3:$C$26),--($H22=$B$3:$B$26),--(I$21=$A$3:$A$26),$D$3:$D$26)

Enter > Copy ไปด้านขวาและลงด้านล่าง
คน-ควนรู
Member
Member
Posts: 37
Joined: Sun Dec 12, 2010 1:47 pm

Re: การหารายการซ้ำ

#10

Post by คน-ควนรู »

bank9597 wrote:
snasui wrote::D ลองตามนี้ครับ
  1. เซลล์ H22 คีย์สูตร
    =LOOKUP(CHAR(255),CHOOSE({1,2},"",INDEX($B$10:$B$588,SMALL(IF(FREQUENCY(IF($B$10:$B$588<>"",MATCH($B$10:$B$588&$C$10:$C$588,$B$10:$B$588&$C$10:$C$588,0)),ROW($B$10:$B$588)-ROW($B$10)+1),ROW($B$10:$B$588)-ROW($B$10)+1),ROWS($H$22:H22)))))
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
  2. ที่ G22 คีย์สูตร
    =IF(INDEX($C$10:$C$588,SMALL(IF(FREQUENCY(IF($B$10:$B$588<>"",MATCH($B$10:$B$588&$C$10:$C$588,$B$10:$B$588&$C$10:$C$588,0)),ROW($B$10:$B$588)-ROW($B$10)+1),ROW($B$10:$B$588)-ROW($B$10)+1),ROWS($H$22:H22)))=LOOKUP(2,1/(G$21:G21<>""),G$21:G21),"",INDEX($C$10:$C$588,SMALL(IF(FREQUENCY(IF($B$10:$B$588<>"",MATCH($B$10:$B$588&$C$10:$C$588,$B$10:$B$588&$C$10:$C$588,0)),ROW($B$10:$B$588)-ROW($B$10)+1),ROW($B$10:$B$588)-ROW($B$10)+1),ROWS($H$22:H22))))
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
:o :o
:lol: ซุปเปอร์อาจารย์ :lol:
biggrape
Member
Member
Posts: 61
Joined: Wed Apr 07, 2010 2:13 am
Excel Ver: 2010

Re: การหารายการซ้ำ

#11

Post by biggrape »

สงสัยครับ ว่า COUNTIF(A2:A32,A2:A32&"")) Criteria A2:A32&"" แปลว่าอะไร ???
User avatar
snasui
Site Admin
Site Admin
Posts: 30920
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: การหารายการซ้ำ

#12

Post by snasui »

:D A2:A32&"" เป็นการนำช่วงข้อมูล A2:A32 มาเชื่อมด้วยค่าว่างครับ ที่ต้องเชื่อมกับค่าว่างเพื่อที่ว่าให้นับค่าว่างเข้าไปด้วยและไม่แสดงผลการนับเป็น 0 หากไม่เชื่อมค่าว่างเข้าไปจะนับเซลล์ว่างเป็น 0 ซึ่งจะเห็นได้ว่า Countif เป็นตัวหาร และเมื่อตัวหารเป็น 0 หากเอาไปใช้ในสูตรด้านล่างคือ

=SUMPRODUCT((A2:A32<>"")/COUNTIF(A2:A32,A2:A32))

ผลลัพธ์จะได้ #Div/0! จึงต้องแก้ไขด้วยการเชื่อมค่าว่างเข้าไปเพื่อไม่ให้ติด Error ดังกล่าวครับ
pum_puy
Member
Member
Posts: 37
Joined: Sun Sep 16, 2012 10:59 am

Re: การหารายการซ้ำ

#13

Post by pum_puy »

รบกวนท่านผู้รู้แนะนำด้วยครับ
ต้องการให้แสดงข้อมูลแบบอัตโนมัติโดยที่เรากำหนดรูปแบบของตารางใส่ข้อมูลเอาไว้ก่อน

ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30920
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: การหารายการซ้ำ

#14

Post by snasui »

:D ลองตามนี้ครับ

ที่ D15 คีย์

=IF($E15=$E$15,INDEX(list!$B$2:$B$6152,SMALL(IF(FREQUENCY(IF(list!$B$2:$B$6152<>"",MATCH(list!$B$2:$B$6152,list!$B$2:$B$6152,0)),ROW(list!$B$2:$B$6152)-ROW($D$4)+1),ROW(list!$B$2:$B$6152)-ROW($D$4)+1),COUNTIF(E$15:E15,"Delivery"))),"")

Ctrl+Shift+Enter > Copy ลงด้านล่าง
pum_puy
Member
Member
Posts: 37
Joined: Sun Sep 16, 2012 10:59 am

Re: การหารายการซ้ำ

#15

Post by pum_puy »

ขอบคุณครับ
pum_puy
Member
Member
Posts: 37
Joined: Sun Sep 16, 2012 10:59 am

Re: การหารายการซ้ำ

#16

Post by pum_puy »

เรียนท่านผู้รู้
ต้องการหารายการซ้ำซึ้งมีข้อมูลอยู่หลาย sheetให้แสดงค่าอัตโนมัติ
ต้องหาผลรวมของแต่ละ part โดยให้ข้อมูลแสดงโดยอัตโนมัติครับ


รบกวนแนะนำด้วยครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30920
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: การหารายการซ้ำ

#17

Post by snasui »

:D ดูตัวอย่างที่นี่ครับ http://www.snasui.com/viewtopic.php?p=5121#p5121

ตัวอย่างอื่น ๆ เพิ่มเติม Sumif หลายชีท

การนำข้อมูล Part ในคอลัมน์ B จากหลายชีทมาทำให้เป็นค่า Unique ถ้าไม่ใช้ VBA จะค่อนข้างซับซ้อนหลายขั้นตอน โดย
  1. นำข้อมูลมาต่อกันก่อนดูตัวอย่างที่นี่ http://snasui.blogspot.com/2009/12/sheet-sheet.html
  2. หาค่าไม่ซ้ำด้วยสูตรดูตัวอย่างที่นี่ http://snasui.blogspot.com/2010/05/blog-post.html
วังวู ช่ง
Silver
Silver
Posts: 805
Joined: Thu May 31, 2012 2:27 pm
Location: Laos
Excel Ver: MS Excel for office 365 MSO
Contact:

Re: การหารายการซ้ำ

#18

Post by วังวู ช่ง »

:o :o[/quote]
:lol: ซุปเปอร์อาจารย์ :lol:[/quote]
จิงครับ ต้องยอมรับ และนับถืครับ ในส่วนของ VBA ก่อซุปเปอร์จิงๆครับ
นับถือมากครับ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: การหารายการซ้ำ

#19

Post by bank9597 »

วังวู ช่ง wrote::o :o
:lol: ซุปเปอร์อาจารย์ :lol:[/quote]
จิงครับ ต้องยอมรับ และนับถืครับ ในส่วนของ VBA ก่อซุปเปอร์จิงๆครับ
นับถือมากครับ[/quote]

Image
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
pum_puy
Member
Member
Posts: 37
Joined: Sun Sep 16, 2012 10:59 am

Re: การหารายการซ้ำ

#20

Post by pum_puy »

ถ้าติดปัญหาอะไรแล้วจะรบกวนอาจารย์อีกทีครับ

ขอบคุณครับ
Post Reply