Page 1 of 1
ขอความช่วยเหลือ function ค้นหาคำบางส่วน
Posted: Mon Jan 11, 2016 9:02 pm
by akekorn
สวัสดีครับเพื่อนสมาชิกทุกท่าน
ผมรบกวนขอความช่วยเหลือ function ค้นหาคำบางส่วน
กล่่าวคือ ผมมีฐานข้อมูล ที่มีชื่อที่ต้องการไม่เต็มประโยคแต่ต้องการค้นหาคำที่มีข้อความเหมือนกับคำที่ต้องการค้นหา
เช่น จากตัวอย่าง ต้องการค้นหาคำว่า "ดอกไม้"
จาก กลุ่มคำ เช่น
ดอกไม้จีน
ดอกไม้เหล็ก
อุดรดอกไม้น้ำ
มารตีน้ำดอกไม้
ซึ่งในกลุ่มดังกล่าวล่วนมีคำว่าดอกไม้ อยากทราบควรใช้ function อะไรครับ
โดยผมได้แนบ ตัวอย่างที่ต้องการมาด้วยครับ
ขอบคูณครับ
Re: ขอความช่วยเหลือ function ค้นหาคำบางส่วน
Posted: Mon Jan 11, 2016 9:09 pm
by snasui

ช่วยแจ้งมาด้วยว่าต้องการคำนอบในชีตไหน เซลล์ไหน ด้วยค่าใดบ้าง
การค้นหาด้วยสูตร จำเป็นต้องแจ้งเซลล์ที่ใช้ค้นหาและเซลล์ที่เป็นส่วนแสดงผลหรือเซลล์ที่ใช้ในการเขียนสูตรครับ
Re: ขอความช่วยเหลือ function ค้นหาคำบางส่วน
Posted: Mon Jan 11, 2016 9:34 pm
by akekorn
ครับผม คือ ใน column A จะเป็น กลุ่มคำที่ใช้ค้นหา และใน column B คือคำตอบที่ต้องการโดยจะต้องมีคำใน column A ไม่ว่าจะอยู่ข้างหน้า ตรงกลาง หรือท้ายประโยคก็ได้ครับผม
Re: ขอความช่วยเหลือ function ค้นหาคำบางส่วน
Posted: Mon Jan 11, 2016 9:53 pm
by snasui

ควรตอบในสิ่งที่ผมถามนะครับ ผมจะได้เขียนสูตรให้ตรงกับตำแหน่งที่ต้องการแสดงผล หากไม่เข้าใจสามารถถามกลับมาได้
กรณีนี้สามารถใช้ Isnumber, Search เข้ามาช่วยได้ครับ
ลองเขียนมาเองโดยการใช้ Function ตามด้านบนเข้าไปประกอบสูตร ติดตรงไหนค่อยมาถามกันต่อครับ
Re: ขอความช่วยเหลือ function ค้นหาคำบางส่วน
Posted: Mon Jan 11, 2016 10:04 pm
by akekorn
ครับผมลองใข้ function search แล้วมีข้อสงสัยว่า
หาก function หาเจอ จะคืนค่าตำแหน่งคำแรกของคำที่หาเจอใช้ไหมครับ
แต่หากคำที่หาไม่ตรงกันจะคืน ค่า#VALUE! ใช่ไหมครับ
ขอบคุณครับ
Re: ขอความช่วยเหลือ function ค้นหาคำบางส่วน
Posted: Mon Jan 11, 2016 10:13 pm
by snasui

ถูกต้องครับ
Re: ขอความช่วยเหลือ function ค้นหาคำบางส่วน
Posted: Mon Jan 11, 2016 10:21 pm
by PayomKanboon
ลองตามนี้ครับ
ที่ F1 พิมพ์คำที่ค้นหา
ที่ F3 =IFERROR(INDEX($B$1:$B$15,SMALL(IF(ISNUMBER(SEARCH($F$1,$B$1:$B$15)),ROW($B$1:$B$15)-ROW($B$1)+1),ROWS(F$3:F3))),"")
กด Ctrl+Shift+Enter พร้อมกันครับ Copy ลงด้านลางตามต้องการ
Re: ขอความช่วยเหลือ function ค้นหาคำบางส่วน
Posted: Thu Jan 14, 2016 7:11 pm
by akekorn
ขอบคุณเพื่อนสมาชิกทุกท่านที่อนุเคราะห์นะครับ
แต่ผมได้แนบสิ่งที่ผมต้องการจริงพร้อมทั้งสุตรที่ได้ทำขึ้นมา
โดยใน file แนบ column A จะเป็นคำที่ใช้ค้นหา คำที่เหมือนกันจาก column B หากใน column B
มีคำเหมือนในคำค้นหาจาก column A ให้ใส่ Y หากไม่เหมือนกันให้ใส่ N
โดยคำตอบต้องเหมือนใน column C ที่ highlight ที่เหลืองไว้
และ ใน column highlight สี่ม่วงคือสูตรที่ผมเขียนขึ้นมาแต่
มันไม่ทำงานตามที่ต้องการ รบกวนเพื่อนสมาชิกช่วยให้ความกระจ่างกับผมด้วยนะครับ
ขอบคุณครับ
Re: ขอความช่วยเหลือ function ค้นหาคำบางส่วน
Posted: Thu Jan 14, 2016 7:20 pm
by snasui

