Page 1 of 1

ดึงข้อมูลตามเงื่อนไข

Posted: Wed Dec 13, 2017 2:48 pm
by aapichaya
ต้องการดึงข้อมูลเฉพาะบาง Row ตามเงื่อนไข มาไว้ใน Sheet2 ตัวอย่างดังไฟล์แนบค่ะ ต้องเขียนสูตรอย่างไรคะ

Re: ดึงข้อมูลตามเงื่อนไข

Posted: Wed Dec 13, 2017 2:57 pm
by puriwutpokin
ที่ A2=IFERROR(INDEX(Sheet1!A$2:A$13,SMALL(IF(ISNUMBER(SEARCH("CAT",Sheet1!$C$2:$C$13)),ROW(Sheet1!$A$2:$A$13)-ROW(Sheet1!$A$2)+1),ROWS(A$2:A2))),"") กด Ctrl+Shift+Enter คัดลอกไปทั้งตารางครับ

Re: ดึงข้อมูลตามเงื่อนไข

Posted: Wed Dec 13, 2017 3:01 pm
by parakorn
A2 =INDEX(Sheet1!A$2:A$13,SMALL(IF(RIGHT(Sheet1!$C$2:$C$13,3)="CAT",ROW(Sheet1!A$2:A$13)-ROW(Sheet1!A$2)+1),ROWS($A$2:$A2))) Ctrl+Shift+Enter ไปทางขวาและลงด้านล่างครับ

!
Note: Ctrl+Shift+Enter เป็นการสร้างสูตร Array โดยสามารถเลือกดำเนินการตามข้อ 1 หรือ 2 ด้านล่าง
  1. กรณีคีย์สูตรเอง เมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl และ Shift พร้อมกันค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
  2. กรณี Copy สูตรไปวางให้กดแป้น F2 เพื่อทำการ Edit Cell นั้นก่อน จากนั้นกดแป้น Ctrl และ Shift พร้อมกันค้างไว้แล้วตามด้วย Enter เพื่อสร้างเป็นสูตร Array
  3. หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)} ปีกกานี้ไม่สามารถคีย์เข้าไปเอง จะต้องมาด้วยการกดแป้น Ctrl+Shift+Enter เท่านั้น ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
  4. การแก้ไขเปลี่ยนแปลงสูตร Array จะต้องกดแป้นให้รับสูตรด้วย Ctrl+Shift+Enter ทุกครั้ง

Re: ดึงข้อมูลตามเงื่อนไข

Posted: Fri Dec 15, 2017 8:45 am
by aapichaya
ขอบคุณมากค่ะ ขออนุญาตถามต่อนะคะ

-เมื่อมีการเพิ่มข้อมูลใน sheet1 ต้องการให้ข้อมูลทั้งแถวถูกดึงไปยัง ตาราง ของSheet2โดยอัตโนมัติ ต้องปรับโค้ดยังไงคะ รบกวนด้วยค่ะ

Code: Select all

Sub test1()

Dim ws As Worksheet
Set ws = Sheets("CAT DATA")
ws.Range("A2").FormulaArray = "=IFERROR(INDEX(Sheet1!A$2:A$205,SMALL(IF(ISNUMBER(SEARCH(""CAT"",Sheet1!$C$2:$C$205)),ROW(Sheet1!$A$2:$A$205)-ROW(Sheet1!$A$2)+1),ROWS(A$2:A2))),"""")"
ws.Range("A2").Autofill ws.Range("A2:A205"), xlFillDefault

End Sub

Re: ดึงข้อมูลตามเงื่อนไข

Posted: Fri Dec 15, 2017 3:43 pm
by puriwutpokin
aapichaya wrote:ขอบคุณมากค่ะ ขออนุญาตถามต่อนะคะ

-เมื่อมีการเพิ่มข้อมูลใน sheet1 ต้องการให้ข้อมูลทั้งแถวถูกดึงไปยัง ตาราง ของSheet2โดยอัตโนมัติ ต้องปรับโค้ดยังไงคะ รบกวนด้วยค่ะ

Code: Select all

Sub test1()

Dim ws As Worksheet
Set ws = Sheets("CAT DATA")
ws.Range("A2").FormulaArray = "=IFERROR(INDEX(Sheet1!A$2:A$205,SMALL(IF(ISNUMBER(SEARCH(""CAT"",Sheet1!$C$2:$C$205)),ROW(Sheet1!$A$2:$A$205)-ROW(Sheet1!$A$2)+1),ROWS(A$2:A2))),"""")"
ws.Range("A2").Autofill ws.Range("A2:A205"), xlFillDefault

End Sub
ปรับเป็น

Code: Select all

Sub test1()
Dim ws As Worksheet
Set ws = Sheets("CAT DATA")
ws.Range("A2").FormulaArray = "=IFERROR(INDEX(Sheet1!A$2:A$205,SMALL(IF(ISNUMBER(SEARCH(""CAT"",Sheet1!$C$2:$C$205)),ROW(Sheet1!$A$2:$A$205)-ROW(Sheet1!$A$2)+1),ROWS(A$2:A2))),"""")"
ws.Range("A2").Autofill ws.Range("A2:A205"), xlFillDefault
    ws.Range("A2:A205", ws.Range("H2:H205")).Select
    Selection.FillRight
End Sub

Re: ดึงข้อมูลตามเงื่อนไข

Posted: Thu Jan 18, 2018 12:01 pm
by kavintara
ตามสูตรนี้ดึงจากแถว2ถึงเเถวที่205 ถ้าอยากเปลี่ยนให้เป็นแถว2ถึงแถวสุดท้ายต้องปรับสูตรอย่างไรคะ