การค้นหาตัวเลขทะเบียนรถที่ถูกโฉลก

สำหรับท่านที่ต้องการเลือกเลขทะเบียนรถเองโดยมีเงื่อนไขในการคัดเลือก ยกตัวอย่างเช่นต้องการให้

  1. ให้รวมตัวเลขทุกตัวแล้วได้ค่าเป็น 9, 18, 27 หรือ 36
  2. สามารถคัดชุดที่มีตัวเลขที่ไม่ต้องการออกไปได้ด้วย ยกตัวอย่างเช่นไม่รวมตัวเลขที่มีค่าต่อไปนี้ 0, 3, 7, 8

การหาค่าดังกล่าวสามารถใช้สูตรหรือ VBA มาคำนวณได้ครับ

กรณีใช้สูตรในการคำนวณมีวิธีการดังนี้

  1. เปิดสมุดงานใหม่แล้วเลือกชีทว่าง
  2. ที่ A1 คีย์ No. และ ที่ B1 คีย์ Select เพื่อเป็นชื่อ Field
  3. ที่ A2 คีย์ Row()-1 > Copy ลงด้านล่างตามต้องการ
  4. ที่ B2 คีย์สูตร
    =IF(MIN(LEN(SUBSTITUTE(A2,{0,3,7,8},"")))<LEN(A2),"",IF(ISNUMBER(MATCH(SUM(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)+0),{9,18,27,36},0)),SUM(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)+0),""))
    Ctrl+Shift+Enter > Copy ลงด้านล่าง

กรณีใช้ VBA ในการคำนวณมีวิธีการดังนี้

  1. กดแป้น Alt+11 เพื่อเปิดหน้าต่าง VBE
  2. คลิกเมนู Insert > Module
  3. Copy Code ด้านล่างไปวาง
Sub ListNum()
    Dim i As Integer, bln As Boolean
    Dim c As Integer, j As Integer
    Dim a As String, s As Integer
    For i = 1 To 9999
        bln = False
        s = 0
        For j = 1 To Len(CStr(i))
            a = Mid(i, j, 1)
            Select Case a
                Case 0, 3, 7, 8
                    bln = True
                    Exit For
                Case Else
                    s = s + a
            End Select
        Next j
        If bln = False Then
            Select Case s
                Case 9, 18, 27, 36
                    c = c + 1
                    Cells(c + 1, 1) = i
            End Select
        End If
    Next i
End Sub
  1. กดแป้น Alt+Q เพื่อกลับมายังโปรแกรม Excel
  2. กดแป้น Alt+F8 > เลือก ListNum > Run
  3. โปรแกรมจะทำการ Run ตัวเลขมาให้ตามเงื่อนไขที่ต้องการ

ภาพตัวอย่างการใช้งาน

ListNum
ภาพ 1 การ Run Code

Revised: January 29, 2017 at 07:11

This site uses Akismet to reduce spam. Learn how your comment data is processed.