I need to take one column as Key and other as values, and get resulting sheet with one key one value.

anujpatel0718

New Member
Joined
Nov 12, 2014
Messages
2
Question,
Column A has key values. In column B, few rows just have one values and few have multiple values. I.e.
A B
1 x
2 x,y,z
3 y,z,e
4 n,m
I need the resulting sheet as follows,
A B
1 x
2 x
2 y
2 z
3 y
3 z
3 e

4 n
4 m


I have a huge list for this,
If anyone can help.
 

Excel Facts

Workdays for a market open Mon, Wed, Friday?
Yes! Use "0101011" for the weekend argument in NETWORKDAYS.INTL or WORKDAY.INTL. The 7 digits start on Monday. 1 means it is a weekend.
anujpatel0718,

Welcome to the MrExcel forum.

1. What version of Excel and Windows are you using?

2. Are you using a PC or a Mac?


Sample raw data in the active worksheet:


Excel 2007
AB
11x
22x,y,z
33y,z,e
44n,m
5
6
7
8
9
10
Sheet1


After the macro:


Excel 2007
AB
11x
22x
32y
42z
53y
63z
73e
84n
94m
10
Sheet1


Please TEST this FIRST in a COPY of your workbook (always make a backup copy before trying new code, you never know what you might lose).

1. Copy the below code
2. Open your NEW workbook
3. Press the keys ALT + F11 to open the Visual Basic Editor
4. Press the keys ALT + I to activate the Insert menu
5. Press M to insert a Standard Module
6. Where the cursor is flashing, paste the code
7. Press the keys ALT + Q to exit the Editor, and return to Excel
8. To run the macro from Excel press ALT + F8 to display the Run Macro Dialog. Double Click the macro's name to Run it.

Code:
Sub ReorgData()
' hiker95, 11/12/2014, ME817835
Dim r As Long, lr As Long, s
Application.ScreenUpdating = False
With ActiveSheet
  lr = .Cells(Rows.Count, 1).End(xlUp).Row
  For r = lr To 1 Step -1
    If InStr(.Cells(r, 2), ",") Then
      s = Split(Trim(.Cells(r, 2)), ",")
      Rows(r + 1).Resize(UBound(s)).Insert
      .Cells(r, 2).Resize(UBound(s) + 1) = Application.Transpose(s)
      .Cells(r + 1, 1).Resize(UBound(s)) = .Cells(r, 1).Value
    End If
  Next r
End With
Application.ScreenUpdating = True
End Sub

Before you use the macro with Excel 2007 or newer, save your workbook, Save As, a macro enabled workbook with the file extension .xlsm

Then run the ReorgData macro.
 
Upvote 0
anujpatel0718,

Welcome to the MrExcel forum.

1. What version of Excel and Windows are you using?

2. Are you using a PC or a Mac?


Sample raw data in the active worksheet:

Excel 2007
AB
11x
22x,y,z
33y,z,e
44n,m
5
6
7
8
9
10

<colgroup><col style="width: 25pxpx"><col><col></colgroup><thead>
</thead><tbody>
</tbody>
Sheet1



After the macro:

Excel 2007
AB
11x
22x
32y
42z
53y
63z
73e
84n
94m
10

<colgroup><col style="width: 25pxpx"><col><col></colgroup><thead>
</thead><tbody>
</tbody>
Sheet1



Please TEST this FIRST in a COPY of your workbook (always make a backup copy before trying new code, you never know what you might lose).

1. Copy the below code
2. Open your NEW workbook
3. Press the keys ALT + F11 to open the Visual Basic Editor
4. Press the keys ALT + I to activate the Insert menu
5. Press M to insert a Standard Module
6. Where the cursor is flashing, paste the code
7. Press the keys ALT + Q to exit the Editor, and return to Excel
8. To run the macro from Excel press ALT + F8 to display the Run Macro Dialog. Double Click the macro's name to Run it.

Code:
Sub ReorgData()
' hiker95, 11/12/2014, ME817835
Dim r As Long, lr As Long, s
Application.ScreenUpdating = False
With ActiveSheet
  lr = .Cells(Rows.Count, 1).End(xlUp).Row
  For r = lr To 1 Step -1
    If InStr(.Cells(r, 2), ",") Then
      s = Split(Trim(.Cells(r, 2)), ",")
      Rows(r + 1).Resize(UBound(s)).Insert
      .Cells(r, 2).Resize(UBound(s) + 1) = Application.Transpose(s)
      .Cells(r + 1, 1).Resize(UBound(s)) = .Cells(r, 1).Value
    End If
  Next r
End With
Application.ScreenUpdating = True
End Sub

Before you use the macro with Excel 2007 or newer, save your workbook, Save As, a macro enabled workbook with the file extension .xlsm

Then run the ReorgData macro.

Version is 2010 and windows 7.
Let me try and I will get back to you.
 
Upvote 0
anujpatel0718,

Version is 2010 and windows 7.
Let me try and I will get back to you.

Will be looking for your reply.


1. Quote ONLY if it is needed to add clarity or context for your reply. If so, then
2. Quote ONLY the specific part of the post that is relevant - - not the entire post.

This will keep thread clutter to a minimum and make the discussion easier to follow.
 
Upvote 0

Forum statistics

Threads
1,214,915
Messages
6,122,217
Members
449,074
Latest member
cancansova

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top