: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
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

รบกวนการทำ Validation

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
wisit
Bronze
Bronze
Posts: 348
Joined: Sun Sep 25, 2011 9:42 pm
Excel Ver: 2019

รบกวนการทำ Validation

#1

Post by wisit »

รบกวนช่วยหาสูตรการทำ Validation ของคอล์ลัมน์ B โดยคีย์ได้ไม่เกิน 3 อักษร โดยหลักที่ 1 จะคีย์ได้เฉพาะตัวเลข หลักที่ 2 จะคีย์ได้เฉพาะตัวเลขและตัวอักษร แต่หลักที่ 3 จะต้องเป็นอักษรเท่านั้น และถ้าคีย์ 2 หลัก จะต้องเป็นตัวเลขและตัวอักษรเท่านั้น ซึ่งผมทำสูตรดังนี้
=AND(LEN(B1)<=3,ISNUMBER(LEFT(B1)+0),TEXT(RIGHT(B1)+0),B1>="000",C1<="999") แต่เมื่อคีย์ตัวเลขและตามข้อความมันก็ฟ้องข้อความเตือนไม่รู้ผมเขียนสูตรผิดหรือเปล่า ส่วนสูตรนี้ได้จากการประยุกต์จากสูตรอาจารย์คนควนครับ :mrgreen:
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: รบกวนการทำ Validation

#2

Post by snasui »

:D ลองตามนี้ครับ

ที่ Validation คีย์สูตร

=AND(LEN(B1)<=3,OR(AND(ISNUMBER(LEFT(B1)+0),NOT(ISNUMBER(MID(B1,2,1)+0))),AND(ISNUMBER(LEFT(B1)+0),NOT(ISNUMBER(MID(B1,2,1)+0)),NOT(ISNUMBER(RIGHT(B1)+0)))))
wisit
Bronze
Bronze
Posts: 348
Joined: Sun Sep 25, 2011 9:42 pm
Excel Ver: 2019

Re: รบกวนการทำ Validation

#3

Post by wisit »

อาจารย์ครับเวลาว่างสูตรใน Validation มันฟ้องเตือนว่า
The Formula you typed contains an error ครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: รบกวนการทำ Validation

#4

Post by snasui »

:D ผมคีย์วงเล็บปิดตกไปตัวนึงครับ แก้ไขให้แล้วตามด้านบนครับ :tt: :roll:
wisit
Bronze
Bronze
Posts: 348
Joined: Sun Sep 25, 2011 9:42 pm
Excel Ver: 2019

Re: รบกวนการทำ Validation

#5

Post by wisit »

ขอบคุณครับอาจารย์ :D ทำได้แล้ว แต่ติดนิดหนึ่งครับ ตรงเมื่อเราคีย์ 1h มันจะฟ้อง ซึ่งผมไม่้ต้องการให้ฟ้อง แต่ถ้าคีย์ตัวเลขอย่างเดียวโดยไม่มีตัวอักษรให้มันฟ้อง ซึ่งก็ตรงตามที่ต้องการ ติดที่เมื่อเราคีย์ 2 หลัก กล่าวคือ หลักแรกต้องเป็นตัวเลข หลักที่สองต้องเป็นตัวอักษร (ถ้ามีสองหลัก) แต่ถ้ามี 3 หลัก 2 หลักแรกต้องเป็นตัวเลขเท่านั้น หลักที่สามต้องเป็นตัวอักษรเท่านั้น รบกวนอาจารย์อีกรอบครับ :mrgreen: และรอบกวนอาจารย์ช่วยอธิบายสูตรดังกล่าวหน่อยครับ ขอบคุณอาจารย์มาก ๆ ครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: รบกวนการทำ Validation

#6

Post by snasui »

:D เปลี่ยนสูตรใน Validation เป็นตามด้านล่างครับ

=OR(AND(LEN(B1)=2,ISNUMBER(LEFT(B1)+0),NOT(ISNUMBER(MID(B1,2,1)+0))),AND(LEN(B1)=3,ISNUMBER(LEFT(B1)+0),ISNUMBER(MID(B1,2,1)+0),NOT(ISNUMBER(RIGHT(B1)+0))))

