: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

หาผลลัพท์ที่มาจาก VLOOKUP

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
liveday
Bronze
Bronze
Posts: 286
Joined: Fri Mar 25, 2011 2:24 pm
Excel Ver: 2007

หาผลลัพท์ที่มาจาก VLOOKUP

#1

Post by liveday »

เรียน อาจารย์ทุกท่าน

ผมต้องการ หาผลลัพท์ที่มาจาก VLOOKUP ที่ Sheet Inventory ระหว่างแถว Cell G เพื่อลบกับ Cell H ครับ
ผมทำแล้วขึ้น #VALUE ต้องปรับสูตรเพื่อแก้ Error อย่างไรครับ ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
User avatar
parakorn
Gold
Gold
Posts: 1223
Joined: Thu Mar 14, 2013 9:41 am
Location: Central Chaengwattana[Tops]
Excel Ver: 365
Contact:

Re: หาผลลัพท์ที่มาจาก VLOOKUP

#2

Post by parakorn »

ปรับเป็น =SUM(IF(ISERROR(G2-H2),0,G2-H2)) ครับ เพราะ Sum ถ้าไม่เจอตัวเลขจะ Error ครับ
liveday
Bronze
Bronze
Posts: 286
Joined: Fri Mar 25, 2011 2:24 pm
Excel Ver: 2007

Re: หาผลลัพท์ที่มาจาก VLOOKUP

#3

Post by liveday »

ขอถามเพิ่มนะครับ ถ้าต้องการจะให้เป็นค่าว่าง (ฺBlank) ต้องปรับสูตรอย่างไรครับ
ขอบคุณครับ
liveday
Bronze
Bronze
Posts: 286
Joined: Fri Mar 25, 2011 2:24 pm
Excel Ver: 2007

Re: หาผลลัพท์ที่มาจาก VLOOKUP

#4

Post by liveday »

ผมลองบันทึกมาโครเข้าไป ต้องการให้ใส่สูตรลงไปแบบอัติโนมัติครับ แต่ข้อมูลไม่บันทึกทีละบรรทัดครับ ต้องปรับสูตรอย่างไรครับ
สูตรที่ใส่นี้จะต้อง Copy สูตรที่กำหนดแล้ว ไปวางที่ Sheet Inventory ที่ช่อง Cell I2 เป็นต้นไป พร้อมกับการ AddProduct Sheet(FormIn) สูตรจะอยู่ที่ "UserForm AddProduct" ครับ

Code: Select all

Sub Macro2()
Range("I2:i" & Range("G65536").End(xlUp).Row).FormulaR1C1 = "=SUM(IF(ISERROR(RC[-2]-RC[-1]),0,RC[-2]-RC[-1]))"
    Range("I2").Select
    Application.CutCopyMode = False
    Range("i65536").Select
End Sub
หรืออีกอย่าง เมื่อเราทำการ AddProduct Sheet(FormIn) สูตรจะอยู่ที่ "UserForm AddProduct" ให้ Coppy สูตร

Code: Select all

=SUM(IF(ISERROR(G2-H2),0,G2-H2))
ไปวางที่ Cell I พร้อมๆกันทุกครั้งที่มีการเพิ่ม Product ครับ
You do not have the required permissions to view the files attached to this post.
User avatar
parakorn
Gold
Gold
Posts: 1223
Joined: Thu Mar 14, 2013 9:41 am
Location: Central Chaengwattana[Tops]
Excel Ver: 365
Contact:

Re: หาผลลัพท์ที่มาจาก VLOOKUP

#5

Post by parakorn »

คลุมช่วงข้อมูลที่ต้องการ > คลิ๊กขวา ไปที่ Format Cells > Custom > ปรับ Type เป็น #,##0_);(#,##0);""

ส่วน Code ลองปรับดังนี้ครับ

Code: Select all

Sub ReccordFormulas()

