Delete Duplicate Entries, Keep Last And Delete First
Feb 15, 2010
I found this sample code that works from top to bottom of a spreadsheet. But I need something that will delete the first entry and keep the last entry. My data is sent from one spreadsheet to a Master and sometimes the details can be sent twice, if the responsible person forgets to enter one line of production. The criteria should be the first 5 Columns of the sheet.
Sub Dupe_Killer()
Dim str As String
Dim str2 As String
Dim c As Integer
Dim i As Integer
Application. ScreenUpdating = False
Application.Calculation = xlCalculationManual
Sheets("SAMPLE").Select
rw = Cells(2, 1).End(xlDown).Row
'Sort Data by Date, Location & Number
Range(Cells(1, 1), Cells(1, 14)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Sort Key1:=Cells(1, 1), Order1:=xlAscending, Key2:=Cells(1, 2) _
, Order2:=xlAscending, Key3:=Cells(1, 3), Order3:=xlAscending, Header:= _
xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ ....................................
Col 1 is user IDs and Col 2 is there status (pending, conditional, approved, rejected)
Col1 IDs are not unique because they can have multiple statuses associated with them in Col2. An ID can go from pending to conditional to either approved/rejected and all these are included in the raw data file. I want to remove all duplicate ID rows and keep the ID row with the last known status.
In column A I have a list of Acronyms from A2:A90000 and more
In column B I have the corresponding acronyms spelt out from B2:B90000 and more
When I run the macro, it shoud detect the multiple/duplicate Acronyms and it's corresponding descriptions, DELETE the multiples/duplicates and move the cells up.
I have a UserForm which writes data to rows in a master spreadsheet. I'm attempting to write some vba code for a CommandButton in the master spreadsheet which can identify and delete duplicate entries based on "user ID", "Date", and "Time". I would like the CommandButton to retain the most recent entry from a user and delete all previous entries.
My master sheet is set out as such... A, B, C, D, UserID, Date, Time, Response
The users could potentially submit multiple entries on the same day. Ideally I would like to be able to click a CommandButton and delete each user's submission but retain their most recent one (based on "UserID", then "Date", then "Time").
I've searched all day for a solution and I've come close but I can not figure out a code that accounts for my three variables ("UserID", then "Date", then "Time").
I have a worksheet that has 3 duplicate values in a particular column, I need a macros that will highlight two of the duplicates row and then another macro to delete the entire row. The duplicate element are in column R. find attached worksheet.
I have a spreadsheet with 3300 rows. In column A there is a list of company names and in column H there is a corresponding Sales Rep name.Column A has many duplicate company names. I would like to run a macro that will find the a company name and then delete all the rest of the rows that contain that same company name.
I have 4 columns in my spreadsheet. I am trying to find any duplicates that may exist in Col A, sum values in Col D, then delete the entire row. So far my sheet before I run my vba code is this.
Col A 100 101 102 105 100 101 102 105
Col D 5 4 2 4 1 2 3 1
After my code is run, I need for my spreadsheet to look like this
Col A 100 101 102 105
Col D 6 6 5 5
I have some code but I still need to do a considerable amount of tweaking to it. Currently my code is only deleting the duplicate values in Col A. I am having difficulty summing the values in Col D as well as deleting the entire row.
Here is my code thus far....
------- Public Sub FindDuplicates() For RwCnt = 1 To (Worksheets(1).Cells(65536, 1).End(xlUp).Row) SrchValue = Worksheets(1).Cells(RwCnt, 1).Value If Len(Trim(SrchValue)) > 0 Then With Worksheets(1).Range("a1:a" & Cells(65536, 1).End(xlUp).Row)
I have 4 columns in my spreadsheet. I am trying to find any duplicates that may exist in Col A, sum values in Col D, then delete the entire row. So far my sheet before I run my vba code is this.
Col A 100 101 102 105 100 101 102 105
Col D 5 4 2 4 1 2 3 1
After my code is run, I need for my spreadsheet to look like this Col A 100.........................
I was wondering if there might be a better way to write this macro. What it does is clears unique items from a Range( leaves duplicates ) I've looked all over the net I can find all kinds of function and subs to remove duplicates but haven't been able to find anything that just removes single entries. I"ll bet there's a more elegant way to write this maybe using a Collection or a Dictionary.
Sub Dummy() Dim MP1_Rnge As Range Set MP1_Rnge = Range("A1:A100") For Each Cell In MP1_Rnge If Not IsEmpty(Cell) Then If Cell.Row = 1 Then..........
A project for work requires me to write a macro for a set of data that will delete all entries that are above a certain "Margin %" limit. However, different "Product Codes" will have different limits.
Is there a way that I can set up a table of Product Codes and Margin % limits, and have the macro consult the table and delete all entries above the margin limits for the respective product codes?
i have a slight problem i have this script which i want to run on all worksheets which are numbered (i.e. 1,2,3,4 etc) and to delete the rows in the F128 range which is under 00:05:00. I just cant figure it out to get it working.
I have an accounts spreadsheet that I copy and paste customers names and addies into from the website back end sales information.
I do not copy e-mail addresses.
I have a mailto: with an e-mail address appear in the file in lots of places, it seems I delete it from some cells and it appears in others, my file is infested with the things now.
I can delete one by one, but this would take me weeks any ideas of how I can ctrl a select all cells and mass delete these things.
I am face with making a brand new accounts file which is a lot of work.
I have a very big range of data from B4, to a variable other end from which I would like to delete all entries equal to 0.0000 leaving just those with an entered value.
I guess it's just an if question cycling through the rows and columns? Slight complication is it's on the 3rd sheet of a Workbook, as set out in the sample file.
After this manipulation has been done, I then wish to copy the data from the range B4: end of data into the same cells in the output sheet.
i've got a range of data. Typically there are columns that have the same value running for a few hundred lines before it gets to the next value. What i'm trying to do is create a macro that when i select a value in a column i would run the macro and it would delete all the duplicate values until it reaches the next value but making sure it only deletes that value in that specific column.
I have debits & credits in the same excel column and i want to delete the matching amounts but with opposite signs.
Example: A B Name Amount 1)Mr. A 2000 2)Mr. B 6000 3)Mr. A -2000 4)Mr. D 4000 5)Mr. A 2000
Now i want to matching amount of Mr. A of row 1 & 3 as these two entries are reversing each other. I am poor in english but hope that i have clarified the problem
I have a spreadsheet with a column of records (text ) from B1:B4000. I would like to delete the entire row of the duplicate record. Overall data set range is (A1:I4000). This spreadsheet may contain more than 1 duplicate record. Is there in easy fix?
I'm a first timer here an I'm hving a problem with data. I have 3 sheets in a workbook, I want to transfer all the data to one sheet. I have 3 columns labelled Number, Name, & Sales, on each sheet some of the numbers and names are the same and I want to be able to match them up and put the sales from each sheet into a new column, so the final sheet will have 5 columns in total, if the numbers and names don"t match I just want to add those to the bottom of the matched ones.
I've been trying to sum merge, and delete duplicate rows in this massive spreadsheet (over 15,000 rows). Currently I've gotten to the point where the duplicate lines are eliminated but the quantity is recording the number of times the line has moved, not summing. Below is an example of what I'm looking for
I'm having trouble getting this piece of macro to work. I want to delete duplicate Id records in (Cell B12 : B124), but only those with "No" in the (Cell Z12 : Z124) will be deleted.
Table B12 Z12 ------------- E1 Yes E2 Yes E3 Yes E4 Yes E1 No E2 No E3 No E4 No
I have 2 columns A & B. A has many duplicates and B has numerical values. I would like to delete all duplicates in A apart from the ones highest value in B?
I am trying to delete duplicate rows and have had some success using a VBA from MR Excel threads. However, i would like to add multiple sheets to be compared. When i change the vba to use array, the next line fails with error 438, not a supported objectproperty method.....
Here is the code:
Sub CheckWest() Dim LR As Long, i As Long With Sheets("west") LR = .Range("C" & Rows.Count).End(xlUp).Row For i = LR To 1 Step -1 If IsNumeric(Application.Match(.Range("C" & i).Value, Sheets("Removals").Columns("C"), 0)) Then .Rows(i).Delete Next i End With End Sub
This checks the sheet "removals" column "c", any duplicates found in sheet "west" column "c", row is deleted. I would like to add additional sheets, how to correctly change this line of the VBA?
With Sheets(array("west", "east", "north"))?? I beileive this is what i tried and the next line errored.
I have a list of about 1,000 rows with multiple columns. Each row represents a unique person and the columns represent codes that were assigned to them. I have merged two sets of codes together to create this list, so some people (rows) may have duplicate codes. I would like to be able to delete all duplicate values from each individual person (row) so any given code only shows up once for a person.
I've searched the forums, and there are a lot of similar questions, but not quite what I'm looking for.
I have a large list of song titles, in one column. As an example, Song A is listed 4 times, Song B is 10 times, and Song C is 6 times.
Is it possible for Excel to go from this:
Song A Song A Song A Song A Song B Song B Song B Song B Song B Song B Song B Song B Song B Song B Song C Song C Song C Song C Song C Song C
to this:
04-Song A 10-Song B 06-Song C
The numbers wouldn't necessarily have to be in the same cell, as long as I can sort the list from highest to lowest numbers while keeping the song titles matched with the correct number of instances.
How can I create a macro for excel to delete rows that have the SAME subject? (delete all duplicates - the price etc on that row may differ but as long as the subject is the same, I was to delete it off)