Page 1 of 1
รบกวนแยกกลุ่มตามชื่อหรือตามอักษรที่กำหนด
Posted: Sat Jul 01, 2017 8:17 am
by Torisan2015
หากอยากจะนำข้อมูลรวมจากคอลั่ม A( ชีทข้อมูลรวม ) ไปแยกออกเป็นกลุ่มตามชีท ที่ชื่อว่า
Sheet3 (เป็นเลขที่ไม่มีอักษร)
Sheet A (เป็นเลขที่มีอักษร "A" )
Sheet C (เป็นเลขที่มีอักษร "C ")
Sheet A (เป็นเลขที่มีอักษร "A" )
Sheet G (เป็นเลขที่มีอักษร "G ")
Sheet T (เป็นเลขที่มีอักษร "T" )
Sheet p (เป็นเลขที่มีอักษร "p ")
ตามลำดับจะมีสูตรไหนที่สามารถนำข้อมูลไปวางได้ครับ
ทั้งนี้ได้แนบไฟล์ตัวอย่างมาด้วยครับ
Re: รบกวนแยกกลุ่มตามชื่อหรือตามอักษรที่กำหนด
Posted: Sat Jul 01, 2017 8:32 am
by snasui

ตัวอย่างสูตรครับ
- กำหนดรูปแบบเซลล์ของ A2 ในแต่ละชีตที่จะเขียนสูตรให้เป็น General เสียก่อน ไม่เช่นนั้นเมื่อคีย์สูตรไปแล้วจะเป็น Text ไม่ใช่ผลลัพธ์ของสูตร
- ที่ Sheet3 เซลล์ A2 คีย์สูตร
=IFERROR(INDEX(ข้อมูลรวม!$A$2:$A$339,SMALL(IF(ISNUMBER(SUBSTITUTE(ข้อมูลรวม!$A$2:$A$339,"-","")+0),ROW(ข้อมูลรวม!$A$2:$A$339)-ROW(ข้อมูลรวม!$A$2)+1),ROWS(A$2:A2))),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง
- ที่ Sheet A เซลล์ A2 คีย์สูตร
=IFERROR(INDEX(ข้อมูลรวม!$A$2:$A$339,SMALL(IF(ISNUMBER(SEARCH(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,31),ข้อมูลรวม!$A$2:$A$339)),ROW(ข้อมูลรวม!$A$2:$A$339)-ROW(ข้อมูลรวม!$A$2)+1),ROWS(A$2:A2))),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง
- คัดลอกสูตรในข้อ 3 ไปใช้กับชีตอื่น ๆ
Re: รบกวนแยกกลุ่มตามชื่อหรือตามอักษรที่กำหนด
Posted: Sat Jul 01, 2017 9:28 am
by Torisan2015
เรียนอาจารย์ จากสูตรที่อาจารย์ให้มา สามารถทำได้ครับ แต่จะมีจุดสังเกตุตรงไหนบ้างครับที่เราใช้ในการแบ่งกลุ่มตามอักษรที่กำหนดข้างต้น เพราะสูตรที่อาจารย์ให้มาผมไม่สามารถจับจุด หรือสามารถแยกออกเลยว่า =IFERROR(INDEX(ข้อมูลรวม!$A$2:$A$339,SMALL(IF(ISNUMBER(SEARCH(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,31),ข้อมูลรวม!$A$2:$A$339)),ROW(ข้อมูลรวม!$A$2:$A$339)-ROW(ข้อมูลรวม!$A$2)+1),ROWS(A$2:A2))),"")
สูตรนี้จะเปลี่ยนยังไงในการนำไปดัดแปลงใช้งานหากมีข้อมูลกลุ่มใหม่หรืออักษรใหม่ๆเพิ่มเข้ามาครับ
รบกวนอาจารย์ด้วยครับ
Re: รบกวนแยกกลุ่มตามชื่อหรือตามอักษรที่กำหนด
Posted: Sat Jul 01, 2017 10:49 am
by snasui

ผมจะบอกหลักการนะครับ ในรายละเอียดต้องอาศัยการทำความเข้าใจและแกะสูตรไปทีละฟังก์ชั่นครับ
สูตรแรกเป็นการนำค่าต้นทางแปลงใหม่โดยลบ "-" ออกดวยฟังก์ชั่น
Substitute จากนั้นบวกด้วย 0 เพื่อให้กลับไปเป็นตัวเลข ส่วนค่าใดที่มีอักษรจะไม่สามารถเป็นตัวเลขได้ ที่เราจะเลือกมาก็คือตัวที่เป็นตัวเลขเท่านั้น
สูตรที่สองเราจำเป็นต้องทราบว่าชีตปัจจุบันที่เขียนสูตรคือชีตใด ฟังก์ชั่นที่จะใช้สกัดเอาค่าชีตปัจจุบันคือ
MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,31) โดยเราจะใช้ชื่อชีตปัจจุบันไปหาจากค่าต้นทางด้วยฟังก์ชั่น
Search หากพบจะเป็นตัวเลขหรือ Number จะเห็นว่าเราใช้
Isnumber ครอบเพื่อตรวจสอบว่าเป็น Number หรือไม่ หากเป็น Number ก็ให้แสดงรายการทั้งหมดที่พบครับ
Re: รบกวนแยกกลุ่มตามชื่อหรือตามอักษรที่กำหนด
Posted: Sat Jul 01, 2017 11:39 am
by Torisan2015