: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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: หาจำนวนตัวอักษรตรงกันและครบแล้วให้แสดงออกมา

#21

Post by Totem »

:D มีคำถามเพิ่มเติมต่อเนื่องจากสูตรที่ใช้ได้แล้ว ถ้ากรณีที่ รายการที่ 2 ในคอลัมน์ B มีเพิ่มรายการขึ้นมาอีก 1 รายการหรือมากกว่านั้นอาจเป็น...N รายการใดๆ เช่น กขคฆงจฉช มีเพิ่มขึ้นมาอีกรายการ ทำให้ในคอลัมน์ E หรือ F รายการที่ได้ จะมีผลลัพธ์เพิ่มขึ้น จะปรับสูตรอย่างไรครับ

SEARCH(B$2&"*",$A$2:$A$12)

ครบตัวอักษรให้แสดง เพิ่มเติมล่าสุด.xlsx
You do not have the required permissions to view the files attached to this post.
User avatar
puriwutpokin
Guru
Guru
Posts: 3801
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: หาจำนวนตัวอักษรตรงกันและครบแล้วให้แสดงออกมา

#22

Post by puriwutpokin »

ใช้คอลัมน์ช่วยนะครับ
ที่ C2=IF(B2="","",SUM(IF(FREQUENCY(IF(ISNUMBER(SEARCH(B2,$A$2:$A$12)),MATCH($A$2:$A$12,$A$2:$A$12,0)),ROW(INDIRECT("1:"&ROWS($A$2:$A$12)))),1))) กด Ctrl+Shift+Enter คัดลอกถึง C12
D2=IF(ROWS(D$2:D2)>C$13,"",SMALL(IF(TRANSPOSE(ROW(INDIRECT("1:"&MAX(C$2:C$12))))<=$C$2:$C$12,ROW($C$2:$C$12)-ROW($C$2)+1),ROWS(E$2:E2)))กด Ctrl+Shift+Enter คัดลอกถึง D12
C13=SUM(C2:C12)
E2=IFERROR(INDEX($A$2:$A$12,SMALL(IF(FREQUENCY(IF(ISNUMBER(SEARCH(INDIRECT("B"&D2+1),$A$2:$A$12)),MATCH($A$2:$A$12,$A$2:$A$12,0)),ROW(INDIRECT("1:"&ROWS($A$2:$A$12)))),ROW(INDIRECT("1:"&ROWS($A$2:$A$12)))),COUNTIF(D$2:D2,D2))),"")กด Ctrl+Shift+Enter คัดลอกถึง E12
:shock: :roll: :D
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: หาจำนวนตัวอักษรตรงกันและครบแล้วให้แสดงออกมา

#23

Post by Totem »

puriwutpokin wrote: Wed May 22, 2019 11:37 am ใช้คอลัมน์ช่วยนะครับ
ที่ C2=IF(B2="","",SUM(IF(FREQUENCY(IF(ISNUMBER(SEARCH(B2,$A$2:$A$12)),MATCH($A$2:$A$12,$A$2:$A$12,0)),ROW(INDIRECT("1:"&ROWS($A$2:$A$12)))),1))) กด Ctrl+Shift+Enter คัดลอกถึง C12
D2=IF(ROWS(D$2:D2)>C$13,"",SMALL(IF(TRANSPOSE(ROW(INDIRECT("1:"&MAX(C$2:C$12))))<=$C$2:$C$12,ROW($C$2:$C$12)-ROW($C$2)+1),ROWS(E$2:E2)))กด Ctrl+Shift+Enter คัดลอกถึง D12
C13=SUM(C2:C12)
E2=IFERROR(INDEX($A$2:$A$12,SMALL(IF(FREQUENCY(IF(ISNUMBER(SEARCH(INDIRECT("B"&D2+1),$A$2:$A$12)),MATCH($A$2:$A$12,$A$2:$A$12,0)),ROW(INDIRECT("1:"&ROWS($A$2:$A$12)))),ROW(INDIRECT("1:"&ROWS($A$2:$A$12)))),COUNTIF(D$2:D2,D2))),"")กด Ctrl+Shift+Enter คัดลอกถึง E12
:D ขอบคุณครับได้ตามที่ต้องการครับ
User avatar
Bo_ry
Gold
Gold
Posts: 1245
Joined: Sun Aug 12, 2018 12:11 am
Excel Ver: MS 365
Contact:

Re: หาจำนวนตัวอักษรตรงกันและครบแล้วให้แสดงออกมา

#24

Post by Bo_ry »

ถ้าไม่ต้องเรียง
F2
=IFERROR(INDEX($A$2:$A$99,MATCH(0,INDEX(COUNTIF(F$1:F1,$A$2:$A$99)/(ISNUMBER(SEARCH($B$2,$A$2:$A$99))+ISNUMBER(SEARCH($B$3,$A$2:$A$99))),),)),"")