If Range("I2") <> "" Then

    Application.Goto Reference:="R1C9"
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Range("A1").Select
    Selection.FormulaR1C1 = "=SUM(IF(ISERROR(RC[-2]-RC[-1]),0,RC[-2]-RC[-1]))"

ElseIf Range("I2") = "" Then Range("I2").Select
    Selection.FormulaR1C1 = "=SUM(IF(ISERROR(RC[-2]-RC[-1]),0,RC[-2]-RC[-1]))"

End If
End Sub
liveday
Bronze
Bronze
Posts: 286
Joined: Fri Mar 25, 2011 2:24 pm
Excel Ver: 2007

Re: หาผลลัพท์ที่มาจาก VLOOKUP

#6

Post by liveday »

การบันทึกข้อความสูตร Vlookup จาก Form Addproduct นำมาใส่ที่ Sheet Inventory Cell G กับ H ข้อมูลบันทึกถูกต้องแต่สูตรไม่ทำงานครับ ต้องแก้ไขอย่างไรครับ ขอบคุณครับ

Sheet7.Cells(final, 7) = "=IF(ISNA(VLOOKUP(RC[-5],Import!C7:C12,6,0)),"""",(VLOOKUP(RC[-5],Import!C7:C12,6,0)))"
Sheet7.Cells(final, 8) = "=IF(ISNA(VLOOKUP(RC[-6],Export!C7:C12,6,0)),"""",(VLOOKUP(RC[-6],Export!C7:C12,6,0)))"

Code: Select all

Private Sub CommandButton1_Click()
Dim i As Integer
Dim final As Integer

For i = 2 To 1000
If Sheet7.Cells(i, 2) = "" Then
final = i
Exit For
End If
Next

Sheet7.Cells(final, 1) = "=IF(RC[1]="""","""",COUNTA(R2C[1]:RC[1]))"
Sheet7.Cells(final, 2) = Addproduct.TextBox1
Sheet7.Cells(final, 3) = Addproduct.TextBox2
Sheet7.Cells(final, 4) = Addproduct.TextBox3
Sheet7.Cells(final, 5) = Addproduct.TextBox4
Sheet7.Cells(final, 6) = Addproduct.TextBox5
Sheet7.Cells(final, 7) = "=IF(ISNA(VLOOKUP(RC[-5],Import!C7:C12,6,0)),"""",(VLOOKUP(RC[-5],Import!C7:C12,6,0)))"
Sheet7.Cells(final, 8) = "=IF(ISNA(VLOOKUP(RC[-6],Export!C7:C12,6,0)),"""",(VLOOKUP(RC[-6],Export!C7:C12,6,0)))"
Sheet7.Cells(final, 9) = "=SUM(IF(ISERROR(RC[-2]-RC[-1]),0,RC[-2]-RC[-1]))"
    
Addproduct.TextBox1 = ""
Addproduct.TextBox2 = ""
Addproduct.TextBox3 = ""
Addproduct.TextBox4 = ""
Addproduct.TextBox5 = ""

Savedata.Hide
Addproduct.Hide

End Sub


Private Sub CommandButton2_Click()
Savedata.Hide
End Sub
You do not have the required permissions to view the files attached to this post.
liveday
Bronze
Bronze
Posts: 286
Joined: Fri Mar 25, 2011 2:24 pm
Excel Ver: 2007

Re: หาผลลัพท์ที่มาจาก VLOOKUP

#7

Post by liveday »

ทำได้แล้วครับ โดยการส่งข้อมูลไปบันทึกที่ Sheet Import และ Export ไหม่ ข้อมูลที่ Sheet Inventory Cell G กับ H ถึงขึ้นนะครับ ทีนี้ถ้าเราไปดับเบิ้ลคลิ้กที่ Sheet Inventory Cell G กับ H ข้อมูลที่ Cell ก็หายไปอีกครับ ผมคิดว่าน่าจะเกิดจาก Format ไม่เหมือนกันจึงทำให้สูตรคำนวนไม่ได้ จะรบกวนถามอาจารย์ แก้ไขอย่างไรดีครับ ขอบคุณมากครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: หาผลลัพท์ที่มาจาก VLOOKUP

