Text Categorization by Excel

สวัสดีครับเพื่อนๆทุกคน วันนี้ผมไปอ่านเจอบทความนึงซึ่งน่าสนใจครับ เลยอยากเอามาเขียนมาเป็นบทความให้เราๆลองใช้ประยุกต์ใช้งานกันดูครับ นั่นก็คือเราสามารถจำแนกประเภทของประโยค ด้วย Keyword ที่เราต้องการได้ น่าสนใจไหมใช่ไหมครับงั้นเรามาดูการใช้ได้ในบทความนี้กันเลย

{=INDEX(ช่วงรายการประเภทหลัก,MATCH(TRUE,ISNUMBER(SEARCH(รายการ keyword,ประโยคที่ใช้คัดแยกประเภท)),0))}

สูตรนี้ค่อนข้างยาวแต่ค่อยๆดูเป็นแต่ส่วนกันครับ โดยจะเริ่มจากส่วนที่ลึกที่สุดแล้วค่อยๆออกไปกันครับ
1) SEARCH(รายการ keyword,ประโยคที่ใช้คัดแยกประเภท) >> สูตรนี้ใช้ค้นหาว่าในช่วงรายการ keyword ที่เรามีนั้นสามารถค้นหาเจอในประโยคหรือไม่ โดยสูตรนี้จะคืนค่าเป็นตำแหน่งที่หาเจอเป็นตัวแรกครับ คล้ายๆกับสูตร FIND ครับ

2) ISNUMBER(SEARCH(รายการ keyword,ประโยคที่ใช้คัดแยกประเภท)) >> เป็นสูตรครอบจากสูตรแรกว่าสามารถค้นหาเจอหรือไม่ โดย ISNUMBER จะเปลี่ยนค่าจากตำแหน่งให้เป็น TRUE, FALSE หรือถ้าหาเจอได้ค่า TRUE และถ้าหาไม่เจอได้ค่า FALSE

3) MATCH(TRUE,ISNUMBER(SEARCH(รายการ keyword,ประโยคที่ใช้คัดแยกประเภท)) >> MATCH ใช้คืนค่าเป็นตำแหน่ง row ว่า keyword ไหนที่หาเจอเราจะได้ตำแหน่งแถวของ keyword มาครับ เพื่อใช้ดึงประเภทอีกทีครับ

4) พอเราเอา INDEX มาครอบ MATCH ด้วยสูตรเต็มๆคือ INDEX(ช่วงรายการประเภทหลัก,MATCH(TRUE,ISNUMBER(SEARCH(รายการ keyword,ประโยคที่ใช้คัดแยกประเภท)),0)) >> จะได้ค่าประเภทหลักออกมาครับตาม row ที่ keyword หาเจอตัวแรกครับ

เราจะดูตัวอย่างจากสูตรเต็มๆที่ช่อง C5 นั่นก็คือ

{=INDEX($G$5:$G$8,MATCH(TRUE,ISNUMBER(SEARCH($F$5:$F$8,B5)),0))}

เรามาค่อยๆไล่ดูทีละ step ดังนี้ครับ

1) SEARCH($F$5:$F$8,$B$5) >> เราใช้สูตรนี้เพื่อเป็นการค้นหาว่า keyword ในช่วง F5:F8 นั้นมีคำไหนที่เจอในประโยคช่อง B5 หรือไม่ ซึ่งถ้าเจอจะคืนค่าเป็นตำแหน่งมาให้ครับ เราก็จะพบว่าคำว่า “เพลง” เจอในประโยคและอยู่ในตำแหน่งที่ 10 ของคำครับ

2) SEARCH($F$5:$F$8,$B$5) >> ต่อมาเราเอาสูตร ISNUMBER มาครอบอีกทีเพื่อเปลี่ยนค่าจากตำแหน่งที่ได้เป็น TRUE, FALSE ครับ ค่า 10 ในตอนแรกก็จะเปลี่ยนเป็น TRUE และที่เหลือเปลี่ยนเป็น FALSE ครับ

3) {=MATCH(TRUE, ISNUMBER(SEARCH($F$5:$F$8,$B$5)))} >> จากสูตรที่สอง เราจะได้ชุดค่าเป็น (FALSE,TRUE,FALSE,FALSE) แต่เราใช้สูตร MATCH มาเพื่อดึงค่าตำแหน่งที่ได้ TRUE ตัวแรกออกมา ทำให้ผลลัพธ์ของสูตรนี้ได้เป็นตำแหน่งที่ 2 ของช่วง F5:F8 ครับ

4) {=INDEX($G$5:$G$8,MATCH(TRUE,ISNUMBER(SEARCH($F$5:$F$8,B5)),0))} >> สุดท้ายเราเอา INDEX มาครอบอีกทีเพื่อดึงค่าประเภทของคำในช่วง G5:G8 จากตำแหน่งที่ 2 (“เพลง”)ที่ได้ ซึ่งก็จะได้เป็น ดนตรีไปใส่นั่นเองครับ

แถมอีกนิด ถ้าลองดูในประโยคที่สอง “ร้านกาแฟนี้อร่อยจัง” ทำไมถึงได้ประเภท “อาหาร” ไม่ใช่ “เครื่องดื่ม” นั่นก็เพราะเราเรียง Keyword อร่อยมาก่อนคำว่ากาแฟครับ เวลาสูตร match จากสูตรที่ 3 จะทำให้ได้ตำแหน่งที่ 1 มาก่อนตำแหน่งที่ 3 นั่นเองครับ

เพื่อนๆลองประยุกต์ใช้กันในเรื่องอื่นๆกันดูนะครับ หากมีคำถามหรือข้อสงสัยในส่วนไหน สามารถพูดคุยกันได้ที่เพจ Ping2Share นะครับ แล้วพบกันใหม่ในบทความถัดไปครับ สวัสดีครับ

Credit: https://exceljet.net/formula/categorize-text-with-keywords

No Comments

Leave a Comment