Page 1 of 1
ต้องการแบ่งข้อความจาก sheet หลักเป็นหลายๆ sheet ย่อย
Posted: Sat May 02, 2015 8:41 pm
by victor
ต้องการแยกข้อความใน report(4) ขั้นด้วยช่องวางระหว่างแถวแยกออกเป็นชีทตาม city_us ,related_uss,region_us,x,related_us
report (4).xlsx
Re: ต้องการแบ่งข้อความจาก sheet หลักเป็นหลายๆ sheet ย่อย
Posted: Sun May 03, 2015 6:46 am
by snasui

ค่อย ๆ ถามตอบกันไปครับ
ชีท city_us ตำแหน่งการอ้างอิงไม่ตรงกับต้นแหล่ง ที่แจ้งว่าข้อมูลมาจาก ข้อมูลมาจากบรรทัดที่ 617-632 นั้น ไม่น่าจะถูกต้อง ลองทบทวนดูใหม่
นอกจากนี้คอลัมน์ C ของชีท city_us นำข้อมูลจากที่ไหนมาแสดงครับ
Re: ต้องการแบ่งข้อความจาก sheet หลักเป็นหลายๆ sheet ย่อย
Posted: Sun May 03, 2015 8:53 am
by victor
แก้ไขใหม่ครับ
Re: ต้องการแบ่งข้อความจาก sheet หลักเป็นหลายๆ sheet ย่อย
Posted: Sun May 03, 2015 9:05 am
by snasui

ตอบในสิ่งที่ผมถามยังไม่ครบครับ
Re: ต้องการแบ่งข้อความจาก sheet หลักเป็นหลายๆ sheet ย่อย
Posted: Sun May 03, 2015 1:15 pm
by victor
ส่วนคอลัมน์ C ของชีท city_us นำข้อมูลจากบรรทัดที่ 597 หลังคำส่าTop cities for ครับ
Re: ต้องการแบ่งข้อความจาก sheet หลักเป็นหลายๆ sheet ย่อย
Posted: Sun May 03, 2015 1:45 pm
by snasui

การค้นหาลักษณะนั้นคงต้องพึ่ง VBA เพราะมีความไม่สม่ำเสมอของข้อมูล บางชุดมี City เข้ามาบ้าง มี Region เข้ามาบ้าง มี Week เข้ามาบ้าง ในขณะชุดท้าย ๆ ไม่มีข้อมูลพวกนั้น
สำหรับ VBA ลองเขียนมาเองก่อน ติดตรงไหนค่อยถามกันต่อครับ
ส่วนในการเขียนสูตรจำเป็นต้องอธิบายวิธีการเลือกข้อมูลอย่างละเอียด ในกล่องความเห็นนี้สามารถคีย์ได้ถึง 60,000 อักขระ สามารถอธิบายมาได้เต็มที่ คำอธิบายที่น้อยเกินไปเป็นการสร้างข้อจำกัดในการได้รับคำตอบครับ
Re: ต้องการแบ่งข้อความจาก sheet หลักเป็นหลายๆ sheet ย่อย
Posted: Sun May 03, 2015 3:28 pm
by victor
ผมต้องการแบ่งข้อความใน report (4) ที่เป็นกลุ่มข้อมูลแบ่งตาม Sheet1-5
Re: ต้องการแบ่งข้อความจาก sheet หลักเป็นหลายๆ sheet ย่อย
Posted: Sun May 03, 2015 3:59 pm
by snasui

Hope this helps,
- ชีท report (4) เซลล์ C1 คีย์ 0
- report (4) เซลล์ C5 คีย์สูตร
=IF(AND(A5<>"",B5<>""),IF(ISNUMBER(C4),C4,LOOKUP(9.99999999999999E+307,C$2:C4)+1),"")
Enter > Copy ลงด้านล่าง
- Sheet1 เซลล์ A1 คีย์สูตร
- =IFERROR(INDEX('report (4)'!A$5:A$646,SMALL(IF('report (4)'!$C$5:$C$646=1,ROW('report (4)'!A$5:A$646)-ROW('report (4)'!A$5)+1),ROWS(A$1:A1))),"")
Ctrl+Shift+Enter > Copy ไปด้านขวาและลงด้านล่าง