Page 1 of 1
สูตรดึงข้อมูลตามรหัส
Posted: Wed Apr 24, 2019 10:53 am
by วังวู ช่ง
รบกวนท่านที่รู้ครับ
อยากได้สูตรอึงข้อมูลตามรหัสครับ
1. List คือ sheet รวม
2. 100 เป็น sheet ที่ต้องการดึงข้อมูลจาก List ที่รหัส 100 เข้าไป
3. 200 เป็น sheet ที่ต้องการดึงข้อมูลจาก List ที่รหัส 200 เข้าไป
4. 300 เป็น sheet ที่ต้องการดึงข้อมูลจาก List ที่รหัส 300 เข้าไป
จะใช้สูตรแบบไหนอย่างไรครับ รบกวนครับ
>>>แต่ข้อมูลที่ดึงเข้ามาจาก List เข้าไปแต่ละ sheet 100.200.300 ข้อมูลต้องเลื่อนขื้นไปต่อกันลงล่างแบบ auto ครับ
Re: สูตรดึงข้อมูลตามรหัส
Posted: Wed Apr 24, 2019 11:34 am
by puriwutpokin
ที่ E2=SUMPRODUCT(SUMIFS(INDIRECT("'"&ROW(INDIRECT("1:3"))&{"00"}&"'!"&ADDRESS(ROW(E$2),COLUMN(E$2))&":"&ADDRESS(ROW(E$100),COLUMN(E$100))),INDIRECT("'"&ROW(INDIRECT("1:3"))&{"00"}&"'!C2:C100"),$C2,INDIRECT("'"&ROW(INDIRECT("1:3"))&{"00"}&"'!D2:D100"),$D2)) คัดลอกไปทางขวาและลงล่างครับ
Re: สูตรดึงข้อมูลตามรหัส
Posted: Wed Apr 24, 2019 11:49 am
by วังวู ช่ง
puriwutpokin wrote: Wed Apr 24, 2019 11:34 am
ที่ E2=SUMPRODUCT(SUMIFS(INDIRECT("'"&ROW(INDIRECT("1:3"))&{"00"}&"'!E2:E100"),INDIRECT("'"&ROW(INDIRECT("1:3"))&{"00"}&"'!C2:C100"),C2,INDIRECT("'"&ROW(INDIRECT("1:3"))&{"00"}&"'!D2:D100"),D2))
ที่ F2=SUMPRODUCT(SUMIFS(INDIRECT("'"&ROW(INDIRECT("1:3"))&{"00"}&"'!F2:F100"),INDIRECT("'"&ROW(INDIRECT("1:3"))&{"00"}&"'!C2:C100"),C2,INDIRECT("'"&ROW(INDIRECT("1:3"))&{"00"}&"'!D2:D100"),D2))
ถ้าดึงแค่ รับ และ จ่ายสูตรนี้ใช้ได้ครับ แต่ผมอยากให้ดึงทั้งหมดครับ แต่ A:F เข้ามาครับ
รบกวนอีกครับ
Re: สูตรดึงข้อมูลตามรหัส
Posted: Wed Apr 24, 2019 12:25 pm
by puriwutpokin
ตามนี้ครับ
1.ที่ I2:I4 คีย์ชื่อชีท 100,200,300
2.ที่ J2=COUNTA(INDIRECT("'"&I2&"'!A2:A100")) คัดลอกถึง J4
3.ที่ J5=SUM(J2:J4)
4.ที่ K2=SUM(J$2:J2)-J2+1 คัดลอกถึง J4
5.ที่ H2=IF(ROWS(H$2:H2)>J$5,"",LOOKUP(ROWS(H$2:H2),K$2:K$4,I$2:I$4)) คัดลอกจนเป็นค่าว่าง
6.ที่ A2=IF($H2="","",INDIRECT("'"&$H2&"'!"&SUBSTITUTE(ADDRESS(1,COLUMN()),1,"")&COUNTIF($H$2:$H2,$H2)+1)) คัดลอกไปทางขวาถึง F และคัดลอกลงล่างครับ
Re: สูตรดึงข้อมูลตามรหัส
Posted: Wed Apr 24, 2019 1:40 pm
by วังวู ช่ง
puriwutpokin wrote: Wed Apr 24, 2019 12:25 pm
ตามนี้ครับ
1.ที่ I2:I4 คีย์ชื่อชีท 100,200,300
2.ที่ J2=COUNTA(INDIRECT("'"&I2&"'!A2:A100")) คัดลอกถึง J4
3.ที่ J5=SUM(J2:J4)
4.ที่ K2=SUM(J$2:J2)-J2+1 คัดลอกถึง J4
5.ที่ H2=IF(ROWS(H$2:H2)>J$5,"",LOOKUP(ROWS(H$2:H2),K$2:K$4,I$2:I$4)) คัดลอกจนเป็นค่าว่าง
6.ที่ A2=IF($H2="","",INDIRECT("'"&$H2&"'!"&SUBSTITUTE(ADDRESS(1,COLUMN()),1,"")&COUNTIF($H$2:$H2,$H2)+1)) คัดลอกไปทางขวาถึง F และคัดลอกลงล่างครับ
ยังไม่ได้ตามต้องการครับ
เอาอย่างนี้ครับ
1. ใน sheet 100 ให้ดึงเอาเลข ล/ด ที่รหัส 100 ใน List มาใส่ที่ column A
2. ใน sheet 200 ให้ดึงเอาเลข ล/ด ที่รหัส 200 ใน List มาใส่ที่ column A
3. ใน sheet 300 ให้ดึงเอาเลข ล/ด ที่รหัส 300 ใน List มาใส่ที่ column A
Re: สูตรดึงข้อมูลตามรหัส
Posted: Wed Apr 24, 2019 1:52 pm
by puriwutpokin
ปรับเป็นที่ชีท 100,200,300 ที่ A2=IFERROR(INDEX(List!$A$2:$F$11,SMALL(IF(List!$C$2:$C$11=VALUE(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,3)),ROW(List!$A$2:$A$11)-ROW(List!$A$1)),ROWS($A$2:$A2)),MATCH(A$1,List!$A$1:$F$1,0)),"") กด Ctrl+Shift+Enter คัดลอกไปทางขวาและลงล่างครับ
Re: สูตรดึงข้อมูลตามรหัส
Posted: Wed Apr 24, 2019 2:56 pm
by วังวู ช่ง
puriwutpokin wrote: Wed Apr 24, 2019 1:52 pm
ปรับเป็นที่ชีท 100,200,300 ที่ A2=IFERROR(INDEX(List!$A$2:$F$11,SMALL(IF(List!$C$2:$C$11=VALUE(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,3)),ROW(List!$A$2:$A$11)-ROW(List!$A$1)),ROWS($A$2:$A2)),MATCH(A$1,List!$A$1:$F$1,0)),"") กด Ctrl+Shift+Enter คัดลอกไปทางขวาและลงล่างครับ
ขอบคุณมากครับ เยี้ยมเลยครับ