คำอธิบายส่วนประกอบหลัก
  1. จากสูตรข้างบนหมายถึง AND(LEN(B1)=2,ISNUMBER(LEFT(B1)+0),NOT(ISNUMBER(MID(B1,2,1)+0))) หรือ AND(LEN(B1)=3,ISNUMBER(LEFT(B1)+0),ISNUMBER(MID(B1,2,1)+0),NOT(ISNUMBER(RIGHT(B1)+0))) เป็นจริงหรือไม่ ถ้าเป็นจริงอย่างใดอย่างใดอย่างหนึ่งไม่ว่าชุดหน้าหรือชุดหลังก็ถือว่าเป็นจริง คือสามารถคีย์ได้
  2. สำหรับชุดแรกคือ AND(LEN(B1)=2,ISNUMBER(LEFT(B1)+0),NOT(ISNUMBER(MID(B1,2,1)+0))) หมายถึง LEN(B1)=2 และ ISNUMBER(LEFT(B1)+0) และ NOT(ISNUMBER(MID(B1,2,1)+0)) เป็นจริงหรือไม่ ซึ่งต้องเป็นจริงทั้งสามเงื่อนไขถึงจะถือว่าเป็นจริง ถ้าเป็นเท็จแค่เงื่อนไขเดียวก็จะถือว่าเป็นเท็จ
  3. สำหรับชุดที่สองคือ AND(LEN(B1)=3,ISNUMBER(LEFT(B1)+0),ISNUMBER(MID(B1,2,1)+0),NOT(ISNUMBER(RIGHT(B1)+0))) หมายความว่า LEN(B1)=3 และ ISNUMBER(LEFT(B1)+0) และ ISNUMBER(MID(B1,2,1)+0) และ NOT(ISNUMBER(RIGHT(B1)+0)) เป็นจริงหรือไม่ ซึ่งจะต้องเป็นจริงทั้ง 4 เงื่อนไขจึงจะถือว่าเป็นจริง ถ้าเป็นเท็จแค่เงื่อนไขเดียวจะถือว่าเป็นเท็จ
wisit
Bronze
Bronze
Posts: 348
Joined: Sun Sep 25, 2011 9:42 pm
Excel Ver: 2019

Re: รบกวนการทำ Validation

#7

Post by wisit »

:D ขอบคุณอาจารย์มากครับ ได้ตรงตามที่ต้องการ ผมคิดว่าจะต้องใช้ VBA ทำซะอีก ขอบคุณอาจารย์เป็นอย่างสูง ที่แนะนำและให้ความรู้แก่กระผม :)
wisit
Bronze
Bronze
Posts: 348
Joined: Sun Sep 25, 2011 9:42 pm
Excel Ver: 2019

Re: รบกวนการทำ Validation

#8

Post by wisit »

อาจารย์ครับ ผมรบกวนอีกครั้งครับ พอดีพึ่งเจอปัญหาครับ จากสูตรที่อาจารย์เคยแนะนำ
=AND(LEN(F3)=3,ISNUMBER(LEFT(F3)+0),ISNUMBER(RIGHT(F3)+0),F3>="000",F3<="999") (จริง ๆ อาจารย์แนะนำแค่การคีย์เพียง 2 หลัก แต่ผมได้ปรับเปลี่ยนเป็น 3 หลักเองครับ)
ซึ่งมันมีปัญหาคือ เมื่อเราคีย์ 1/3 หรือ 1*4 โปรแกรมมันจะไม่เตือน แต่ถ้าคีย์ *14 โปรแกรมมันจะเตือน กล่าวคือ หากคีย์หลักที่ 2 ซึ่งไม่ได้เป็นตัวเลขมันจะไม่ฟ้อง ซึ่งผมไม่รู้จะใช้สูตรใดดีในการแก้ปัญหาตรงค่าหลักที่ 2 หากใช้สูตร MID ซึ่งเป็นสูตรตัดตัวอักษรใช่หรือเปล่าครับอาจารย์ ซึ่งผมไม่รู้จะใช้ิสูตรใดดีครับ รบกวนท่านอาจารย์ช่วยด้วยครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: รบกวนการทำ Validation

#9

Post by snasui »

:D แสดงว่าเงื่อนไขคือต้องเป็นตัวเลขทั้ง 3 ตัวห้ามเป็นอักขระอื่นใช่หรือไม่ครับ :?:
wisit
Bronze
Bronze
Posts: 348
Joined: Sun Sep 25, 2011 9:42 pm
Excel Ver: 2019

Re: รบกวนการทำ Validation

#10

Post by wisit »

ใช่ครับอาจารย์ ต้องเป็นตัวเลขทั้ง 3 หลักครับ รบกวนอาจารย์ช่วยแนะนำสูตรด้วยครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: รบกวนการทำ Validation

#11

Post by snasui »

:D กรณีต้องเป็นตัวเลขทั้ง 3 ตัวสามารถเปลี่ยนสูตรเป็นด้านล่างครับ

=AND(LEN(F3)=3,F3+0>=0,F3+0<=999)
wisit
Bronze
Bronze
Posts: 348
Joined: Sun Sep 25, 2011 9:42 pm
Excel Ver: 2019

Re: รบกวนการทำ Validation

#12

Post by wisit »

อาจารย์ครับสูตรใช้ได้ผลดีครับ :D แต่ติดตรงเมื่อเราคีย์ค่า .11 ค่า 1.1 และค่า 11. มันจะไม่ฟ้องเตือนครับ รบกวนอาจารย์ช่วยแนะนำอีกครั้งครับ และต้องของพระคุณอาจารย์อย่างสูงครับที่กรุณาแนะนำสูตรต่าง ๆ ทีดีแก่ผม :P
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: รบกวนการทำ Validation

