Page 1 of 1
ดึงข้อมูลจาก Sheet หนึ่ง มาเรียงอีกSheet หนึงแบบไม่เอาช่องว่าง
Posted: Tue Oct 18, 2016 1:37 pm
by sakonlaphat
อยากดึงข้อมูลจาก Sheet1 คอลัม H,I,J มาเรียงใส่ใน คอลัม A (Sheet Key) โดยที่ดึงมาเฉพาะที่มีข้อมูลไม่เอาช่องว่าง
และดึงข้อมูลจาก Sheet1 คอลัม C,D,E มาเรียงใส่ใน คอลัม E,F,G (Sheet Key) ตามตัวอย่างในไฟล์แนบค่ะ
รบกวนขอคำแนะนำหน่อยน่ะค่ะ
Re: ดึงข้อมูลจาก Sheet หนึ่ง มาเรียงอีกSheet หนึงแบบไม่เอาช่องว่าง
Posted: Tue Oct 18, 2016 4:49 pm
by DhitiBank
ลองแบบนี้ครับ คงต้องใช้คอลัมน์ช่วย
ที่ชีท Key
1. เซลล์ J6 คีย์ (เพื่อเอาโค้ดในชีท 1 มาเรียงให้อยู่คอลัมน์เดียว)
=INDEX('1'!$H$9:$J$536,MOD(ROWS(J$12:J12)-1,COUNTA('1'!$H$9:$H$536))+1,INT((ROWS(J$12:J12)-1)/COUNTA('1'!$H$9:$H$536))+1)
Enter > คัดลอกลงล่าง จนเจอค่าผิดพลาด #REF ก็ให้ลบเซลล์ที่แสดงค่าผิดพลาดออก
2. I5 คีย์ (เพื่อนับว่าข้อมูลมีคอลัมน์ละกี่แถว)
=COUNTA(J:J)/3
Enter
3. A6 คีย์
=IFERROR(INDEX($J$6:$J$1589,SMALL(IF(LEN($J$6:$J$1589)>1,ROW($J$6:$J$1589)-ROW($J$6)+1),ROWS(A$6:A6))),"")
กด Ctrl+Shift ค้างแล้ว Enter >> คัดลอกลงล่าง
4. E6
=IF(INDEX('1'!$H$8:$J$8,INT((SMALL(IF(LEN($J$6:$J$1589)>1,ROW($J$6:$J$1589)-ROW($J$6)+1),ROWS($E$6:$E6))-1)/$I$5)+1)<>E$4,0,
INDEX('1'!$C$9:$E$536,MOD(SMALL(IF(LEN($J$6:$J$1589)>1,ROW($J$6:$J$1589)-ROW($J$6)+1),ROWS($E$6:$E6))-1,$I$5)+1,
INT((SMALL(IF(LEN($J$6:$J$1589)>1,ROW($J$6:$J$1589)-ROW($J$6)+1),ROWS($E$6:$E6))-1)/$I$5)+1))
กด Ctrl+Shift ค้างแล้ว Enter >> คัดลอกไปถึง G6 และคัดลอกลงล่าง
จุดสำคัญคือ: สูตรในคอลัมน์ J เมื่อคัดลอกลงจนเห็นค่าผิดพลาดก็พอครับ แล้วก็ลบเซลล์ที่แสดงค่าผิดพลาดทิ้ง และสูตรตั้งแต่ข้อ 2-4 ก็อ้างอิงเซลล์ในคอลัมน์ J เฉพาะที่มีสูตรครับ
Re: ดึงข้อมูลจาก Sheet หนึ่ง มาเรียงอีกSheet หนึงแบบไม่เอาช่องว่าง
Posted: Tue Oct 18, 2016 5:08 pm
by sakonlaphat