:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

การเทียบตัวเลขจากตารางว่าอยู่ในช่วงที่ต้องการหรือไม่

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
tstc79tt
Member
Member
Posts: 83
Joined: Tue Nov 13, 2012 4:39 pm

Re: การเทียบตัวเลขจากตารางว่าอยู่ในช่วงที่ต้องการหรือไม่

#21

Post by tstc79tt »

ผลออกมาถูกต้องครับ แต่มันยังมี คล้ายๆเดิมครับ ที่ว่าเมื่อตัวเลขคล้ายคลึงกันมันจะบอกค่าออกมาเท่ากัน

เช่น 5.1.12.10 กับ 5.1.1.210

ทำให้ถึงแม้ค่าจุดทศนิยมไม่ตรงกันกับในตาราง แต่เลขชุดเดียวกันก็ขึ้น Y
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การเทียบตัวเลขจากตารางว่าอยู่ในช่วงที่ต้องการหรือไม่

#22

Post by snasui »

:D ปรับสูตรใหม่เป็น

ที่ J3 คีย์

=LOOKUP(SUM(IF($C$3:$C$11<>"",IF(SUBSTITUTE($C$3:$C$11,".","")+0<=SUBSTITUTE(I3,".","")+0,IF(SUBSTITUTE($D$3:$D$11,".","")+0>=SUBSTITUTE(I3,".","")+0,1)))),{0,1},{"N","Y"})

Ctrl+Shift+Enter > Copy ลงด้านล่าง

Note: Ctrl+Shift+Enter หมายถึงเมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)} ปีกกานี้คีย์เข้าไปเองไม่ได้ ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
tstc79tt
Member
Member
Posts: 83
Joined: Tue Nov 13, 2012 4:39 pm

Re: การเทียบตัวเลขจากตารางว่าอยู่ในช่วงที่ต้องการหรือไม่

#23

Post by tstc79tt »

ขอบคุณครับ
ผมอยากถามว่าจะมี ทางไหนมันมีปัญหาที่ให้มันแยกความแตกต่างระหว่าง 1.1.21.21 กับ 1.1.2.121ได้อย่างไรครับ :D
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การเทียบตัวเลขจากตารางว่าอยู่ในช่วงที่ต้องการหรือไม่

#24

Post by snasui »

:shock: ให้แนบทุกตัวอย่างในปัจจุบันที่พบว่ามีปัญหามาครับ
tstc79tt
Member
Member
Posts: 83
Joined: Tue Nov 13, 2012 4:39 pm

Re: การเทียบตัวเลขจากตารางว่าอยู่ในช่วงที่ต้องการหรือไม่

#25

Post by tstc79tt »

นี่ครับผมเขียนกำกับไว้แล้ว
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การเทียบตัวเลขจากตารางว่าอยู่ในช่วงที่ต้องการหรือไม่

#26

Post by snasui »

:D การเช็คหมายเลข IP คงต้องพึ่ง VBA ลองดูตัวอย่าง Code ที่นี่ครับ viewtopic.php?f=9&t=3830
tstc79tt
Member
Member
Posts: 83
Joined: Tue Nov 13, 2012 4:39 pm

Re: การเทียบตัวเลขจากตารางว่าอยู่ในช่วงที่ต้องการหรือไม่

#27

Post by tstc79tt »

Code: Select all

Sub CheckIPInterVal()
    Dim r As Range, rAll As Range
    Dim rt As Range, rtAll As Range
    Dim lng As Long, ts As Variant
    Dim tt As Variant, c As Boolean
    With Sheets("Sheet2")
        Set rAll = Sheet2.Range("e3", _
            .Range("e" & Rows.Count).End(xlUp))
        Set rtAll = Sheet1.Range("c17", _
            .Range("c" & Rows.Count).End(xlUp))
    End With
    lng = 2
    For Each r In rAll
        c = False
        For Each rt In rtAll
            ts = Split(r, ".")
            tt = Split(rt, ".")
            If CInt(ts(0)) >= CInt(tt(0)) And _
                CInt(ts(1)) >= CInt(tt(1)) And _
                CInt(ts(2)) >= CInt(tt(2)) And _
                CInt(ts(3)) >= CInt(tt(3)) Then
                    tt = Split(rt.Offset(0, 1), ".")
                    If CInt(ts(0)) <= CInt(tt(0)) And _
                        CInt(ts(1)) <= CInt(tt(1)) And _
                        CInt(ts(2)) <= CInt(tt(2)) And _
                        CInt(ts(3)) <= CInt(tt(3)) Then
                        lng = lng + 1
                        r.Offset(0, 1) = "Y"
                        c = True
                        Exit For
                    End If
            End If
        Next rt
        If c = False Then
            r.Offset(0, 1) = "N"
        End If
    Next r
End Sub

ผมแก้ถูกไหมครับ หากต้องการทำงานแยกชีต
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การเทียบตัวเลขจากตารางว่าอยู่ในช่วงที่ต้องการหรือไม่

#28

Post by snasui »

:D ให้ถามที่ติดปัญหา ส่วนถูกหรือไม่ถูกต้องลองเองครับ
tstc79tt
Member
Member
Posts: 83
Joined: Tue Nov 13, 2012 4:39 pm

Re: การเทียบตัวเลขจากตารางว่าอยู่ในช่วงที่ต้องการหรือไม่

#29

Post by tstc79tt »

snasui wrote::D ให้ถามที่ติดปัญหา ส่วนถูกหรือไม่ถูกต้องลองเองครับ
ได้แล้วครับ :D
tstc79tt
Member
Member
Posts: 83
Joined: Tue Nov 13, 2012 4:39 pm

Re: การเทียบตัวเลขจากตารางว่าอยู่ในช่วงที่ต้องการหรือไม่

#30

Post by tstc79tt »

ตอนนี้ผมติดตรงที่ว่า เมื่อ มันมี ตัวอักษรอื่น มาแทรกเช่น
N/A ตอนกดรันมันขึ้นว่า Type Mismatch
0 ผมลองเปลี่ยนจาก ที่จะขึ้น N/A ให้เป็น 0 แทน คร่าวนี้มันขึ้น Script out of range ครับ

ผมต้องการใช้ N/A น่ะครับ เมื่อใช้ N/A ช่องสุดท้าย ก็ให้กลายเป็น N/A ด้วยแทนที่จะ Y หรือ N
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การเทียบตัวเลขจากตารางว่าอยู่ในช่วงที่ต้องการหรือไม่

#31

Post by snasui »

:D ลองดูตัวอย่างปรับ Code เป็นด้านล่างครับ

'...Other code คือ Code อื่น ๆ ที่ไม่จำเป็นต้องปรับ

Code: Select all

'...Other code
For Each r In rAll
        c = False
        For Each rt In rtAll
            If r = "N/A" Then
                r.Offset(0, 1) = "N/A"
                c = True
                Exit For
            End If
            ts = Split(r, ".")
            tt = Split(rt, ".")
'...Other code
Post Reply