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
:D ค่อย ๆ ถามตอบกันไปครับ

ชีท 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
:D ตอบในสิ่งที่ผมถามยังไม่ครบครับ

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
:D การค้นหาลักษณะนั้นคงต้องพึ่ง 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
:D Hope this helps,
  1. ชีท report (4) เซลล์ C1 คีย์ 0
  2. report (4) เซลล์ C5 คีย์สูตร
    =IF(AND(A5<>"",B5<>""),IF(ISNUMBER(C4),C4,LOOKUP(9.99999999999999E+307,C$2:C4)+1),"")
    Enter > Copy ลงด้านล่าง
  3. Sheet1 เซลล์ A1 คีย์สูตร
  4. =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 ไปด้านขวาและลงด้านล่าง