: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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#41

Post by suka »

อาจารย์เข้าใจถูกต้องแล้วค่ะ ขออภัยตัวอย่างทำไม่ถูกต้องขอส่งตัวอย่างใหม่ค่ะ
ที่ชีทตัวอย่างค่ะ คอลัมน์ E ถึง R ได้ทำตัวอย่างใหม่แยกจาก คอลัมน์ C Unit Price คอลัมน์ D Discount เป็นราคาทั่วไป
UnitPriceได้แยกราย Suplier ด้วยค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30919
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#42

Post by snasui »

สูตรในการหา Discount ราย Supplier จากข้อมูลที่ปรับมาใหม่ ที่เซลล์ K4 คีย์

=IF(ISBLANK($D4)," ",INDEX(ตัวอย่างค่ะ!$E$2:$R$9,MATCH($D4,ตัวอย่างค่ะ!$B$2:$B$9,0),MATCH($D$2,ตัวอย่างค่ะ!$E$1:$R$1,0)+1))

Enter > Copy ลงด้านล่าง

สูตรในการหา Unit Price ราย Supplier ที่เซลล์ใด ๆ คีย์

=IF(ISBLANK($D4)," ",INDEX(ตัวอย่างค่ะ!$E$2:$R$9,MATCH($D4,ตัวอย่างค่ะ!$B$2:$B$9,0),MATCH($D$2,ตัวอย่างค่ะ!$E$1:$R$1,0)))

Enter > Copy ลงด้านล่าง สังเกตว่าไม่มี +1 เหมือนสูตรแรก
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#43

Post by suka »

ราคาทั่วไปใช้ในกรณีการสั่งซื้อไม่สม่ำเสมอค่ะ

ผลการใช้งานใช้ได้แล้วค่ะ เราต้องเพิ่มชีทตามตัวอย่างใช่ไหมคะ

อาจารย์คะสูตรที่มี +1 และไม่มีบวก การทำงานต่างกันตรงไหนตะ
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#44

Post by suka »

อาจารย์ขอถามเพิ่มค่ะ

ถ้าต้องเพิ่มชีทตามตัวอย่าง พอจะมีวิธีทำให้กระชับกว่านี้มั้ยคะ

ขอบพระคุณมากค่ะ
User avatar
snasui
Site Admin
Site Admin
Posts: 30919
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#45

Post by snasui »

:D ต้องเพิ่มชีทตามตัวอย่างครับและที่ทำอยู่นี้ก็กระชับดีอยู่แล้วครับ

สำหรับ +1 และไม่บวก 1 เพราะว่า Supplier รายเดียวกันมี 2 คอลัมน์ สังเกตได้ว่าคอลัมน์ที่ต้อง +1 เป็น Discount

ฟังกชั่น Match จะให้ผลลัพธ์เป็นลำดับที่ ดังนั้น หากไม่บวก 1 จะเจอลำดับที่ที่เป็น Unit Price เสมอ ไม่ว่าจะเป็น Supplier รายใด :mrgreen:
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#46

Post by suka »

ขอบคุณค่ะ

เหมือนสวรรค์โปรดให้ได้พบ และ มีฟอรัมถาม-ตอบ ดีๆๆ แบบนี้คอยช่วยคนอ่อนๆๆ "excel"
ขอบคุณอาจารย์ที่ใจดีคอยแนะนำ ศิษย์ทำผิดพลาดไม่มีบ่น ขอบคุณนะคะ
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#47

Post by suka »

อาจารย์คะ มาขอรบกวนอีกแล้วค่ะ

ได้เห็นเพื่อนสมาชิกในฟอรัมนี้ ทำปฏิทินเพื่อเลือกวันที่แทนการกรอกวันที่เห็นว่าจะสะดวกกว่าการกรอกใส่เพราะผู้กรอกจะติดใส่ พ.ศ.มากกว่า ค.ศ.
อาจารย์คะ ขอ Add Calendar เข้ามาใช้ในชีท Enterthedata ด้วยนะค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30919
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#48

Post by snasui »

:D ลอง Add เข้ามาเองดูก่อนครับ ติดตรงไหนค่อยถามมาเรื่อย ๆ ครับ จะได้สร้างความคุ้นเคยครับ :mrgreen:
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#49

Post by suka »

อาจารย์คะ Add Calendar เข้ามาใช้ในชีท Enterthedata ก่อนหน้านี้แล้วค่ะ
Add Calendar เข้ามาได้เฉยๆ แต่ยังไม่รู้วิธีทำให้มีการเชื่อมโยงการทำงานค่ะ
ขออาจารย์ช่วยแนะวิธีค่ะ :roll:
User avatar
snasui
Site Admin
Site Admin
Posts: 30919
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#50

Post by snasui »

:D ลองดู Code จากที่นี่ครับ http://www.snasui.com/viewtopic.php?p=3480#p3480

ลองนำ Code มาวางใน VBE ดูเองก่อน จากนั้นแนบไฟล์มาอีกรอบ ผมจะปรับ Code ให้ใหม่ จะได้สังเกต Code หลังการปรับครับ :mrgreen:
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#51

Post by suka »

อาจารย์คะ ลองนำ Code มาวางใน VBE ไม่ทราบจะวางตรงไหนเลยต่อท้ายมาค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30919
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#52

Post by snasui »

:D ไม่เป็นไรครับ

ให้วางใหม่ที่ชีท Enterthedata โดยใช้ Code ด้านล่างนี้ครับ

Code: Select all

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$L$1" Then
    With ActiveSheet.Calendar1
            .Visible = True
            .Top = ActiveCell.Offset(0, 0).Top
            .Left = ActiveCell.Offset(0, 1).Left
    End With
Else
    ActiveSheet.Calendar1.Visible = False
