: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

ดึงคำที่ไม่ซ้ำกันจากหลายเซลล์ มารวมกันไว้อีกเซลล์

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
User avatar
Pholsena
Member
Member
Posts: 3
Joined: Mon Jun 18, 2018 12:40 pm

ดึงคำที่ไม่ซ้ำกันจากหลายเซลล์ มารวมกันไว้อีกเซลล์

#1

Post by Pholsena »

รูปแบบข้อมูลที่มี (มีไฟล์แนบให้ค่ะ
ตัวอย่างข้อมูล.xlsx
)
คอลัม A คือกลุ่มของข้อความ (1 กลุ่ม จะมีข้อความแสดงอยู่ในคอลัม A หลายเซลล์) เช่น 1a , 1b
คอลัม B ข้อความแยกย่อย เช่น
(ในเซลล์ที่ A2) TOYOTA CELICA TA22 TA23 TA27 RA25 RA28 NEW 10 PCS CLIPS DOOR PANEL SET 1971-1977
(ในเซลล์ที่ A3) INTERIOR DOOR PANEL BOARD CLIPS SET For TOYOTA CELICA TA22 23 TA27 RA25 28 71-77 เป็นต้น

สิ่งที่ต้องการ
อยากทำการรวมข้อความที่อยู่ในคอลัม A หลาย ๆ หลายเซลล์ มาไว้ในเซลล์เดียว โดยกำหนดให้ดึงเฉพาะคำที่ไม่ซ้ำกันเท่านั้น เช่น
TOYOTA CELICA TA22 TA23 TA27 RA25 RA28 NEW 10 PCS CLIPS DOOR PANEL SET 1971-1977 INTERIOR BOARD For 23 28 71-77 เป็นต้น

ปัญหาที่เจอคือ
1.ภายในเซลล์มีคำหลายคำ
2.ข้อความภายในกลุ่มมีข้อมูลหลายเซลล์
3.จำนวนเซลล์แต่ละกลุ่มไม่เท่ากัน
You do not have the required permissions to view the files attached to this post.
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: ดึงคำที่ไม่ซ้ำกันจากหลายเซลล์ มารวมกันไว้อีกเซลล์

#2

Post by DhitiBank »

ลองแบบนี้ครับ สำหรับผมถ้าใช้สูตรยุ่งยากมากครับ

จากไฟล์ด้านบน ผมสร้างชีทเพิ่มอีก 2 ชีท ชื่อ sheet2, sheet3

:arrow: Sheet1
E2
=TRIM(MID(SUBSTITUTE($B2," ",REPT(" ",LEN($B2))),(COLUMNS($E2:E2)-1)*LEN($B2)+1,LEN($B2)))
Enter >> คัดลอกไปทางขวาถึง Z2 ทำเพื่อแยกข้อความออกมาเซลล์ละท่อน

C2
=COUNTIF(E2:Z2,"*?")
Enter เพื่อนับว่าที่แยกออกมาตั้งแต่ B2 ถึง Z2 มีกี่คำ

D2
=SUMIF(A$2:A2,A2,C$2:C2)-C2+1
Enter สูตรนี้จะเอาไปใช้ในการลิสต์รายการสำหรับ sheet2

แล้วคัดลอกสูตร C2:E2 ลงล่างถึงแถวที่ 90

:arrow: Sheet2
จุดประสงค์ของชีทนี้คือ สร้างลิสต์ของคำในแต่ละกลุ่มให้ 1 กลุ่ม มีแค่ 1 คอลัมน์

A2
=INDEX(Sheet1!$A$2:$A$90,SMALL(IF(FREQUENCY(MATCH(Sheet1!$A$2:$A$90,Sheet1!$A$2:$A$90,0),ROW(Sheet1!$A$2:$A$90)-ROW(Sheet1!$A$2)+1),ROW(Sheet1!$A$2:$A$90)-ROW(Sheet1!$A$2)+1),COLUMNS($A2:A2)))
กด Ctrl+Shift+Enter คัดลอกไปทางขวาถึง C2 เพื่อดึงชื่อกลุ่มแบบไม่ซ้ำ

