Macro To Concat Selected Rows Into One Row W/no Dupes
Jul 18, 2007
I would like a macro to invoke after selecting multiple rows that would be concatenated into a single row containing no dupes within each column of selected cells.
Details:
I would like to select '2 to n' rows. I would like the macro to concatenate the cells of the columns only within the selected range. However, if any of those cells are duplicates or blanks, I don't want them included in the concatenated cell. After the concatenation of all selected rows is complete, I'd like the macro to delete all the selected rows, except for the final concatenated row.
[NOTE: Rows 3 and 4 (below) would have been deleted by the macro.
Row 8 would become the final product in row 2's place.]
******** ******************** ************************************************************************>Microsoft Excel - Book1___Running: 11.0 : OS = Windows XP (F)ile (E)dit (V)iew (I)nsert (O)ptions (T)ools (D)ata (W)indow (H)elp (A)boutA1=
ABCDEF1Sample*Data:*****2aaaxxxflintstone,*fredXYthese*are*notes3aaaxxyrubble,*barney*N*4aaaxyz*X*add*notes5******6******7Desired*Output:*****8aaaxxx
xxy
xyzflintstone,*fred
rubble,*barneyXY
Nthese*are*notes
add*notesSheet1*
[HtmlMaker 2.42] To see the formula in the cells just click on the cells hyperlink or click the Name box
PLEASE DO NOT QUOTE THIS TABLE IMAGE ON SAME PAGE! OTHEWISE, ERROR OF JavaScript OCCUR.
I merged about 15 adresslists from media contacts to one excel list. Each list had a name i.e. music, health, theater, etc. and the same logic in colums. I added a few columns and have 1 large list now.
As some journalists write about music & health & theater, architecture, etc. they are listed up to 10 times in the new list now. But the "genres" from the original list i.e. music, health, theater, etc. are in different columns. Some of the lines have empty fields (i.e. no address or mail)
All I want to do is have one line with all the information of all 10 lines in it, merged, dupes removed:
company - firstname - lastname - Adress - Mail, etc. : genre: music - health - theater: example.xlsx
I atteched an example of the full list and the result i want
I need to concatenate and de-dupe. I want to find dupes, concatenate a column, and the delete the duplicate columns--all while maintaining data from other populated columns.
Here is the some example data:
#| Type | Name 1 | A | Bob 1 | B | Bob 1 | C | Bob 2 | B | Sally 2 | E | Sally 3 | A | Bill 3 | C | Bill 4 | E | Nancy
The result should look like:
# | Type | Name 1 | A, B, C | Bob 2 | B, E | Sally 3 | A, C | Bill 4 | E | Nancy
I have a dynamic range of text data that has duplicates in sheet 1, and I would like to have a list formulated without the duplicates into sheet 2 (in a range of cells that I choose). Would anyone be able to help me with this?
I can use Find to find all all my rows where there is an "X" in a cell, and delete all the rows found that way (even if they are separated by other rows) in one fell swoop -MANUALLY. I use Find after having limited the area to be searched with a named array (so other "X's" don't get involved).
But when I record a macro with all the same moves, NONE of the Find code appears in the macro AT ALL....just the delete command. Hello? Relative reference (on the record macro toolbar) seems to have no impact.
So....the mission here is to delete entire rows wherever an "X" has been entered in a certain cell to mark the row for deletion...and those X's get there either through a DV list OR by a cell below the DV copying down the X from the DV cell above.
This is so because sometimes rows are "sub" to the one above, and if the one above is marked for deletion, then so must be the rows sub to it.
I have found this seemingly simple for...next loop here on the board:
For a = 1 To 50 If Cells(a, 17) = "x" Then Rows(a).Select Selection.EntireRow.Delete Next a
But the debugger reports a "next" without a "for" which is obviously there in dark blue as I suppose it should be.
If I could make this puppy work, I would sooner have it start from A2 and then go down from there to the last row -wherever that happens to be.
However, I need to alter this to work for inserting more than one row at a time. ie. the user selects 'x' number of rows and 'x' rows are inserted below (in the same way 'Insert Row' works in Excel) and the row above the selection is copied down.
My excel contains first 5 rows of heading information and the rest of the rows contain the data. I want to select a specific row from the data and run a macro that would delete all other data containing rows.
This is what I have now:
Code: Sub DelRows() Rows(6 & ":" & ActiveCell.Row - 1).Delete Rows(7 & ":" & 65000).Delete End Sub
Everything is fine if I select any data row except the first one (R6). In that case, the macro doesn't work as it should, deleting a row from the heading ones.
Here is my question. I need to alter this routine so that the macro will start at A1 and move to right until it finds its first empty cell and the combine all the strings of the cells it moved past.
I've used vlookup before but his #REF problem has me stumped.
I want to concat two cells in the Source worksheet and vlookup into the Defs sheet, but I keep getting #REF(G4:G6) when I want to return the 2nd column in the Defs sheet. What's curious is when I modify the vlookup to return the 1st column I correctly get the lookup cells(G6:G9).
What's wrong with the formula in G4.
My requirement is I can't change the format of the Source worksheet because it contains macros that work with ERwin. And it is MUCH bigger than the attached sample so I will copy/paste the formula down 6000+ cells.
I am trying to figure out if there is an easy way for me to remove duplicate text when concatenating cells together. For example if I have the following cells defined as such
A1 = red green orange B1 = orange blue purple
when i do a CONCATENATE(A1,B1) I obviously get red green orange orange blue purple
How can i get excel to remove that duplication of the word orange without assigning each individual word to it's own cell and using the remove duplicates function?
I would like to compare email addresses for dupes and add missing PIN number in Column F Sheet 1 from Column F in sheet 2. Is this feasable and relatively simple? I have enclosed a test example as teh acutual scenario has thousands of entries.
Duplication of zips appear in column A - and I only need to return the highest sales in B. So based on the example below..I only need to return $500 in column C.
I have VBA code which selects a group of rows ranging between 1 row and 25 rows. I then want code to group the selected rows, however, the only code I know for grouping requires that I enter a specific starting and ending row (ExecuteExcel4Macro "SHOW.DETAIL(1,#,FALSE,#)").
Is there a way to have VBA group and hide a number or rows which is not known in advance and will change between daily executions of the code?
What I have just tried is click "Reset" in the macro menu and resaved the macro and the workbook, and the proper max/min lines seem to be working. However, I still feel a little unstable about it and will watch it closely.
(My next questions is how to "freeze pane" a row of headings on the results page and post the results onto row 2 and downward *without* deleted row 1) Hello,
Here is my hurdle. Could someone please look at the code below and see if there is a hint why all rows from the top all the way down (from R5 to R604) are outlined, when the code should successfully be stating already that if a value in the S column (to the right) is the maximum, then only outline the rows that across the R rows (up and down) that are the MIN? Then, those red-outlined rows should successfully display on the Results page.
It worked before, but I do not know now why all of the rows on the Details page are now selected.
Is there some indicator in the code that says outline everything?
Issue 2: When I try to run the macro from a button I created, a pop up message says that the file is already open. If I take that literally, it is indeed true because I want the file open. Apparently Excel thinks I have 2 files open with the same title. It wants me to either close one of them or rename them, according to the message. But there isn't another file open according to my searching. What does that message really hint for me to do?
I have the following code, to find the 1st cell in column CG that contains a value of more than -200. I wish to delete the entire row that this resides on, and all rows below.
Range("CG2").Select Do While Not Selection.Value > -200 Selection.Offset(1, 0).Select Loop
I'm trying to write a macro that if a 1 appears in column N (1 may appear more than once & the sheet continues forever) then to hide that particular row.
I will also then have a seperate macro to delete the entire rows where 1 appears.
This works fine in detecting and copying the new material number accross to the master data sheet, but now i want it to copy the row in which the new material number is located as there is other information that goes with so it doesn't have to be manually typed in.
Dim MyValue As Variant Dim FromSheet As Worksheet Dim LookupColumn As Integer Dim FromRow As Long Dim FromColumn As Integer '- Dim ToSheet As Worksheet Dim StartRow As Long Dim LastRow As Long Dim ActiveColumn As Integer Dim ReturnColumnNumber Dim ToRow As Long Dim FoundCell As Object
'================================================= ============ '- MAIN ROUTINE '================================================= ============ Sub DO_LOOKUP() Application.Calculation = xlCalculationManual '---------------------------------------------------------- '- LOOKUP SHEET [**AMEND AS REQUIRED**] Set FromSheet = Workbooks("Book1.xls").Worksheets("MD") LookupColumn = 2 ' look for match here FromColumn = 2 ' return value from here '----------------------------------------------------------- '- ACTIVE SHEET Set ToSheet = ActiveSheet ActiveColumn = ActiveCell.Column................................
I think this might be a programming issue (not sure but I hope it can be solved).
I have three sheets, each containing a table. I'd like users to be able toggle or select rows from these tables for inclusion in a fourth table in a new worksheet.
Unfortunately I have zero knowledge of vba and 0.01 knowledge of macros. I'm attaching a sample of what I'm working with.
In the attached, the "price list," "likely to reference," and "optional" worksheets contain the source tables; I've added a column to the right of each called "include" (where I'd like a user to be able to select a desired row).
The "custom" worksheet is where I'd like an assembled worksheet to live.
I have a worksheet which contain a lot of data in it. I want only certain rows and columns to be printed when I click a button. Actually I am trying to print a report.
Suppose I have data across A10:M100. Lets say from columns A to D are permanent, if the cell colour of any cell from E to M is not Red then that is to be printed along with the contents in A to D. Since I have bunch of data in that sheet almost 10000 rows I separated data by giving them name. If it is possible to have an option to choose from before printing that would be much much better. Because even though there are many cells left uncoloured I don't want them to be in the print as they are belong to another table (I have given name for each table)
If all columns from E to M in row 20 are Red then that row should not appear in the print. If J20 is left uncoloured then it has to be printed along with the data from A20 to D20 ( which I said permanent). This colour I fill by a macro as when required only for the range E to M.
I have two workbooks say 'MASTER' & 'REVISED' in D:Office. The REVISED workbook contains certain rows colored in Yellow which contain the rectified data. How to copy those rows (rectified data rows of workbook REVISED) to the workbook MASTER in the same row number.
I’ve got a little problem with the text to column function.
I’ve got in column A critarias and if it is for example L it should run a surtain text to column code.
With Range("A1:A65536") . AutoFilter Field:=1, Criteria1:="L" Range("B1").Select Selection.End(xlDown).Select Range(Selection, Selection.End(xlDown)).TextToColumnS Destination:=Range("B2"), DataType:=xlFixedWidth, FieldInfo:= Array(Array(0, 1), Array(21, 1), Array(60, 1)) End With
With the Auto Filter some rows between 2 until 7624 are shown. But unfortunately the text to column code is used for every row between 2 and 7624. Does anyone know how to avoid it?
This is easy enough, but I only want to have items listed if every field on the row is unique which I can do, but is it possible to only display these unique lines and have any lines that contain a duplicate not be shown as a blank or anything else?
I have multiple departments and on each department we report the costs in four columns this month, budget, last month and last year. I have summed across the row to a hidden column and if the value is 0 I have a basic macro that "hides" the zero value rows. I understand I could further automate the process by having an "event" based in the spreadsheet which when the calculated values change the macro will run. This would mean when looking at the next department the zeros would automatically be hidden. I suspect I need a worksheet_calculate event but not been able to make it work.