15 มิ.ย. 2019 เวลา 13:50 • ธุรกิจ
สวัสดีครับ วันนี้ผมจะมาเสนอเรื่อง wildcard character หรือสัญลักษณ์แทน
wildcard character หรือสัญลักษณ์แทน คือ ตัวอักขระพิเศษ ที่สามารถนำไปใช้แทนตัวอักษรหรือตัวอักขระใด ๆ ก็ได้ โดยสามารถใช้ได้กับ"บางฟังก์ชัน"
ฟังก์ชันที่สามารถใช้ wildcard ได้ ส่วนใหญ่จะเกี่ยวข้องกับการกำหนดเงื่อนไขในฟังก์ชันเป็นตัวอักขระหรือตัวอักษร เพื่อให้ฟังก์ชันดึงค่าหรือผลลัพธ์ที่เกี่ยวข้องกับเงื่อนไขที่เป็นตัวอักขระหรือตัวอักษรออกมา เช่น ฟังก์ชัน sumif countif ที่เคยนำเสนอแล้วเป็นต้น (อาจจะอธิบายงง ๆ นะครับ ไว้ดูตัวอย่างจะเข้าใจครับ)
wildcard มีอยู่ 3 ตัวครับ
1. ? เครื่องหมายคำถามหรือปรัศนี (question mark)
2. * เครื่องหมายดอกจัน (asterisk)
3. ~ เครื่องหมายทิลเดอ (tilde)
1. ? (question mark)
อักขระพิเศษตัวนี้มีความสามารถในการแทนตัวอักขระใด ๆ ก็ได้ จำนวน 1 อักขระ
(โดยปกติผมแทบไม่เคยใช้เครื่องหมาย ? เลยครับ จะใช้เครื่องหมาย * มากกว่า แต่ก็อยากให้เรียนรู้ไว้เผื่อนำไปประยุกต์ใช้กันครับ)
มาดูตัวอย่างกันเลยครับ
ตามรูปข้างบน ผมกำหนดคำมา 5 cell ซึ่งหากพิจารณาดีดีจะเห็นว่าแต่ละคำจะมีตัวอักษรร่วมกันอยู่ เช่น cat car จะมีตัวอักขระ ca ร่วมกัน
สมมติผมจะใช้ฟังก์ชั่น countif มานับว่า ในช่วงข้อมูลนี้ มีกี่ cell ที่มีตัวอักษร 3 ตัว โดยตัวแรกจะเป็นตัวอะไรก็ได้ แต่ 2 ตัวหลังต้องเป็น ตัว a และตัว t ผมสามารถเขียนฟังก์ชั่น countif ได้ดังนี้
(หากใครจำวิธีใช้ฟังก์ชั่น countif ไม่ได้ลองดูตามลิ้งด้านล่างครับ)
จะเห็นว่าฟังก์ชั่น countif ใน argument 2 หรือ criteria กำหนดว่า "?at" หมายถึงให้นับ cell ที่มีตัวอักษรตัวแรกเป็นตัวอะไรก็ได้ 1 ตัว แต่ต้องตามด้วย "at"
ดังนั้น ผลลัพธ์ที่ได้จึงนับได้ 2 cell คือ A1, A3 (ตามที่ไฮไลท์สีเหลือง) เพราะเป็นไปตามเงื่อนไข
สังเกตว่า cell A2 จะไม่ได้นับมา แม้ว่าจะมีตัวอักษร at ต่อท้าย เพราะมีตัวอักษร e มาด้วย
ลองดูตัวอย่างอื่นครับ หลักการเดียวกัน
ลองสังเกตตัวอย่างด้านล่างครับ จะเห็นว่า ผมกำหนด criteria เป็น "???" หมายความว่า ให้นับ cell ที่มีตัวอักษร 3 ตัว โดยจะเป็นตัวอักขระใดก็ได้
จะเห็นว่าผลลัพธ์ได้ 4 คือ cell A1 A3 A4 A5 ที่เป็นไปตามเงื่อนไข ส่วน cell A2 ไม่เป็นไปตามเงื่อนไขเพราะมี 4 ตัวอักขระ
หากกำหนด criteria เป็น "????" หมายความว่า ให้นับ cell ที่มีตัวอักขระ 4 ตัว อะไรก็ได้ ดังนั้น cell A2 จึงเป็นไปตามเงื่อนไขเพียง cell เดียว
หากกำหนด criteria เป็น "?????" ก็จะได้ผลลัพธ์ 0 เนื่องจากไม่มี cell ใดมีอักขระเกิน 5 ตัว
2. * เครื่องหมายดอกจัน (asterisk)
อักขระพิเศษตัวนี้มีความสามารถในการเป็นตัวอักษรอะไรก็ได้และไม่จำกัดจำนวน รวมถึงการไม่มีตัวอักษร ลองมาดูตัวอย่างกันเลยครับ
ผมให้คอลัมน์ A เป็นชื่อคน ส่วนคอลัมน์ B เป็นตัวเลขแทนจำนวนเงิน สมมติผมต้องการหาผลรวม ว่าผู้ชายทั้งหมดรวมกันจะมีเงินเท่าไร ผมจะนำฟังก์ชั่น sumif มาใช้ดังนี้ครับ (หากใครจำวิธีใช้ฟังก์ชั่น sumif ไม่ได้ลองดูตามลิ้งด้านล่างครับ)
ใน argument ที่ 2 criteria ผมกำหนดเป็น "นาย*" หมายความว่า ให้รวมจำนวนตัวเลขในช่วง B1:B10 หากข้อมูลอ้างอิงในช่วง A1:A10 ขึ้นต้นด้วยคำว่า "นาย" และตามด้วยอะไรก็ได้และกี่ตัวก็ได้เพราะใส่เครื่องหมาย *
หากเราไม่ใส่เครื่องหมาย * ฟังก์ชั่น sumif จะหาเฉพาะที่ตรงกับคำว่า "นาย" เท่านั้น ทำให้ผลลัพธ์ออกมาเป็น 0 ตามภาพข้างล่างครับ
ลองดูอีกตัวอย่างครับ
ตามภาพบนลองกำหนด criteria เป็น "นาง*" ฟังก์ชั่น sumif จะรวมทั้งที่เป็น นางและนางสาว หากต้องการหาที่เป็นนางสาวเราก็เปลี่ยน criteria เป็น "นางสาว*" ดังภาพล่างครับ
ลองดูการใช้อีกแบบครับ
ตามภาพด้านบนผมกำหนด criteria เป็น "น*ด" หมายความว่าหากข้อมูลอ้างอิงในช่วง A1:A10 ขึ้นต้นด้วยคำว่า "น" และตามด้วยอะไรก็ได้กี่ตัวก็ได้ แต่ลงท้ายต้องเป็น "ด" ให้รวมตัวเลขในคอลัมน์ B1:B10 ผลลัพธ์ก็ปรากฏตามรูปด้านบนครับ
หรือจะแบบนี้ก็ได้ครับ
กำหนด criteria เป็น "*ง*ด" หมายความว่าหากข้อมูลอ้างอิงในช่วง A1:A10 ขึ้นต้นด้วยอะไรก็ได้กี่ตัวก็ได้ แต่ให้มีตัวอักษร "ง" ตรงกลางช่วงใดก็ได้ และตามด้วยอะไรก็ได้ กี่ตัวก็ได้ แต่ลงท้ายต้องเป็น "ด" ให้รวมตัวเลขในคอลัมน์ B1:B10 ผลลัพธ์ก็ปรากฏตามรูปด้านบนครับ
และสุดท้ายแล้วครับ
กำหนด criteria เป็น "นางเก้า*" หมายความว่าหากข้อมูลอ้างอิงในช่วง A1:A10 ขึ้นต้นด้วยคำว่า "นางเก้า" และตามด้วยอะไรก็ได้กี่ตัวก็ได้ ซึ่งอะไรก็ได้กี่ตัวก็ได้ ผมอยากจะชี้ให้เห็นว่า หมายรวมถึงจะมีหรือไม่มีก็ได้ ให้รวมตัวเลขในคอลัมน์ B1:B10 ผลลัพธ์ก็ปรากฏตามรูปด้านบนครับ จะเห็นว่าแตกต่างจากการใช้เครื่องหมาย ? เพราะเครื่องหมาย ? หมายถึงต้องมี 1 ตัว
3. ~ เครื่องหมายทิลเดอ (tilde)
เครื่องหมายตัวสุดท้ายแล้วครับ (ผมบอกเลยว่าไม่เคยใช้เลยครับ) เครื่องหมาย ~ มีความสามารถคือทำให้เครื่องหมาย ? และ * เป็นตัวของมันเองครับ คือไม่ใช้อักขระพิเศษ งงกันไหมครับ ลองมาดูตัวอย่างกันครับ (ตัวอย่างก็คิดไม่ค่อยออก 55)
ผมกำหนด criteria เป็น "I*" ผลลัพธ์ได้ 2 ก็ปกติตามที่อธิบายเรื่องเครื่องหมาย *
แต่หากผมเพิ่มเครื่องหมาย ~ ไปหน้าเครื่องหมาย *
ผลลัพธ์ของฟังก์ชั่น countif ได้ 0 เนื่องจากไม่สามารถค้นหา "I*" ในช่วงข้อมูลได้ ดังภาพด้านล่างครับ
criteria กำหนดว่าให้หา "I*" ซึ่ง ในช่วงข้อมูล มีแต่ "I*U"
แต่หากพิจารณาดีดี อาจมองว่าที่ผลลัพธ์เป็น 0 เพราะ criteria กำหนดว่าต้องขึ้นต้นด้วย "I~" ก่อนแล้วตามด้วยตัวอักขระใดๆกี่ตัวก็ได้ ซึ่งในช่วงข้อมูลไม่มี "I~" ขึ้นต้นเลย
ดังนั้นลองดูตัวอย่างล่างครับเพื่อความชัดเจนว่า เครื่องหมาย ~ มันทำงานจริงๆ
จะเห็นว่า criteria ผมกำหนดเป็น "I~*U" ซึ่งตอนนี้ฟังก์ชั่น countif มองว่า criteria คือ "I*U" ผลลัพธ์จึงนับได้ 2 ครับ
อีกสักตัวอย่างครับ
criteria ผมกำหนดเป็น "I~*~*U" ซึ่งตอนนี้ฟังก์ชั่น countif มองว่า criteria คือ "I**U" ผลลัพธ์จึงนับได้ 1 ครับ
จบแล้วครับกับเรื่อง wildcard character หวังว่าจะเป็นประโยชน์กับทุกคนนะครับ
โฆษณา