A3
=IFERROR(INDEX(Sheet1!$E$2:$Z$90,MATCH(A$2,Sheet1!$A$2:$A$90,0)-1+LOOKUP(ROWS(A$3:A3),INDEX(Sheet1!$D$2:$D$90,MATCH(A$2,Sheet1!$A$2:$A$90,0)):INDEX(Sheet1!$D$2:$D$90,LOOKUP(2,1/(A$2=Sheet1!$A$2:$A$90),ROW(Sheet1!$A$2:$A$90)-ROW(Sheet1!$A$2)+1)),ROW(INDEX(Sheet1!$D$2:$D$90,MATCH(A$2,Sheet1!$A$2:$A$90,0)):INDEX(Sheet1!$D$2:$D$90,LOOKUP(2,1/(A$2=Sheet1!$A$2:$A$90),ROW(Sheet1!$A$2:$A$90)-ROW(Sheet1!$A$2)+1)))-ROW(INDEX(Sheet1!$D$2:$D$90,MATCH(A$2,Sheet1!$A$2:$A$90,0)))+1),ROWS(A$3:A3)-LOOKUP(ROWS(A$3:A3),INDEX(Sheet1!$D$2:$D$90,MATCH(A$2,Sheet1!$A$2:$A$90,0)):INDEX(Sheet1!$D$2:$D$90,LOOKUP(2,1/(A$2=Sheet1!$A$2:$A$90),ROW(Sheet1!$A$2:$A$90)-ROW(Sheet1!$A$2)+1)))+1),"")
Enter >> คัดลอกไปถึง C3 >> คัดลอกลงล่างจนเห็นว่าทุกคอลัมน์แสดงผลเป็นค่าว่าง

จบชีทนี้จะได้รายการที่แสดงว่าแต่ละกลุ่มประกอบด้วยคำอะไรบ้าง แต่ยังมีคำที่ซ้ำกันอยู่

:arrow: Sheet3
A2:A4 คีย์ 1a, 1c, 1e ตามลำดับ

C2
=IFERROR(INDEX(Sheet2!$A$3:$C$540,SMALL(IF(FREQUENCY(MATCH(Sheet2!$A$3:$A$540,Sheet2!$A$3:$A$540,0),ROW(Sheet2!$A$3:$A$540)-ROW(Sheet2!$A$3)+1),IF(Sheet2!$A$3:$A$540<>"",ROW(Sheet2!$A$3:$A$540)-ROW(Sheet2!$A$3)+1)),COLUMNS($C2:C2)),MATCH($A2,Sheet2!$A$2:$C$2,0))&" ","")
กด Ctrl+Shift+Enter >> คัดลอกไปทางขวาถึงคอลัมน์ AF

B2
=C2&D2&E2&F2&G2&H2&I2&J2&K2&L2&M2&N2&O2&P2&Q2&R2&S2&T2&U2&V2&W2&X2&Y2&Z2&AA2&AB2&AC2&AD2&AE2&AF2
Enter

แล้วคัดลอกสูตรตั้งแต่ B2:AF2 ลงล่างถึงแถวที่ 4 ครับ :sg:

ลองดูตัวอย่างในไฟล์แนบครับ
ปล. งานแบบนี้ใช้ VBA จะเหมาะกว่าครับ แต่ต้องเขียนมาเองก่อนครับ
You do not have the required permissions to view the files attached to this post.
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: ดึงคำที่ไม่ซ้ำกันจากหลายเซลล์ มารวมกันไว้อีกเซลล์

#3

Post by DhitiBank »

ปรับสูตรในชีท 3 ใหม่ครับ
You do not have the required permissions to view the files attached to this post.
User avatar
Pholsena
Member
Member
Posts: 3
Joined: Mon Jun 18, 2018 12:40 pm

Re: ดึงคำที่ไม่ซ้ำกันจากหลายเซลล์ มารวมกันไว้อีกเซลล์

#4

Post by Pholsena »

ขอบพระคุณมากค่ะ เดี๋ยวจะลองทำดู
Last edited by Pholsena on Tue Jul 17, 2018 10:33 am, edited 1 time in total.
User avatar
Pholsena
Member
Member
Posts: 3
Joined: Mon Jun 18, 2018 12:40 pm

Re: ดึงคำที่ไม่ซ้ำกันจากหลายเซลล์ มารวมกันไว้อีกเซลล์

#5

Post by Pholsena »

DhitiBank wrote: Wed Jun 20, 2018 6:46 am ปรับสูตรในชีท 3 ใหม่ครับ
ได้แล้วค่ะ ช่วยได้เยอะเลยเพราะข้อมูลที่จะทำมีหลายหมื่นแถวเลยค่ะ ช่วยได้มากจริงๆ ขอบพระคุณมากค่ะ
Post Reply