ฉันมีแผ่นงาน Excel ที่มีแถวที่ซ้ำกัน
ฉันต้องการลบแถวหากคอลัมน์ ACDEF เหมือนกัน (ข้าม B ในขณะคำนวณซ้ำ แต่ลบออกขณะลบแถว)
ในขณะนี้มันจะไม่สนใจ B ในขณะที่การเปรียบเทียบและการลบ
ฉันมีแผ่นงาน Excel ที่มีแถวที่ซ้ำกัน
ฉันต้องการลบแถวหากคอลัมน์ ACDEF เหมือนกัน (ข้าม B ในขณะคำนวณซ้ำ แต่ลบออกขณะลบแถว)
ในขณะนี้มันจะไม่สนใจ B ในขณะที่การเปรียบเทียบและการลบ
คำตอบ:
ใน Excel 2013
เสร็จสิ้น
หากฉันเข้าใจคุณอย่างถูกต้องกำหนดแถวที่ 1 และ 2 คุณต้องการลบแถวที่ 2 หากและถ้า A1 = A2, C1 = C2, D1 = D2, E1 = E2 และ F1 = F2
นี่คือสิ่งที่ฉันมาด้วย มันอาจจะสั้นลง แต่ทำตามเคล็ดลับ:
Sub DeleteDuplicate()
Dim current As String
ActiveSheet.Range("A1").Activate
Do While ActiveCell.Value <> ""
current = ActiveCell.Address
ActiveCell.Offset(1, 0).Activate
Do While ActiveCell.Value <> ""
If ((ActiveSheet.Range(current).Value = ActiveCell.Value) And (ActiveSheet.Range(current).Offset(0, 2).Value = ActiveCell.Offset(0, 2).Value) And (ActiveSheet.Range(current).Offset(0, 3).Value = ActiveCell.Offset(0, 3).Value) And (ActiveSheet.Range(current).Offset(0, 4).Value = ActiveCell.Offset(0, 4).Value) And (ActiveSheet.Range(current).Offset(0, 5).Value = ActiveCell.Offset(0, 5).Value)) Then
ActiveSheet.Rows(ActiveCell.Row).Delete
Else
ActiveCell.Offset(1, 0).Activate
End If
Loop
ActiveSheet.Range(current).Offset(1, 0).Activate
Loop
End Sub
สิ่งนี้จะวนซ้ำไปตามบรรทัดที่เหลือทั้งหมดโดยใช้ ActiveCell เป็นตัวชี้ไปยังแถวที่กำลังถูกประเมินและเก็บเซลล์แถว "ดั้งเดิม" ในตัวแปรปัจจุบัน เมื่อลูปสิ้นสุดลงเซลล์ด้านล่างปัจจุบันจะเปิดใช้งานและลูปการประเมินผลภายในจะเริ่มขึ้นอีกครั้ง
ถ้าฉันทำบางสิ่งบางอย่างไม่ลังเลที่จะบอกฉัน :)
เพิ่มสูตรนี้ลงในแต่ละแถวเช่น; ในคอลัมน์ G:
=IF(AND(A2=C2,A2=D2,A2=E2,A2=F2),"DELETE ME","")
สิ่งนี้จะให้ผลลัพธ์เช่น:
A B C D D F G
- - - - - - -
x o x x x x DELETE ME
x x x x x o
x x x x x x DELETE ME
x o o x x x
จากนั้นสร้างตัวกรองในคอลัมน์ G สำหรับแถวที่บอกว่า 'ลบฉัน' แล้วลบออก
@ Garrulinae
ฉันใช้ความคิดของคุณเป็นแรงบันดาลใจ ฉันมีแถวจำนวนมากและสิ่งที่ฉันต้องการคือการลบแถวที่มีค่าซ้ำกันของคอลัมน์ ถ้าฉันใช้ลบรายการที่ซ้ำกันในคอลัมน์นั้นมันจะลบเฉพาะข้อมูลจากคอลัมน์นั้นและไม่ใช่ทั้งแถว ฉันต้องการลบทุกแถวที่ 2 และ 3 จากตารางทั้งหมด ดังนั้นสิ่งที่ฉันทำฉันสร้างคอลัมน์ใหม่และปล่อยให้ค่าในแถวแรกว่างเปล่าลบฉันในแถวที่สองและสาม จากนั้นฉันก็คัดลอกค่าของสามแถวแรกของคอลัมน์นั้นเท่านั้น (ไม่ใช่ทั้งแถว) และวางเหนือทั้งคอลัมน์ของตาราง ตอนนี้ฉันมี "ลบฉัน" ในทุกแถวที่ 2 และ 3 ของคอลัมน์ทั้งหมด จากนั้นฉันต้องเรียงลำดับค่าของคอลัมน์นั้นและลบแถวทั้งหมดที่มี delete me คุณสามารถใช้โซลูชันเดียวกันหากคุณต้องการลบทุก ๆ 2, 3 และ 4 หรือ 2, 3, 4 และ 5 หรืออื่น ๆ ...
หวังว่าจะช่วยใครบางคน ....