: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

สูตร Index ทำอย่างไรให้เป็นค่าว่าง

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน 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

สูตร Index ทำอย่างไรให้เป็นค่าว่าง

#1

Post by liveday »

เรียน อาจารย์ทุกท่าน
สูตรที่ใช้ตอนนี้ ที่ Sheet (Inventory) แถว Cell H กับ แถว Cell J แล้วเกิดปัญหาตรงวันที่ ขึ้น 0/1/1900 0.00น. ผมต้องการไม่ให้โชว์อยากให้เป็นค่า Blank ไว้ จะต้องปรับสูตรอย่างไรครับ ตัวอย่างสูตรที่ใช้อยู่ตอนนี้ครับ

Code: Select all

=IF(ISNA(INDEX(Import!C:C,MATCH(Inventory!B2,B:B,0))),"",INDEX(Import!C:C,MATCH(Inventory!B2,B:B,0)))

ขอบคุณครับ
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: สูตร Index ทำอย่างไรให้เป็นค่าว่าง

#2

Post by parakorn »

H2 =IF(ISNA(INDEX(Import!C:C,MATCH(Inventory!B2,B:B,0))),"",IF(INDEX(Import!C:C,MATCH(Inventory!B2,B:B,0))=0,"",INDEX(Import!C:C,MATCH(Inventory!B2,B:B,0)))) Enter ครับ
liveday
Bronze
Bronze
Posts: 286
Joined: Fri Mar 25, 2011 2:24 pm
Excel Ver: 2007

Re: สูตร Index ทำอย่างไรให้เป็นค่าว่าง

#3

Post by liveday »

นำสูตรไปใช้แล้วนะครับ แต่ว่า ที่ Sheet (Inventory) แถว Cell H กับ แถว Cell J ทำงานไม่สัมพันธ์กันครับ ต้องมีการ AddProdct เข้าไปไหม่ ถึงจะทำงานถ้าเพิ่มแถวที่ 17 ข้อมูลที่ Cell H 8 ถึงจะทำงานครับโดยไล่ลงมาเรื่อยๆครับ หรือข้อมูลวันที่แสดงบรรทัดถัดลงมาทั้งที่ยังไม่มีการนำสินค้าเข้าเลยครับ และเหมือนว่าสูตรไม่ยอมทำงานให้อัตโนมัติครับ ต้องปรับสูตรอย่างไรบ้างครับ สูตรที่ใช้ครับ อยู่ที่ UserForm "Save data"

Code: Select all

Sheet7.Cells(final, 8) = "=IF(ISNA(INDEX(Import!C[-5],MATCH(Inventory!RC[-6],C[-6],0))),"""",IF(INDEX(Import!C[-5],MATCH(Inventory!RC[-6],C[-6],0))=0,"""",INDEX(Import!C[-5],MATCH(Inventory!RC[-6],C[-6],0))))"
ต้องปรับ Code อย่างไรครับ

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
Sheets("Inventory").Unprotect Password:="1234"
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)),""0"",(VLOOKUP(RC[-5],Import!C7:C12,6,0)))"
'Sheet7.Cells(final, 8) = "=IF(ISNA(INDEX(Import!C[-5],MATCH(Inventory!RC[-6],C[-6],0))),"""",INDEX(Import!C[-5],MATCH(Inventory!RC[-6],C[-6],0)))"
Sheet7.Cells(final, 8) = "=IF(ISNA(INDEX(Import!C[-5],MATCH(Inventory!RC[-6],C[-6],0))),"""",IF(INDEX(Import!C[-5],MATCH(Inventory!RC[-6],C[-6],0))=0,"""",INDEX(Import!C[-5],MATCH(Inventory!RC[-6],C[-6],0))))"
Sheet7.Cells(final, 9) = "=IF(ISNA(VLOOKUP(RC[-7],Export!C7:C12,6,0)),""0"",(VLOOKUP(RC[-7],Export!C7:C12,6,0)))"
'Sheet7.Cells(final, 10) = "=IF(ISNA(INDEX(Export!C[-7],MATCH(Inventory!RC[-8],C[-8],0))),"""",INDEX(Export!C[-7],MATCH(Inventory!RC[-8],C[-8],0)))"
Sheet7.Cells(final, 10) = "=IF(ISNA(INDEX(Import!C[-7],MATCH(Inventory!RC[-8],C[-8],0))),"""",IF(INDEX(Import!C[-7],MATCH(Inventory!RC[-8],C[-8],0))=0,"""",INDEX(Import!C[-7],MATCH(Inventory!RC[-8],C[-8],0))))"
Sheet7.Cells(final, 11) = "=SUM(IF(ISERROR(RC[-4]-RC[-2]),0,RC[-4]-RC[-2]))"
    
