Page 1 of 1

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

Posted: Wed Jul 18, 2018 3:27 pm
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)))

ขอบคุณครับ

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

Posted: Wed Jul 18, 2018 4:11 pm
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 ครับ

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

Posted: Thu Jul 19, 2018 4:02 pm
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

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

Posted: Thu Jul 19, 2018 10:35 pm
by snasui
:D กรุณาระบุลำดับการทดสอบและวิธีการสังเกตปัญหาจะได้เข้าถึงปัญหาโดยไวครับ

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

Posted: Fri Jul 20, 2018 9:33 pm
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 ทำงานต่อได้อย่างถูกต้องครับ

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

Posted: Fri Jul 20, 2018 10:43 pm
by snasui
:D ค่อย ๆ ถามตอบกันไปครับ หากไม่อธิบายมาอย่างละเอียดคิดว่าถามตอบกันเป็นร้อยโพสต์ครับ :mrgreen:

ผมไม่เข้าใจว่าคลาดเคลื่อนตรงไหน อย่างไร สูตรหาข้อมูลใดไม่ได้ ถ้าได้จะเป็นอย่างไร ลองจับภาพมาดูว่าอย่างไรจึงถึอว่าคลาดเคลื่อน อย่างไรไม่ถือว่าคลาดเคลื่อนครับ

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

Posted: Fri Jul 20, 2018 11:10 pm
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.

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

Posted: Fri Jul 20, 2018 11:13 pm
by snasui
:D รูปมีขนาดตามที่ผมเขียนไว้ในกฎการใช้บอร์ดข้อ 4 ด้านบน จะต้องไม่แนบไว้ในเว็บฝากไฟล์ ให้แนบมาในกล่องข้อความเสมอครับ

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

Posted: Sat Jul 21, 2018 9:37 pm
by liveday
เรียนอาจารย์ ผมได้แนบรูปที่ติดปัญหามาให้ดูครับ
รูปที่ติดปัญหาครับ ที่สูตรบรรทัด rs.copy ซึ่ง Copy ที่หัว Colum Sheet! Template แถว Cell A1:N1 มาด้วยครับ
จะต้องปรับสูตรอย่างไรครับ ขอบคุณครับ

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

Posted: Sat Jul 21, 2018 10:04 pm
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)