Re: สูตรดึงข้อมูลตามรหัส
Posted: Wed Apr 24, 2019 3:53 pm
by วังวู ช่ง
puriwutpokin wrote: Wed Apr 24, 2019 1:52 pm
ปรับเป็นที่ชีท 100,200,300 ที่ A2=IFERROR(INDEX(List!$A$2:$F$11,SMALL(IF(List!$C$2:$C$11=VALUE(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,3)),ROW(List!$A$2:$A$11)-ROW(List!$A$1)),ROWS($A$2:$A2)),MATCH(A$1,List!$A$1:$F$1,0)),"") กด Ctrl+Shift+Enter คัดลอกไปทางขวาและลงล่างครับ
ถ้าเราเปลี่ยน sheet ออกเป็นอย่างอื่นควนปลับสูตรตรงไหนครับ?
Re: สูตรดึงข้อมูลตามรหัส
Posted: Wed Apr 24, 2019 4:29 pm
by puriwutpokin
วังวู ช่ง wrote: Wed Apr 24, 2019 3:53 pm
puriwutpokin wrote: Wed Apr 24, 2019 1:52 pm
ปรับเป็นที่ชีท 100,200,300 ที่ A2=IFERROR(INDEX(List!$A$2:$F$11,SMALL(IF(List!$C$2:$C$11=VALUE(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,3)),ROW(List!$A$2:$A$11)-ROW(List!$A$1)),ROWS($A$2:$A2)),MATCH(A$1,List!$A$1:$F$1,0)),"") กด Ctrl+Shift+Enter คัดลอกไปทางขวาและลงล่างครับ
ถ้าเราเปลี่ยน sheet ออกเป็นอย่างอื่นควนปลับสูตรตรงไหนครับ?
เปลี่ยนชื่อชีท หรือเปล่า ถ้าใช่ไม่ต้องปรับครับ แต่ถ้าเพิ่ม บรรทัดข้อมูลหรือ คอลัมน์ปรับตรงสีแดงครับ
A2=IFERROR(INDEX(List!$A$2:
$F$11,SMALL(IF(List!$C$2:
$C$11=VALUE(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,3)),ROW(List!$A$2:
$A$11)-ROW(List!$A$1)),ROWS($A$2:$A2)),MATCH(A$1,List!$A$1:
$F$1,0)),"") กด Ctrl+Shift+Enter คัดลอกไปทางขวาและลงล่างครับ
Re: สูตรดึงข้อมูลตามรหัส
Posted: Wed Apr 24, 2019 4:33 pm
by วังวู ช่ง
เปลี่ยนชื่อชีท หรือเปล่า ถ้าใช่ไม่ต้องปรับครับ แต่ถ้าเพิ่ม บรรทัดข้อมูลหรือ คอลัมน์ปรับตรงสีแดงครับ
A2=IFERROR(INDEX(List!$A$2:
$F$11,SMALL(IF(List!$C$2:
$C$11=VALUE(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,3)),ROW(List!$A$2:
$A$11)-ROW(List!$A$1)),ROWS($A$2:$A2)),MATCH(A$1,List!$A$1:
$F$1,0)),"") กด Ctrl+Shift+Enter คัดลอกไปทางขวาและลงล่างครับ
ขอบคุณมากครับ