Addproduct.TextBox1 = ""
Addproduct.TextBox2 = ""
Addproduct.TextBox3 = ""
Addproduct.TextBox4 = ""
Addproduct.TextBox5 = ""
Sheets("Inventory").Protect Password:="1234"
Savedata.Hide
Addproduct.Hide

End Sub
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: สูตร Index ทำอย่างไรให้เป็นค่าว่าง

#4

Post by snasui »

:D กรุณาระบุลำดับการทดสอบและวิธีการสังเกตปัญหาจะได้เข้าถึงปัญหาโดยไวครับ
liveday
Bronze
Bronze
Posts: 286
Joined: Fri Mar 25, 2011 2:24 pm
Excel Ver: 2007

Re: สูตร Index ทำอย่างไรให้เป็นค่าว่าง

#5

Post by liveday »

เรียนอาจารย์ครับ

ที่ Sheet FormIn เมื่อนำเข้าสินค้า Import(Button)ข้อมูลชุดแรกจะเข้ามาอยู่ที่ ใบรับ/ส่งสินค้าตั้งแต่ Cell B17:H31 Codeที่ผมใช้ ทำให้ข้อมูลการบันทึกหรืออาจจะเกี่ยวกับ Format ทำให้ สุตรการบันทึกข้อมูลถัดไป record1 Template Cell A2:N สูตรไม่สามารถหาข้อมูลได้ ทำให้การบันทึกคลาดเคลื่อนครับ ปกติสูตรนี้

Code: Select all

With Worksheets("Template")
        i = Application.CountIf( _
                .Range("L2:L15"), ">0")
        Set rs = .Range("A2:N" & 1 + i)
จะเช็คจำนวนว่ามีหรือไม่ ถ้ามีก็จะนำข้อมูลที่กำหนดไปบันทึกที่ Sheet Import และCode ที่ผมคิดว่ามีปัญหาที่ทำให้ Code recod 1 คลาดเคลื่อนครับ

Code: Select all

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

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

Sheet6.Cells(final, 2) = UserFormImport.ComboBox1
Sheet6.Cells(final, 3) = UserFormImport.TextBox1
Sheet6.Cells(final, 4) = UserFormImport.TextBox9
Sheet6.Cells(final, 5) = UserFormImport.TextBox10
Sheet6.Cells(final, 6) = UserFormImport.TextBox11
Sheet6.Cells(final, 7) = UserFormImport.TextBox2
'Sheet6.Cells(final, 8) = UserFormImport.TextBox4
'Sheet6.Cells(final, 9) = UserFormImport.TextBox6
Sheet6.Cells(final, 8) = UserFormImport.TextBox7

 

For j = 2 To 1000
If Sheet7.Cells(j, 2) = Sheet6.Cells(final, 2) Then
actual = Sheet7.Cells(j, 7)
final = UserFormImport.TextBox2 + actual
Sheet7.Cells(j, 7) = final
Exit For
End If
Next

UserFormImport.ComboBox1 = ""
UserFormImport.TextBox1 = ""
UserFormImport.TextBox9 = ""
UserFormImport.TextBox10 = ""
UserFormImport.TextBox11 = ""
UserFormImport.TextBox2 = ""
'UserFormImport.TextBox4 = ""
'UserFormImport.TextBox6 = ""
UserFormImport.TextBox7 = ""
UserFormImport.TextBox8 = ""


