วันศุกร์ที่ 17 กุมภาพันธ์ พ.ศ. 2555

ฟังก์ชัน like ของ Excel

ขึ้นต้นว่า ฟังก์ชัน like ของ Excel ก็ผิดเสียแล้ว เพราะ Excel ไม่มีฟังก์ชัน likeถ้าต้องการเปรียบเทียบ เหมือนกับการใช้ like ของ Excel จะทำอย่างไร

วันก่อนผมต้องการนับอาชีพของคน จำนวน 24,000 คน จะนับทีละเซลล์คงไม่ไหว ปัญหาคือว่า บางคนเขียนอาชีพเดียวกัน ต่างกัน เช่น ลูกจ้าง รับจ้าง ลูกจ้างบริษัท ลูกจ้างชั่วคราว เป็นต้น อาชีพพวกนี้ ถือเป็นอาชีพรับจ้างทั้งหมด จึงต้องนับเป็นอาชีพเดียวกัน

วิธีการ
  1. สร้างสูตร โดยใช้หน้าต่าง VBA เขียนโค้ดเหมือนกับสูตร like เพื่อนับว่า อาชีพดังกล่าว มีคำว่า จ้าง หรือไม่
  2. ใช้ฟังก์ชัน Countif() เพื่อนับจำนวนที่เป็นจริง คือ มีคำว่า จ้าง
การสร้าง ฟังก์ชัน like
  1. เพิ่ม Developer Tab บนริบบิ้น (Excel 2010 ไปที่ File > Option > Customize Ribbon > Developer)
  2. เปิดหน้าจอเขียนโค้ด (ไปที่ Developer Tab >  Visual Basic หรือกด Alt + F11)
  3. ถ้าไม่เห็นหน้าจอเขียนโค้ด ให้เลือกเมนู View > Code
  4. พิมพ์ฟังก์ชัน ดังภาพ
    Function isLike(myText As String, myWord As String) As Boolean
          isLike = " " & myText & " " Like "*" & myWord & "*"
     End Function
  5. กดปุ่ม Save และบันทึกเป็นไฟล์ xlsm เพื่อให้สามารถใช้โค้ด VBA ได้
  6. เรียกใช้ ฟังก์ชันนี้ ใน Sheet ที่มีข้อมูล
  7. ถ้าอาชีพอยู่ที่เซลล์ B2 ให้พิมพ์

                                                        =isLike(B2,"*จ้าง*")

    ดังภาพ
  8. จะได้ค่าเป็น TRUE เพราะที่เซลล์ A2 มีคำว่า จ้างอยู่ด้วย
  9. ลาก Fill Handle  จะได้ดังภาพ
  10. ที่เซลล์ D8 ใช้ฟังก์ชัน Countif() ดังนี้

                                                         =countif(D2:D7,true)

    จะได้ ดังภาพ

    ผลที่ได้คือ 3 เพราะมีอาชีพที่มีคำว่า จ้าง อยู่ 3 แห่ง

ไม่มีความคิดเห็น:

แสดงความคิดเห็น