End If
Application.EnableEvents = True
End Sub
Private Sub Calendar1_Click()
ActiveCell.Value = Calendar1.Value
End Sub
จากนั้นทดสอบใช้งานดูครับ
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#53

Post by suka »

อาจารย์คะ

แจ้งผลค่ะ ใช้งานได้แล้วค่ะ :lol: :lol:

ขอบพระคุณมากค่ะ
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#54

Post by suka »

อาจารย์คะ มาขอรบกวนอีกแล้วค่ะ

ที่ชีท Enterthedata เวลาเลือก Group ถ้ามี SubGroup จำนวนมาก Drop Down List ที่เลือก Group ก็มากด้วย
ไม่ทราบพอมีวิธีทำให้เหลือแค่เป็นตัวแทน การเลือก Group แค่ Group ละ 1 ตัวแทนได้มั้ยคะ

อาจารย์คงไม่งงนะคะ แต่คนขอมีงงนิดหน่อยค่ะ
User avatar
snasui
Site Admin
Site Admin
Posts: 30919
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#55

Post by snasui »

:D ข้อมูล Group และ Subgroup ที่ทำอยู่ตอนนี้ใช้แบบไม่กระชับ โดยไปนำมาจากชีท Products มาใช้ เป็นการนำข้อมูลเดียวกันไปใช้หลายวัตถุประสงค์ ข้อมูล Group ใน Validation จึงซ้ำกัน ซึ่งจะเห็นว่าไม่เหมาะจะทำ Validation ครับ ควรสร้าง Group แบบไม่ซ้ำขึ้นมาต่างหากสำหรับไว้ทำ Validation ครับ :mrgreen:
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#56

Post by suka »

อาจารย์คะ

ได้เพิ่ม ชีท Cate_Group เข้ามาและทำการเปลี่ยน Group ใน Validation

ของเดิมGroup =OFFSET(Products!$A$2,0,0,COUNTA(Products!$A$2:$A$49998))

เปลี่ยนเป็น =OFFSET(Cate_Group!$A$2,0,0,COUNTA(Cate_Group!$A$2:$A$6))

Description ยังคงเดิมไม่ได้ปรับ ไม่ทราบว่าต้องปรับด้วยมั้ยคะ

=OFFSET(Products!$C$2,MATCH(Enterthedata!$B4,Products!$A$2:$A$49998,0)-1,0,COUNTIF(Products!$A$2:$A$49998,Enterthedata!$B4))

ส่งไฟล์แนบมาให้อาจารย์ช่วยตรวจดูว่ามีจุดไหนต้องแก้เพิ่มบ้างค่ะ (คือไม่แน่ใจว่าที่ทำมาเข้าใจถูกมั้ย)
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30919
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#57

Post by snasui »

:D จากสูตร

=OFFSET(Cate_Group!$A$2,0,0,COUNTA(Cate_Group!$A$2:$A$6))

เป็นการนับแค่ $A$2:$A$6 หากมีการเพิ่มข้อมูลเข้ามาเรื่อย ๆ จะต้องปรับสูตรใหม่ ดังนั้น ให้ปรับเป็นตามด้านล่างเพื่อให้เกิดความยืดหยุ่นและสามารถเพิ่มข้อมูลได้ทั้งคอลัมน์

=OFFSET(Cate_Group!$A$2,0,0,COUNTA(Cate_Group!$A$2:$A$65536))

และจาก

=OFFSET(Products!$C$2,MATCH(Enterthedata!$B4,Products!$A$2:$A$49998,0)-1,0,COUNTIF(Products!$A$2:$A$49998,Enterthedata!$B4))

ใช้ได้อยู่แล้วครับ มีการเผื่อไว้เกือบ 5 หมื่นบรรทัด หากจะปรับให้นับถึงบรรทัดสุดท้ายก็เปลี่ยนเป็นตามด้านล่างครับ

=OFFSET(Products!$C$2,MATCH(Enterthedata!$B4,Products!$A$2:$A$65536,0)-1,0,COUNTIF(Products!$A$2:$A$65536,Enterthedata!$B4))
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#58

Post by suka »

ขอบพระคุณมากๆค่ะ
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#59

Post by suka »

สวัสดีปีใหม่ค่ะ

อาจารย์คะ ที่ชีท Enterthedata ดิฉันได้ปรับเล็กน้อยโดยแทรกแถวเพื่อซ่อนชื่อร้านค้าและข้อมูลการบรรจุไว้
เมื่อพิมพ์ชื่อแค่ตัวสองแรกแล้วจะแสดงชื่อเต็มได้ ไม่รู้เข้าใจถูกหรือไม่คะ

ดิฉันได้ลองปรับ Code VBE ของอาจารย์ดู และลองใช้งานก็ใช้ได้ดีนะคะ ถ้าสามารถสือความต้องการให้อาจารย์ทราบน่าจะได้ดีกว่านี้

ที่ชีท Enterthedata อยากขออาจารย์ช่วยเพิ่ม Code
เมื่อกดปุ่ม Record Complete บันทึก แล้วที่เซลล์ L2 ให้เลขที่เอกสารบวกเพิ่มจากเดิม 1 โดยอัตโนมัติ อีกอย่างเอกสารมีหลายหมวดจะทำได้มั้ยคะ

ขอบคุณนะคะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30919
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#60

Post by snasui »

:D L2 สามารถมีรูปแบบอะไรได้บ้างครับ ต้องแจกแจงมาทั้งหมดเท่าที่สามารถจะมีได้ครับ เพราะการเพิ่มทีละ 1 จาก Text นั้นไม่ได้ทำง่ายเหมือนเพิ่มจากตัวเลขครับ :mrgreen:
Post Reply