🖐
เมื่อสูตร VLookup หาค่าไม่พบ ทั้งๆที่มั่นใจว่ามีค่านั้นเก็บอยู่แน่ๆ แต่สูตรกลับตอบว่า #N/A มักได้รับคำแนะนำให้ทำการ Data Cleansing ใช่ไหมครับ แล้วเครื่องมือที่แนะนำให้ใช้ตามล้างตามเช็ดก็หนีไม่พ้น Power Query
นอกจากค่านั้นหาไม่พบเพราะสะกดไม่ตรงกันแล้ว อาจเป็นเพราะไม่ได้เก็บข้อมูลไว้ในโครงสร้างที่พร้อมจะนำไปใช้ต่อ ซึ่งก็ต้องใช้ Power Query อีกนั่นแหละ
ก่อนจะไปถึงขั้น Power Query ลองใช้เครื่องหมาย * ? ในการค้นหาค่าแล้วหรือยัง เช่น
ใช้สูตร VLookup หาคำว่า Bangkok แต่ในฐานข้อมูลกลับสะกด Bangk0k เลยหาค่าไม่พบ ให้หาโดยใช้เครื่องหมาย Wild Card * หรือ ? แทนแบบนี้ รับรองว่าหาเจอแน่
👉 Bangk* หมายถึง ให้หาคำที่นำหน้าด้วย Bangk แล้วต่อท้ายด้วยอะไรก็ได้กี่ตัวก็ได้
👉 Bangk?? หมายถึง ให้หาคำที่นำหน้าด้วย Bangk แล้วต่อท้ายด้วยอะไรก็ได้อีก 2 ตัว
👉 Bangk?k หมายถึง ให้หาคำที่นำหน้าด้วย Bangk แล้วต่อท้ายด้วยอะไรก็ได้ 1 ตัวและต่อท้ายจบด้วยตัว k
👉 ?angk* หมายถึง ให้หาคำที่นำหน้าด้วยตัวอะไรก็ได้ 1 ตัวแล้วต่อด้วย angk แล้วต่อท้ายด้วยอะไรก็ได้กี่ตัวก็ได้
นอกจาก VLookup แล้วยังใช้กับสูตร Match SumIF ได้อีกด้วย ส่วนสูตร SumProduct ใช้ Wild Card ไม่ได้แต่สามารถใช้สูตร Left Right Mid ซ้อนเข้าไปในการค้นหาบางส่วนของคำได้ เช่น
=SumProduct( ( Mid(DataRange,2,4)="angk" )*NumRange )
จะหายอดรวมของตัวเลขจากพื้นที่ NumRange ตามลำดับเดียวกันกับข้อมูลใน DataRange ที่มีตัวอักษร angk อยู่ข้างใน
Mid(DataRange,2,4) ใช้แยกตัวอักษรตั้งแต่ตัวที่ 2 ไป 4 ตัว
ถ้าเก่งสูตรอาเรย์ จะสามารถหาค่าที่ต้องการได้โดยไม่ต้องห่วงเรื่องโครงสร้างตาราง ไม่ต้องเสียเวลาไป Data Cleansing หรอกครับ เพราะยากที่จะตามล้างตามเช็ดไปตลอดทุกครั้งที่มีการกรอกข้อมูลใช่ไหม
ไม่มีทางรู้ได้เลยว่า มีค่าแผลงๆแบบไหนเข้ามาอีกแล้ว