#13

Post by snasui »

:shock: แสดงว่าแจ้งเงื่อนไขมาไม่ถูกต้อง ซึ่งผมได้ถามย้ำไปแล้วตามด้านล่างครับ :ard: ลองปรับมาเองดูก่อนตามเงื่อนไขจริง ๆ ที่ต้องการ ติดตรงไหนก็มาถามกันต่อครับ
snasui wrote: :D แสดงว่าเงื่อนไขคือต้องเป็นตัวเลขทั้ง 3 ตัวห้ามเป็นอักขระอื่นใช่หรือไม่ครับ :?:
wisit wrote:ใช่ครับอาจารย์ ต้องเป็นตัวเลขทั้ง 3 หลักครับ รบกวนอาจารย์ช่วยแนะนำสูตรด้วยครับ
wisit
Bronze
Bronze
Posts: 348
Joined: Sun Sep 25, 2011 9:42 pm
Excel Ver: 2019

Re: รบกวนการทำ Validation

#14

Post by wisit »

ครับอาจารย์เดี๋ยวผมจะลองทำดูครับ ขอบคุณอาจารย์มากครับ :D
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: รบกวนการทำ Validation

#15

Post by snasui »

:sg: ต้องขออภัยคุณ wisit ครับ ผมเข้าใจคลาดเคลื่อนเอง เงื่อนไขชัดเจนแล้วครับ คือเป็นตัวเลขทั้งสามหลัก :oops:

ลองเปลี่ยนสูตรเป็นตามด้านล่างครับ

=And(len(F3)=3,Isnumber(Mid(F3,1,1)+0),Isnumber(Mid(F3,2,1)+0),Isnumber(Mid(F3,3,1)+0))
wisit
Bronze
Bronze
Posts: 348
Joined: Sun Sep 25, 2011 9:42 pm
Excel Ver: 2019

Re: รบกวนการทำ Validation

#16

Post by wisit »

เย้ ใช้ได้ตรงตามต้องการเลยครับ :D ขอบพระคุณอาจารย์มากครับ สุดยอดจริง ๆ ครับ แต่ผมขอรบกวนอาจารย์ช่วยอธิบายความหมายและวิธีใช้ เพราะผมยังไม่ค่อยเข้าใจในสูตรดังกล่าวครับ
Isnumber(Mid(F3,1,1)+0) มีความหมายอย่างไร (+ 0 เป็นการเปลี่ยนจากตัวอักษรให้เป็นตัวเลขใช่หรือเปล่าครับ)
Isnumber(Mid(F3,2,1)+0) มีความหมายอย่างไร
Isnumber(Mid(F3,3,1)+0) มีความหมายอย่างไร

รบกวนอาจารย์ด้วยครับ และขอบคุณอาจารย์มาก ๆ ครับ ที่ช่วยแนะนำสูตร ไม่งั้นผมคงใช้เวลาคิดเป็นเดือน หรือไม่ก็คิดไม่ออกครับ :mrgreen:
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: รบกวนการทำ Validation

#17

Post by snasui »

:D ฟังก์ชั่น Mid เป็นการตัดข้อความตามตำแหน่งต่าง ๆ โดยระบุว่าต้องการตัดมาจำนวนกี่อักขระ เช่น Mid(A1,1,2) ความหมายคือ ให้ตัดข้อความใน A1 โดยเริ่มจากอักขระที่ 1 มาจำนวน 2 อักขระ
ฟังก์ชั่น Isnumber เป็นการตรวจสอบว่าค่านั้น ๆ มีรูปแบบเป็นตัวเลขหรือไม่ หากเป็นตัวเลขจะแสดงค่า True หากไม่ใช่จะแสดงค่า False
wisit
Bronze
Bronze
Posts: 348
Joined: Sun Sep 25, 2011 9:42 pm
Excel Ver: 2019

Re: รบกวนการทำ Validation

#18

Post by wisit »

ขอบคุณครับอาจารย์ที่อธิบายจนพอที่จะเข้าใจขึ้นมาบ้าง แต่สูตร (Mid(F3,3,1)+0) ค่า + 0 เป็นการเปลี่ยนจากตัวอักษรให้เป็นตัวเลขใช่หรือเปล่าครับ :tt: ไม่มั่นใจเลยถามเพื่อความชัวร์คร้บ
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: รบกวนการทำ Validation

#19

Post by snasui »

:P เข้าใจถูกต้องแล้วครับ :D
wisit
Bronze
Bronze
Posts: 348
Joined: Sun Sep 25, 2011 9:42 pm
Excel Ver: 2019

Re: รบกวนการทำ Validation

#20

Post by wisit »

:P ขอบพระคุณอาจารย์มากครับ :D
Post Reply