ตัวอย่างสูตรครับ
C1 คีย์
=IF(COUNT(SEARCH($A$1:$A$9,B1))>0,"Y","N")
Ctrl+Shift+Enter > Copy ลงด้านล่าง
Re: ขอความช่วยเหลือ function ค้นหาคำบางส่วน
Posted: Thu Jan 14, 2016 7:26 pm
by akekorn
ขอบคุณครับคุณคนควน แต่ผมมีคำถามคือ จากตัวอย่างนั้นมันมีเพียงไม่กี่บรรทัดซึ่งงานจริงๆที่ผมทำข้อมูลจะมา column ละ หมื่นกว่า ไม่ทราบว่าสูตรนี้จะมี่ปัญหาหรือทำงานช้าไหมครับ หากมีปัญหาหรือช้า ควรปรับปรุงสูตรอย่างไรดีครับผม
ขอบคุณครับ
Re: ขอความช่วยเหลือ function ค้นหาคำบางส่วน
Posted: Thu Jan 14, 2016 8:57 pm
by snasui

ช้าหรือไม่อยู่ที่ Spec เครื่องด้วยครับ
ระดับหมื่นคิดว่าไม่น่าจะช้ามากครับ
Re: ขอความช่วยเหลือ function ค้นหาคำบางส่วน
Posted: Sun Jan 17, 2016 8:52 pm
by akekorn
ขอบคุณครับผม
พอดีผมลองทำมาโครดูแต่ติดปัญหาจึงอยากรบกวนขอความอนุเคราะห์โดยผมได้แนบ file ที่ทำมาครับผม
Re: ขอความช่วยเหลือ function ค้นหาคำบางส่วน
Posted: Sun Jan 17, 2016 9:17 pm
by snasui

ช่วยอธิบายเพิ่มเติมว่าติดตรงไหน อย่างไรมาด้วยครับ
เช่น Run แล้วได้ข้อมูลผิดพลาดที่บรรทัดใด ค่าที่ถูกต้องควรเป็นเท่าใด เป็นต้น
Re: ขอความช่วยเหลือ function ค้นหาคำบางส่วน
Posted: Sun Jan 17, 2016 9:29 pm
by akekorn
ครับคือพอ run แล้วมันขึ้น error
excel ran out of resources while attempting to calculate one or more formulas. As a result, these furmulas canot be evaulated.
แล้วเครื่องก็ แฮงค์ไปเลยครับ เหมือนผมว่าตัวแปรไม่ถูกแต่ไม่ทราบจะแก้อย่างไรครับ
เพราะสูตรที่มาวาง คือ
=IF(COUNT(SEARCH($A$1:1:1+II+$A:$A,B1))>0,"Y","N")
Re: ขอความช่วยเหลือ function ค้นหาคำบางส่วน
Posted: Sun Jan 17, 2016 9:35 pm
by snasui

ตัวอย่าง Code ครับ
Code: Select all
Dim rsAll As Range, rs As Range
Dim rtAll As Range, rt As Range
Dim found As Boolean
With Sheets("Data")
Set rsAll = .Range("a1", .Range("a" & .Rows.Count).End(xlUp))
Set rtAll = .Range("b1", .Range("b" & .Rows.Count).End(xlUp))
For Each rt In rtAll
found = False
For Each rs In rsAll
If InStr(rt, rs) > 0 Then
found = True
rt.Offset(0, 3).Value = "Y"
Exit For
End If
Next rs
If Not found Then
rt.Offset(0, 3).Value = "N"
End If
Next rt
End With
Re: ขอความช่วยเหลือ function ค้นหาคำบางส่วน
Posted: Sun Jan 17, 2016 9:39 pm
by akekorn
ทำได้แล้วครับผม ขอบคุณ คุณคนควนมากครับผม