ใน Microsoft Excel บางครั้งเราจำเป็นต้องคัดลอกแถวจากแผ่นงานใด ๆ ไปยังแผ่นงานอื่นตามเกณฑ์ที่แตกต่างกัน ในบทความนี้ ผมจะแสดงวิธีต่างๆ ในการคัดลอกแถวจากแผ่นงานหนึ่งไปยังอีกแผ่นหนึ่งตามเกณฑ์ใน Excel
ดาวน์โหลดคู่มือการฝึกปฏิบัติ
คุณสามารถดาวน์โหลดเวิร์กบุ๊กและฝึกฝนกับพวกเขาได้
6 วิธีในการคัดลอกแถวจากแผ่นงานหนึ่งไปยังอีกแผ่นหนึ่งตามเกณฑ์ใน Excel
คุณจะค้นพบวิธีง่ายๆ หกวิธีในการคัดลอกแถวใน Excel ล้วนมีประโยชน์ในการใช้งาน คุณสามารถเลือกสิ่งเหล่านี้เพื่อให้งานของคุณเสร็จสมบูรณ์ เพื่อไม่ให้เป็นการเสียเวลา เรามาตรวจสอบแต่ละแถวกันเพื่อคัดลอกแถวจากแผ่นงานหนึ่งไปยังอีกแผ่นหนึ่งตามเกณฑ์ใน Excel
1. การใช้ตัวเลือกตัวกรอง Excel เพื่อคัดลอกแถวจากแผ่นงานหนึ่งไปยังอีกแผ่นหนึ่ง
สำหรับการสาธิตกระบวนการนี้ ให้พิจารณาชุดข้อมูลของผลไม้บางชนิดที่มีราคาต่อหน่วย , น้ำหนัก และ ราคารวม . ตารางแบบเต็มนี้ถูกบันทึกไว้ในชื่อแผ่นงาน การกรอง Op. ในสมุดงานของเรา ตอนนี้ เราจะคัดลอกแถวจาก Filter Op. และจะบันทึกไว้ใน Result1 แผ่นงานโดยใช้ การกรอง และ กำลังคัดลอก ตัวเลือก
ขั้นตอน:
- ขั้นแรก เลือกข้อมูล
- ประการที่สอง ไปที่ ข้อมูล จากริบบิ้น
- ประการที่สาม คลิกที่ ตัวกรอง ตัวเลือก ภายใต้ จัดเรียงและกรอง กลุ่ม
- เลือกคอลัมน์ที่คุณต้องการคัดลอกแถว ที่นี่ ฉันได้เลือก ผลไม้ คอลัมน์
- จากนั้น เลือกแถวที่คุณต้องการคัดลอกจากเวิร์กชีตนี้ ฉันได้เลือก มะม่วง แถวที่นี่สำหรับตัวอย่าง เฉพาะแถวของรายการที่เลือกเท่านั้นที่จะถูกคัดลอก หากคุณต้องการคัดลอกแถวทั้งหมดของคอลัมน์นี้ คุณสามารถเลือก เลือกทั้งหมด ตัวเลือก
- คัดลอก ข้อมูลทั้งหมดโดยเลือกข้อมูลแล้วกด Ctrl +ค .
- นอกจากนี้ สร้างแผ่นงานใหม่โดยคลิกที่ + (บวก ) ลงชื่อเข้าใช้ด้านล่างหรือคุณสามารถใช้แป้นพิมพ์ลัด SHIFT +F11 .
- วางข้อมูลที่คัดลอกโดยกด Ctrl +วี ลงในเวิร์กชีตใหม่ Result1 .
- สุดท้าย ข้อมูลที่เลือกทั้งหมดจะถูกคัดลอกจาก การกรอง ไปยัง ผลลัพธ์1 .
อ่านเพิ่มเติม: Excel VBA:คัดลอกค่าของเซลล์และวางไปยังเซลล์อื่น
2. ใช้คุณลักษณะขั้นสูงเพื่อทำซ้ำแถวจากแผ่นงานหนึ่งไปอีกแผ่นหนึ่ง
สำหรับการแสดงกระบวนการนี้ เราจะพิจารณาตัวอย่างเดียวกันกับที่แสดงใน วิธีที่ 1 . แต่ที่นี่ฉันจะใช้ ตัวกรองขั้นสูง สำหรับการคัดลอกแถวจาก Sheet3 ไปที่ Sheet4 . และเกณฑ์การทดสอบของเราจะเป็นผลไม้ทั้งหมดที่มีราคารวม มากกว่า 150 . ดังนั้น เราจะคัดลอกแถวจาก Sheet3 ไปที่ Sheet4 โดยที่ราคารวมมากกว่า 150.
ขั้นตอน:
- เริ่มต้นด้วยไปที่ Result1.1 แผ่นงานและเลือก ขั้นสูง ภายใต้ ข้อมูล แท็บ
- หลังจากนั้น เลือก คัดลอกไปยังตำแหน่งอื่น ตัวเลือก
- จากนั้น เลือก ช่วงรายการ กล่องและไปที่ ขั้นสูง แผ่นงานและคัดลอกชุดข้อมูลทั้งหมด
- นอกจากนี้ เลือกช่วงเกณฑ์ เซลล์
- ตอนนี้ เลือก คัดลอกไปยัง ซึ่งจะเปลี่ยนโดยอัตโนมัติไปที่ Result1.1 แผ่นงาน แล้วเลือกเซลล์ใดก็ได้ของแผ่นงานนั้น
- ถัดไป ให้กดปุ่ม ตกลง ปุ่ม.
- ดังนั้น แถวจะถูกคัดลอกจากชีต ขั้นสูง ไปที่ ผลลัพธ์ 1.1 ตามเกณฑ์ดังกล่าว
อ่านเพิ่มเติม: มาโครเพื่อคัดลอกและวางจากแผ่นงานหนึ่งไปยังอีกแผ่นหนึ่ง (15 วิธี)
3. คัดลอกแถวจากแผ่นงานหนึ่งไปยังอีกแผ่นหนึ่งโดยใช้สูตรอาร์เรย์
อีกวิธีหนึ่งในการคัดลอกแถวจากแผ่นงานหนึ่งไปยังอีกแผ่นหนึ่งคือการใช้สูตรอาร์เรย์ การใช้สูตรอาร์เรย์จะทำให้กระบวนการคัดลอกเป็นไปโดยอัตโนมัติ สำหรับการแสดงขั้นตอนนี้ ให้นึกถึงชุดข้อมูลเดียวกันด้านบนที่มีคอลัมน์พิเศษอีกคอลัมน์หนึ่งซึ่งก็คือ ชื่อร้าน ตอนนี้เราจะคัดลอกแถวจากที่หนึ่งไปยังอีกที่หนึ่งตามชื่อร้าน นอกจากนี้ แผ่นงานทั้งหมดจะถูกตั้งชื่อเป็นชื่อร้าน .
เป้าหมายของเราคือคัดลอกแถวตามชื่อร้าน ไปยังแผ่นงานใหม่
ขั้นตอน:
- ในตอนแรก ให้สร้างเวิร์กชีตใหม่ด้วย ชื่อร้าน .
- จากนั้น ไปที่เวิร์กชีตใหม่ เช่น Rooted จากนั้นเลือกเซลล์ B4 และป้อนสูตรด้านล่างแล้วกด CTRL +SHIFT +ENTER . หากคุณกำลังใช้ MS Excel 365 แล้วกด Enter .
=IFERROR(INDEX(Sheet7!$A$4:$E$100,SMALL(IF(Sheet7!$F$4:$F$100=$F$3,ROW(Sheet7!$A$4:$B$100)-ROW(Sheet7!$B$4)+1),ROWS(Sheet7!$A$4:$B4)),COLUMN()),"")
คำอธิบายสูตร
ในสูตรนี้ เราได้ใช้ฟังก์ชัน Excel บางอย่าง ฉันจะพูดถึงฟังก์ชันทั้งหมดที่ใช้ในสูตรอาร์เรย์
ROWS(array)
ฟังก์ชัน ROWS นำอาร์เรย์หรือการอ้างอิงไปยังช่วงของเซลล์และส่งคืนจำนวนแถวในการอ้างอิงหรืออาร์เรย์ตามช่วงที่เรากำหนด
COLUMN([reference])
โดยข้ามการอ้างอิงเซลล์ในพารามิเตอร์ของ ฟังก์ชัน COLUMN เราจะได้หมายเลขคอลัมน์เฉพาะตามการอ้างอิงเซลล์ที่เราให้มา
SMALL(array, n)
การใช้ ฟังก์ชัน SMALL เราสามารถกำหนด n . ได้ ค่าที่น้อยที่สุดในอาร์เรย์เฉพาะใดๆ โดยทั่วไป ส่วนแรกของพารามิเตอร์จะเก็บช่วงของชุดข้อมูลหรืออาร์เรย์ และส่วนอื่นๆ จะมีตำแหน่งที่ต้องการในอาร์เรย์หรือช่วงของข้อมูลที่จะส่งคืนจากฟังก์ชันนี้
INDEX(array, row_num, [column_num])
ฟังก์ชันอื่นที่เราใช้คือ ฟังก์ชัน INDEX . มีบางส่วนในพารามิเตอร์ของฟังก์ชันนี้ ในส่วนแรกจะใช้อาร์เรย์หรือช่วงของช่วงข้อมูลที่ต้องการซึ่งจำเป็น ประการที่สอง ใช้หมายเลขแถวจากตำแหน่งที่เราต้องการคืนค่า สุดท้ายนี้ ไม่จำเป็นต้องระบุส่วนหมายเลขคอลัมน์ หรือไม่ก็ได้ เราสามารถส่งค่าหมายเลขคอลัมน์เฉพาะในอาร์เรย์ที่จะคืนค่าได้
IFERROR(value, value_if_error)
นี่คือฟังก์ชันสุดท้ายซึ่งก็คือ ฟังก์ชัน IFERROR หรือฟังก์ชันนอกสุดที่ใช้ในสูตรอาร์เรย์ของเรา ส่วนใหญ่เป็นฟังก์ชันตามเงื่อนไขที่ตรวจสอบว่าค่าที่กำหนดของเราเท่ากับค่าความผิดพลาดหรือไม่ ในส่วนแรก จะใช้ค่าที่ป้อนเข้าไปและตรวจสอบค่าว่าค่านั้นเป็นค่าผิดพลาดหรือไม่ จากนั้นจะส่งกลับส่วนที่สองของพารามิเตอร์
- นอกจากนี้ ให้คัดลอกสูตรไปทางขวาเพื่อให้ได้แถวที่ตรงกันทั้งหมด
- ทำแบบเดียวกันกับเวิร์กชีตอื่นๆ
- คุณสามารถตรวจสอบได้โดยการเปลี่ยนค่าใดๆ ใน สูตรอาร์เรย์ แผ่นงานว่าค่าจะเปลี่ยนโดยอัตโนมัติหรือไม่
- ไปที่ Rooted แผ่นงานและดูการเปลี่ยนแปลง
อ่านเพิ่มเติม: Excel VBA เพื่อคัดลอกแถวไปยังแผ่นงานอื่นตามเกณฑ์
การอ่านที่คล้ายกัน
- วิธีการคัดลอกแถวสำรองใน Excel (4 วิธี)
- [แก้ไขแล้ว]:คลิกขวาคัดลอกและวางไม่ทำงานใน Excel (11 โซลูชัน)
- วิธีการคัดลอกแถวใน Excel ด้วยตัวกรอง (6 วิธีที่รวดเร็ว)
- Excel VBA เพื่อคัดลอกข้อมูลจากสมุดงานอื่นโดยไม่ต้องเปิด
- วิธีการคัดลอกหลายเซลล์ไปยังชีตอื่นใน Excel (9 วิธี)
4. การใช้ฟังก์ชันรวมเพื่อสร้างแถวที่ซ้ำกัน
มาดูวิธีอื่นในการคัดลอกแถวที่แสดงในแผ่นงานอื่นโดยอัตโนมัติ สำหรับวิธีนี้ เราจะพิจารณาชุดข้อมูลเดียวกันกับที่ใช้ในวิธีที่ 4 ตอนนี้เราจะจัดเรียงรายการผลไม้ตามชื่อร้าน และตรวจสอบว่า ราคารวม มากกว่า 130 ดอลลาร์ . หากเราเพียงแค่เลือก ชื่อร้าน จากรายการแบบเลื่อนลงแล้วกด Enter จากนั้นแถวที่ตรงกันทั้งหมดจะถูกคัดลอกจาก ฟังก์ชัน แผ่นงานและแสดงใน Result2 แผ่น.
ขั้นตอน:
- ขั้นแรก เลือก G5 เซลล์ใน ฟังก์ชัน แผ่นงานแล้วป้อนสูตรด้านล่าง:
=IF(AND(F4=Sheet15!$C$1,E4>=130),MAX(G$1:G2)+1,"-")
- จากนั้นกดปุ่ม Enter คีย์จากแป้นพิมพ์ของคุณ
- ลาก เติมแฮนเดิล ไอคอนลงเพื่อทำซ้ำสูตรในช่วง หรือเพื่อป้อนอัตโนมัติ ช่วง ดับเบิลคลิก ในทางบวก (+ ) สัญลักษณ์
- สุดท้ายก็เห็นผล
คำอธิบายสูตร
ที่นี่ฉันได้ใช้ฟังก์ชัน Excel ที่แตกต่างกัน ฉันได้กล่าวถึงรายละเอียดทุกฟังก์ชันด้านล่าง:
MAX(number1, [number2], ...)
ฟังก์ชัน MAX รับตัวเลขในพารามิเตอร์และส่งกลับค่าสูงสุดในหมู่พวกเขา
AND (logical1, [logical2], ...)
ฟังก์ชัน AND เป็นฟังก์ชันทางลอจิคัลที่ใช้เงื่อนไขเชิงตรรกะสองเงื่อนไขขึ้นไปเป็นพารามิเตอร์และคืนค่า True หากเป็นไปตามเงื่อนไขทั้งหมด มิฉะนั้น จะส่งกลับ False .
IF (logical_condition, [value_if_true], [value_if_false])
นี่เป็นอีกหนึ่งฟังก์ชันที่มีเงื่อนไขซึ่งก็คือ ฟังก์ชัน IF ใน Excel ที่ใช้เงื่อนไขตรรกะและส่งกลับค่าตามเงื่อนไขไม่ว่าจะเป็น จริง หรือ เท็จ .
- นอกจากนี้ ไปที่ ผลลัพธ์2 แผ่นงานและป้อนสูตรในเซลล์ B7.
=IFERROR(INDEX(Sheet14!F:F,MATCH(ROWS($1:1),Sheet14!$G:$G,0))&"","")
- กดปุ่ม Enter ที่สำคัญ
คำอธิบายสูตร
ที่นี่เฉพาะ MATCH ฟังก์ชันใหม่ที่เราเคยใช้มาจนถึงปัจจุบัน
MATCH(lookup_value, lookup_array, [match_type])
ใน ฟังก์ชัน MATCH ส่วนแรกในพารามิเตอร์จะใช้เป็นค่าการค้นหาซึ่งเป็นค่าที่เราต้องการค้นหาหรือค้นหา ส่วนถัดไปเป็นช่วงอาร์เรย์ของเซลล์ที่เราจะค้นหาค่าการค้นหา และประเภทการจับคู่สุดท้ายคือค่า -1, 0, 1 ซึ่งกำหนดวิธีที่ Excel จับคู่ lookup_value กับค่าใน lookup_array
- นอกจากนี้ ให้คัดลอกอาร์เรย์ไปทางขวา
- ตอนนี้ เลือกชื่อร้านใดก็ได้ แล้วจะแสดง ชื่อร้าน และ ผลไม้ ชื่อเมื่อตรงกับชื่อร้าน ราคารวม มากกว่า 130 ดอลลาร์ .
อ่านเพิ่มเติม: Excel VBA:คัดลอกช่วงไปยังสมุดงานอื่น
5. ใช้ฟังก์ชัน Excel FILTER เพื่อคัดลอกแถวจากแผ่นงานหนึ่งไปยังอีกแผ่นหนึ่ง
คุณสามารถใช้ฟังก์ชัน FILTER เพื่อกรองข้อมูลที่หลากหลายตามเกณฑ์ที่คุณระบุ ทำตามขั้นตอนเพื่อใช้ฟังก์ชันนี้เพื่อคัดลอกแถวจากที่หนึ่งไปยังอีกที่หนึ่งตามเกณฑ์ เราจะใช้ชุดข้อมูลต่อไปนี้ เราจะนำข้อมูลจาก FILTER แผ่นงานและคัดลอกลงใน Result3 แผ่น.
ขั้นตอน:
- อันดับแรก เราเลือกเซลล์ที่ต้องการดูผลลัพธ์
- และใส่สูตรลงในเซลล์นั้น ในกรณีของเรา เซลล์คือ B5 จากแผ่นงาน ผลลัพธ์3 .
=FILTER(FILTER!B4:F14,FILTER!F4:F14="Rooted")
- นอกจากนี้ ให้กดปุ่ม Enter คีย์จากแป้นพิมพ์ของคุณ
- และ นั่นแหละ! แถวทั้งหมดที่ตรงตามเกณฑ์จะคัดลอกจาก ตัวกรอง แผ่นงานไปยัง ผลลัพธ์3 แผ่น.
6. ใช้ Excel VBA สำหรับการคัดลอกแถวจากแผ่นงานหนึ่งไปยังอีกแผ่นหนึ่ง
ที่นี่ฉันจะทำสิ่งเดียวกันกับตัวอย่างก่อนหน้านี้ แต่โดยใช้ VBA We will find out the list of fruits whose total prices are greater than 150 from sheet VBA to sheet Result4 by clicking on a command button. Let’s see the steps to copy rows from one sheet to another based on criteria in Excel.
STEPS:
- In the first place, go to the Developer Tab.
- Then, select the ActiveX Control under the Insert ตัวเลือก
- Change the button caption and font using the Properties ตัวเลือก
- Click on the button it will move you to the VBA window. Write the code like this:
Code:
Private Sub CommandButton1_Click()
a = Worksheets("VBA").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To a
If Worksheets("VBA").Cells(i, 4).Value > 150 Then
Worksheets("VBA").Rows(i).Copy
Worksheets("Result4").Activate
b = Worksheets("Result4").Cells(Rows.Count, 1).End(xlUp).Row
Worksheets("Result4").Cells(b + 1, 1).Select
ActiveSheet.Paste
Worksheets("VBA").Activate
End If
Next
Application.CutCopyMode = False
ThisWorkbook.Worksheets("VBA").Cells(1, 1).Select
End Sub
- After that, run the code by clicking on the RubSub button or pressing the keyboard shortcut F5 . Or, click on the button.
VBA Code Explanation
Here the important lines of the code are explained.
- We are counting the total row number from VBA and storing it in variable a.
- Using IF conditions we are checking the Total Price of each fruit row.
- Again, count the row number of Result4 and store it in variable b.
- Selecting the matched values by incrementing the value of b.
- After that, we click on the Run button of VBA .
- Finally, go to sheet Result4 then you will see copied rows from one sheet to another based on criteria in Excel.
อ่านเพิ่มเติม: How to Copy Rows Automatically in Excel to Another Sheet (4 Methods)
บทสรุป
The above methods will assist you to copy rows from one sheet to another based on criteria in Excel. I have shown all the methods with their respective examples. If you have any other method of achieving this then please feel free to share it with us.
บทความที่เกี่ยวข้อง
- How to Display Text from Another Cell in Excel (4 Suitable Ways)
- VBA Code to Compare Two Excel Sheets and Copy Differences
- How to Use VBA to Paste Values Only with No Formatting in Excel
- Copy and Paste is Not Working in Excel (9 Reasons &Solutions)
- How to Copy Multiple Rows in Excel Using Macro (4 Examples)