Page 1 of 1

ขอวิธีสร้างสูตรที่ดึงข้อมูลจาก Sheet A บางคอลัมป์ มาใส่ข้อมูลลง Sheet B ในคอลัมป์ที่เราต้องการ

Posted: Tue Mar 12, 2019 4:58 pm
by ตรีชฎาพร
รบกวนขอวิธีสร้างสูตรที่ดึงข้อมูลจาก Sheet A บางคอลัมป์ มาใส่ข้อมูลลง Sheet B ในคอลัมป์ที่เราต้องการ โดยให้เรียงลำดับตามเอกสารจาก Sheet A ตามเดิมด้วยค่ะ (คือเราต้องบันทึกข้อมูลสต๊อกที่ export เป็นไฟล์ excel ออกมาจากโปรแกรมสำเร็จรูป แล้วน้ำข้อมูลบางคอลัมป์ที่ต้องใช้งานมากรอกลงในแบบฟอร์มตามที่ถูกกำหนดอีกค่ะ แต่ข้อมูลมันเยอะมาก อยากได้วิธีที่สามารถช่วยทำให้เร็วขึ้นค่ะ ขอบคุณค่ะ

Re: ขอวิธีสร้างสูตรที่ดึงข้อมูลจาก Sheet A บางคอลัมป์ มาใส่ข้อมูลลง Sheet B ในคอลัมป์ที่เราต้องการ

Posted: Tue Mar 12, 2019 5:16 pm
by puriwutpokin
ทำตัวอย่างข้อมูล บางส่วน และ ผลลัพธ์ที่ต้องการแนบมาเป็นไฟล์ด้วยครับ เพื่อจะสะดวกต่อการตอบครับ

Re: ขอวิธีสร้างสูตรที่ดึงข้อมูลจาก Sheet A บางคอลัมป์ มาใส่ข้อมูลลง Sheet B ในคอลัมป์ที่เราต้องการ

Posted: Wed Mar 13, 2019 9:59 am
by ตรีชฎาพร
sheet A.xls
sheet B.xlsx
แนบไฟล์มาเรียบร้อยแล้วนะคะ
คืออยาก ให้ คอลัมป์ A ใน Sheet A ไปแสดงในคอลัมป์ A Sheet B
คอลัมป์ B ใน Sheet A ไปแสดงในคอลัมป์ C Sheet B
คอลัมป์ C ใน Sheet A ไปแสดงในคอลัมป์ B Sheet B
คอลัมป์ G ใน Sheet A ไปแสดงในคอลัมป์ G Sheet B
คอลัมป์ I ใน Sheet A ไปแสดงในคอลัมป์ D Sheet B
ขอบคุณค่ะ

Re: ขอวิธีสร้างสูตรที่ดึงข้อมูลจาก Sheet A บางคอลัมป์ มาใส่ข้อมูลลง Sheet B ในคอลัมป์ที่เราต้องการ

Posted: Wed Mar 13, 2019 10:30 pm
by snasui
:D ตัวอย่างสูตรครับ

เปิดทั้งสองไฟล์ขึ้นมาพร้อมกัน จากนั้นที่ไฟล์ Sheet B.xlsx คีย์สูตรตามด้านล่าง
  1. ที่ A12 คีย์
    =IFERROR(INDEX('[sheet A.xls]61'!$A$2:$A$134,SMALL(IF($J$5='[sheet A.xls]61'!$E$2,ROW('[sheet A.xls]61'!$A$2:$A$134)-ROW('[sheet A.xls]61'!$A$2)+1),ROWS(A$12:A12))),"")
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
  2. ที่ C12 คีย์
    =IFERROR(INDEX('[sheet A.xls]61'!$B$2:$B$134,SMALL(IF($J$5='[sheet A.xls]61'!$E$2,ROW('[sheet A.xls]61'!$A$2:$A$134)-ROW('[sheet A.xls]61'!$A$2)+1),ROWS(C$12:C12))),"")
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
  3. ที่ D12 คีย์
    =IFERROR(INDEX('[sheet A.xls]61'!$I$2:$I$134,SMALL(IF($J$5='[sheet A.xls]61'!$E$2,ROW('[sheet A.xls]61'!$A$2:$A$134)-ROW('[sheet A.xls]61'!$A$2)+1),ROWS(D$12:D12))),"")
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
  4. ที่ G12 คีย์
    =IFERROR(INDEX('[sheet A.xls]61'!$G$2:$G$134,SMALL(IF($J$5='[sheet A.xls]61'!$E$2,ROW('[sheet A.xls]61'!$A$2:$A$134)-ROW('[sheet A.xls]61'!$A$2)+1),ROWS(G$12:G12))),"")
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
  5. Copy สูตรทั้งหมดไปใช้กับชีตอื่น ๆ

!
Note: Ctrl+Shift+Enter
เป็นการสร้างสูตร Array โดยสามารถเลือกดำเนินการตามข้อ 1 หรือ 2 ด้านล่าง
  1. กรณีคีย์สูตรเอง เมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น
    Ctrl และ Shift พร้อมกันค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
  2. กรณี Copy สูตรไปวางให้กดแป้น F2 เพื่อทำการ Edit Cell นั้นก่อน
    จากนั้นกดแป้น Ctrl และ Shift พร้อมกันค้างไว้แล้วตามด้วย Enter เพื่อสร้างเป็นสูตร Array
  3. หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)}
    ปีกกานี้ไม่สามารถคีย์เข้าไปเอง จะต้องมาด้วยการกดแป้น Ctrl+Shift+Enter เท่านั้น
    ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
  4. การแก้ไขเปลี่ยนแปลงสูตร Array จะต้องกดแป้นให้รับสูตรด้วย Ctrl+Shift+Enter ทุกครั้ง