#8

Post by snasui »

:D แนบไฟล์ล่าสุดมาพร้อมกับอธิบายเซลล์ที่เป็นปัญหาครับ
liveday
Bronze
Bronze
Posts: 286
Joined: Fri Mar 25, 2011 2:24 pm
Excel Ver: 2007

Re: หาผลลัพท์ที่มาจาก VLOOKUP

#9

Post by liveday »

เรียนอาจารย์
เมื่อใส่ข้อมูลที่ User form (Addproduct) ที่ Sheet FormIn ข้อมูลจะไปอยู่ที่ Sheet Inventory Sheet Inventory ที่ Cell G,H,I ที่ผมใส่ข้อมูลไว้ครับ

Code: Select all

Sheet7.Cells(final, 7) = "=IF(ISNA(VLOOKUP(RC[-5],Import!C7:C12,6,0)),"""",(VLOOKUP(RC[-5],Import!C7:C12,6,0)))"
Sheet7.Cells(final, 8) = "=IF(ISNA(VLOOKUP(RC[-6],Export!C7:C12,6,0)),"""",(VLOOKUP(RC[-6],Export!C7:C12,6,0)))"
Sheet7.Cells(final, 9) = "=SUM(IF(ISERROR(RC[-2]-RC[-1]),0,RC[-2]-RC[-1]))"
ข้อมูลบันทึกถูกต้องครับ แต่สูตร Vlookup ไม่ทำงาน แต่หากผมไปดับเบิ้ลคลิ้กที่ Cell B สูตร Vlookup ที่ Cell G,H ถึงทำงานครับ แต่ Cell I

Code: Select all

=SUM(IF(ISERROR(G2-H2),0,G2-H2))
ก็ยังไม่คำนวณยังคงแสดงค่า 0 อยู่ครับ จะต้องปรับสูตร หรือแก้ไขอย่างไรครับ ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: หาผลลัพท์ที่มาจาก VLOOKUP

#10

Post by snasui »

:D ในเครื่องผมพบว่าทำงานตามปกติครับ

หากยังเป็นปัญหากรุณาเขียนลำดับขั้นตอนการทำสอบพร้อมค่าทดสอบมาด้วยครับ
liveday
Bronze
Bronze
Posts: 286
Joined: Fri Mar 25, 2011 2:24 pm
Excel Ver: 2007

Re: หาผลลัพท์ที่มาจาก VLOOKUP

#11

Post by liveday »

เรียนอาจารย์ รบกวนอาจารย์ช่วยดู Sheet Inventory Cell i (Total) สูตรยังไม่คำนวณให้ครับ ถ้า Import แสดงค่าเป็น 1 Cell i (Total) ต้องแสดงผลเป็น 1 ครับ ถ้า Export Cell H แสดงเป็น 1ต้องลบกับ Cell Import cell G ต้องเป็นค่า 0 ครับ และสูตรที่ใช้คำนวณครับ

Code: Select all

=SUM(IF(ISERROR(G2-H2),0,G2-H2))
อ้างอิงจากไฟล์ไฟล์ตัวอย่างเดิมครับ ขอบคุณครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: หาผลลัพท์ที่มาจาก VLOOKUP

#12

Post by snasui »

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

=IF(ISNA(VLOOKUP(B2,Export!$G:$L,6,0)),0,(VLOOKUP(B2,Export!$G:$L,6,0)))

หากจะใช้คำนวณต่อจะต้องไม่ให้คืนค่าในสูตรเป็นค่าว่าง จะต้องคำนึงถึงเรื่องนี้เสมอไปทุก ๆ สูตรครับ
Post Reply