ถ้าต้องเรียง
G2
=IFERROR(INDEX(A:A,MOD(AGGREGATE(15,6,TEXT(COUNTIF($A$2:$A$15,"<"&$A$2:$A$15)/(ISNUMBER(SEARCH($B$2,$A$2:$A$15))+ISNUMBER(SEARCH($B$3,$A$2:$A$15)))-SUMPRODUCT(COUNTIF($A$2:$A$15,G$1:G1)),"0;;0")*1000+ROW(A$2:$A$15),1),1000)),"")
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: หาจำนวนตัวอักษรตรงกันและครบแล้วให้แสดงออกมา

#25

Post by Totem »

:D อาจารย์และเพื่อนสมาชิก puriwutpokin ช่วยอธิบายสูตรนี้ให้หน่อยครับไม่เข้าใจครับ

D2=IF(ROWS(D$2:D2)>C$13,"",SMALL(IF(TRANSPOSE(ROW(INDIRECT("1:"&MAX(C$2:C$12))))<=$C$2:$C$12,ROW($C$2:$C$12)-ROW($C$2)+1),ROWS(E$2:E2)))

ตรงนี้ครับ SMALL(IF(TRANSPOSE(ROW(INDIRECT("1:"&MAX(C$2:C$12))))<=$C$2:$C$12,ROW($C$2:$C$12)-ROW($C$2)+1)

ขอบคุณครับ
User avatar
puriwutpokin
Guru
Guru
Posts: 3801
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: หาจำนวนตัวอักษรตรงกันและครบแล้วให้แสดงออกมา

#26

Post by puriwutpokin »

ตรงนี้​จะหาตำแหน่ง​ของข้อมูล​ที่จะมาแสดงครับ SMALL(IF(TRANSPOSE(ROW(INDIRECT("1:"&MAX(C$2:C$12))))<=$C$2:$C$12,ROW($C$2:$C$12)-ROW($C$2)+1)
:shock: :roll: :D
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: หาจำนวนตัวอักษรตรงกันและครบแล้วให้แสดงออกมา

#27

Post by Totem »

puriwutpokin wrote: Tue May 28, 2019 4:34 pm ตรงนี้​จะหาตำแหน่ง​ของข้อมูล​ที่จะมาแสดงครับ SMALL(IF(TRANSPOSE(ROW(INDIRECT("1:"&MAX(C$2:C$12))))<=$C$2:$C$12,ROW($C$2:$C$12)-ROW($C$2)+1)
:D ครับ ตรงที่ไม่เข้าใจ TRANSPOSE(ROW(INDIRECT("1:"&MAX(C$2:C$12)))) ทำไมต้อง TRANSPOSE (อาร์เรย์หรือช่วงของเซลล์บนแผ่นงานที่คุณต้องการสลับ ) จากแถวสลับเป็นคอลัมน์ ยังไม่กระจ่างครับ
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: หาจำนวนตัวอักษรตรงกันและครบแล้วให้แสดงออกมา

#28

Post by Totem »

:D มีคำถามเพิ่มเติมครับ กรณีถ้าไม่ต้องการให้ รายการที่1 ในคอลัมน์ A เฉพาะ กขคฆงจฉชAB1 ไปแสดงรายการในคอลัมน์ E
แต่รายการอื่นๆ ยังแสดงรายการเหมือนเดิม จะปรับสูตรอย่างไรครับ



ครบตัวอักษรให้แสดง เพิ่มเติมล่าสุด ยกเว้นรายการ.xlsx
You do not have the required permissions to view the files attached to this post.
User avatar
puriwutpokin
Guru
Guru
Posts: 3801
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: หาจำนวนตัวอักษรตรงกันและครบแล้วให้แสดงออกมา

#29

Post by puriwutpokin »

Totem wrote: Wed May 29, 2019 11:05 am :D มีคำถามเพิ่มเติมครับ กรณีถ้าไม่ต้องการให้ รายการที่1 ในคอลัมน์ A เฉพาะ กขคฆงจฉชAB1 ไปแสดงรายการในคอลัมน์ E
แต่รายการอื่นๆ ยังแสดงรายการเหมือนเดิม จะปรับสูตรอย่างไรครับ




ครบตัวอักษรให้แสดง เพิ่มเติมล่าสุด ยกเว้นรายการ.xlsx
รายการที่ไม่ต้องการให้แสดง เพราะเงื่อนไขอะไรครับ เช่น ให้โชว์ 3 รายการหรืออะไร ลองให้เงื่อนไขมาดูครับ
:shock: :roll: :D
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: หาจำนวนตัวอักษรตรงกันและครบแล้วให้แสดงออกมา

#30

Post by Totem »

:D คือรายการที่คอลัมน์ A ช่อง A10 = กขคฆงจฉชAB1 ต้องการว่า ถ้าพบตัวอักษรที่ต่อท้าย กขคฆงจฉช คือ AB1 เป็นการเฉพาะ (กำหนดเป็นตัวอย่างแต่อาจจะมีตัวอักษรมากกว่านี้หรือน้อยกว่านี้ก็ได้) ไม่ให้ไปแสดงที่คอลัมน์ E ช่อง E5 ส่วนรายการที่ช่อง E2 , E3 , E4 ยังคงใช้สูตรเงื่อนไขเดิมครับ
User avatar
puriwutpokin
Guru
Guru
Posts: 3801
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: หาจำนวนตัวอักษรตรงกันและครบแล้วให้แสดงออกมา

#31

Post by puriwutpokin »

ปรับที่ E2=IFERROR(INDEX($A$2:$A$12,SMALL(IF(FREQUENCY(IF(NOT(ISNUMBER(SEARCH("*AB1",$A$2:$A$12))),IF(ISNUMBER(SEARCH(INDIRECT("B"&D2+1),$A$2:$A$12)),MATCH($A$2:$A$12,$A$2:$A$12,0))),ROW(INDIRECT("1:"&ROWS($A$2:$A$12)))),ROW(INDIRECT("1:"&ROWS($A$2:$A$12)))),COUNTIF(D$2:D2,D2))),"") กด Ctrl+Shift+Enter คัดลอกลงครับ
:shock: :roll: :D
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: หาจำนวนตัวอักษรตรงกันและครบแล้วให้แสดงออกมา

#32

Post by Totem »

puriwutpokin wrote: Wed May 29, 2019 5:06 pm ปรับที่ E2=IFERROR(INDEX($A$2:$A$12,SMALL(IF(FREQUENCY(IF(NOT(ISNUMBER(SEARCH("*AB1",$A$2:$A$12))),IF(ISNUMBER(SEARCH(INDIRECT("B"&D2+1),$A$2:$A$12)),MATCH($A$2:$A$12,$A$2:$A$12,0))),ROW(INDIRECT("1:"&ROWS($A$2:$A$12)))),ROW(INDIRECT("1:"&ROWS($A$2:$A$12)))),COUNTIF(D$2:D2,D2))),"") กด Ctrl+Shift+Enter คัดลอกลงครับ
:D ขอบคุณครับได้ตามที่ต้องการครับ
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: หาจำนวนตัวอักษรตรงกันและครบแล้วให้แสดงออกมา

#33

Post by Totem »

:D ขอเพิ่มเติม หากต้องการกำหนดเป็นการเฉพาะมากกว่า 1 รายการ คือรายการที่คอลัมน์ A เช่น ช่อง A3 = กขคฆงจฉชABD1 และ ช่อง A4 = กขคฆงจฉชABG1 ต้องการว่า ถ้าพบตัวอักษรที่ต่อท้าย กขคฆงจฉช คือ ABD1 และ ABG1 เป็นการเฉพาะเพิ่มเติม ไม่ให้ไปแสดงที่คอลัมน์ E ช่อง E4 และ E5 ส่วนรายการที่ช่อง E1 , E2 , E6 ยังคงใช้สูตรเงื่อนไขเดิมครับ

ครบตัวอักษรให้แสดง เพิ่มเติมล่าสุด ยกเว้นรายการมากกว่า1.xlsx
You do not have the required permissions to view the files attached to this post.
User avatar
puriwutpokin
Guru
Guru
Posts: 3801
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: หาจำนวนตัวอักษรตรงกันและครบแล้วให้แสดงออกมา

#34

Post by puriwutpokin »

ที่ C15:C17 คีย์ ABD1,ABG1,AB1
ที่ E2=IFERROR(INDEX($A$2:$A$12,SMALL(IF(FREQUENCY(IF(NOT(MMULT(--ISNUMBER(SEARCH(TRANSPOSE($C$15:$C$17),$A$2:$A$12)),ROW($C$15:$C$17)^0)),IF(ISNUMBER(SEARCH(INDIRECT("B"&D2+1),$A$2:$A$12)),MATCH($A$2:$A$12,$A$2:$A$12,0))),ROW(INDIRECT("1:"&ROWS($A$2:$A$12)))),ROW(INDIRECT("1:"&ROWS($A$2:$A$12)))),COUNTIF(D$2:D2,D2))),"") กด Ctrl+Shift+Enter คัดลอกลงครับ
:shock: :roll: :D
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: หาจำนวนตัวอักษรตรงกันและครบแล้วให้แสดงออกมา

#35

Post by Totem »

puriwutpokin wrote: Thu May 30, 2019 9:12 pm ที่ C15:C17 คีย์ ABD1,ABG1,AB1
ที่ E2=IFERROR(INDEX($A$2:$A$12,SMALL(IF(FREQUENCY(IF(NOT(MMULT(--ISNUMBER(SEARCH(TRANSPOSE($C$15:$C$17),$A$2:$A$12)),ROW($C$15:$C$17)^0)),IF(ISNUMBER(SEARCH(INDIRECT("B"&D2+1),$A$2:$A$12)),MATCH($A$2:$A$12,$A$2:$A$12,0))),ROW(INDIRECT("1:"&ROWS($A$2:$A$12)))),ROW(INDIRECT("1:"&ROWS($A$2:$A$12)))),COUNTIF(D$2:D2,D2))),"") กด Ctrl+Shift+Enter คัดลอกลงครับ
:D ขอบคุณครับได้ตามที่ต้องการครับ
Post Reply