UserForm15.Hide
UserFormImport.Hide

End Sub

Private Sub CommandButton2_Click()
UserForm15.Hide
End Sub
ที่ UserForm15 ครับจะต้องปรับสูตรหรือแก้ไขอย่างไรครับ เพื่อส่งต่อให้สูตร recod 1 ทำงานต่อได้อย่างถูกต้องครับ
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: สูตร Index ทำอย่างไรให้เป็นค่าว่าง

#6

Post by snasui »

:D ค่อย ๆ ถามตอบกันไปครับ หากไม่อธิบายมาอย่างละเอียดคิดว่าถามตอบกันเป็นร้อยโพสต์ครับ :mrgreen:

ผมไม่เข้าใจว่าคลาดเคลื่อนตรงไหน อย่างไร สูตรหาข้อมูลใดไม่ได้ ถ้าได้จะเป็นอย่างไร ลองจับภาพมาดูว่าอย่างไรจึงถึอว่าคลาดเคลื่อน อย่างไรไม่ถือว่าคลาดเคลื่อนครับ
liveday
Bronze
Bronze
Posts: 286
Joined: Fri Mar 25, 2011 2:24 pm
Excel Ver: 2007

Re: สูตร Index ทำอย่างไรให้เป็นค่าว่าง

#7

Post by liveday »

หลังจากนำสินค้าเข้า Button Import ไปที่ Sheet FormIn Cell B17:H31 และลำดับถัดไป Button บันทึกข้อมูล ซึ่งที่ Sheet Template ข้อมูลที่มีต้องนำไปบันทึกที่ Sheet Import ซึ่งข้อมูลตรงนี้นำแถวที่ cell A1:N1 ไปบันทึกพร้อมกันด้วยครับ
https://www.picz.in.th/image/NX3f0v
https://www.picz.in.th/image/NX3hcE
ไม่รู้จะอธิบายให้เข้าใจได้มากแค่ไหนนะครับ แต่ก็จะพยายามให้มากกว่านี้ครับ
ผมไม่สามารถใส่รูปได้ครับ ขึ้นข้อความแบบนี้ครับ
It was not possible to determine the dimensions of the image. Please verify that the URL you entered is correct.
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: สูตร Index ทำอย่างไรให้เป็นค่าว่าง

#8

Post by snasui »

:D รูปมีขนาดตามที่ผมเขียนไว้ในกฎการใช้บอร์ดข้อ 4 ด้านบน จะต้องไม่แนบไว้ในเว็บฝากไฟล์ ให้แนบมาในกล่องข้อความเสมอครับ
liveday
Bronze
Bronze
Posts: 286
Joined: Fri Mar 25, 2011 2:24 pm
Excel Ver: 2007

Re: สูตร Index ทำอย่างไรให้เป็นค่าว่าง

#9

Post by liveday »

เรียนอาจารย์ ผมได้แนบรูปที่ติดปัญหามาให้ดูครับ
รูปที่ติดปัญหาครับ ที่สูตรบรรทัด rs.copy ซึ่ง Copy ที่หัว Colum Sheet! Template แถว Cell A1:N1 มาด้วยครับ
จะต้องปรับสูตรอย่างไรครับ ขอบคุณครับ
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: สูตร Index ทำอย่างไรให้เป็นค่าว่าง

#10

Post by snasui »

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

Code: Select all

'Other code
With Worksheets("Template")
    i = Application.CountIf( _
            .Range("L2:L15"), "*?")
    Set rs = .Range("A2:N" & 1 + i)
'Other code
ทั้งนี้เนื่องจากค่าในคอลัมน์ L ของชีต Template เป็น Text สามารถตรวจสอบได้โดยคีย์สูตรในเซลล์ใด ๆ เป็น =Istext(L2)
Post Reply