Skip to main content

How to insert blank rows when value changes in Excel?

Supposing you have a range of data, and now you want to insert blank rows between the data when value changes, so that you can separate the sequential same values in one column as following screenshots shown. In this article, I will talk about some tricks for you to solve this problem.

Insert blank rows when value changes with Subtotal function

Insert blank rows when value changes with helper columns

Insert blank rows when value changes with VBA code

Insert specific number of blank rows when value changes with a powerful feature


Insert blank rows when value changes with Subtotal function

With the Subtotal feature, you can insert blank rows between the data when value changes as following steps:

1. Select the data range that you want to use.

2. Click Data > Subtotal to open the Subtotal dialog box, and in the Subtotal dialog, please do the following options:

1: Select the column name which you want to insert blank rows based on when the value changes under At each change in section;
2: Choose Count from the Use function drop down list;
3: Check the column name that you want to insert the subtotal to in the Add subtotal to list box

3. Then click OK, the subtotal lines have been inserted between the different products, and the outline symbols are displayed at the left of the table, see screenshot:

4. And then click the number 2 at the top of the outline symbol to just only display the subtotal lines.

5. Then select the subtotal range data, and press Alt+; shortcut keys to select the visible rows only, see screenshot:

6. After selecting the visible rows only then press the Delete key on the keyboard, and all the subtotal rows have been removed.

7. Then click any other cell, and go back Data > Ungroup > Clear Outline to remove the Outlines, see screenshot:

8. The outline symbols have been cleared at once, and you can see blank rows have been inserted between the data when value changes, see screenshot:

9. At last, you can delete the column A as you need.


Insert page break, blank rows, bottom border or fill color when value changes quickly

If you have Kutools for Excel's Distinguish differences feature, you can quickly insert page break, blank rows, bottom border or fill color when value changes as you need. See the below demo.         Click to download Kutools for Excel!


Insert blank rows when value changes with helper columns

With the helper columns, you can insert formula first, and then apply the Find and Replace function, at last, insert the blank rows between the changing values. Please do as follows:

1. In a blank cell C3, please enter this formula =A3=A2, and in cell D4 enter this formula =A4=A3, see screenshot:

2. Then select C3:D4, and drag the fill handle over to the range that you want to apply theses formulas, and you will get True or False in the cells, see screenshot:

3. And then press Ctrl + F keys to open the Find and Replace dialog, in the popped out dialog, enter FALSE into the Find what text box under Find tab, and click Options button to expand this dialog, and choose Values from the Look in drop down list, see screenshot:

4. Click Find All button, and then press Ctrl + A to select all the results of finding, all FALSE cells have been selected at once, see screenshot:

6. Close the Find and Replace dialog, next step, you can insert blank rows by clicking Home > Insert > Insert Sheet Rows, and blank rows have been inserted into the data when value changes based on column A, see screenshots:

7. Finally, you can delete the helper column C and D as you need.


Insert blank rows when value changes with VBA code

If you are tired of using the above methods, here is a code also can help you to insert blank rows between the changed values at once.

1. Hold down the ALT + F11 keys to open the Microsoft Visual Basic for Applications window.

2. Click Insert > Module, and paste the following code in the Module Window.

VBA code: Insert blank rows when value changes

Sub InsertRowsAtValueChange()
'Update by Extendoffice
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
For i = WorkRng.Rows.Count To 2 Step -1
    If WorkRng.Cells(i, 1).Value <> WorkRng.Cells(i - 1, 1).Value Then
        WorkRng.Cells(i, 1).EntireRow.Insert
    End If
Next
Application.ScreenUpdating = True
End Sub

3. Then press F5 key to run this code, and a prompt box will pop out to let you select one column data that you want to insert blank rows when value changes which you based on, see screenshot:

4. And then click OK, the blank rows have been inserted between data when the value changes based on column A.


Insert specific number of blank rows when value changes with a powerful feature

If you are tried with the above troublesome methods, here, I will introduce a useful tool, Kutools for Excel's Distinguish differences can help you to insert page break, blank rows, bottom border or fill color when cell value changes quickly and easily.

Tips:To apply this Distinguish differences feature, firstly, you should download the Kutools for Excel, and then apply the feature quickly and easily.

After installing Kutools for Excel, please do as this:

1. Click Kutools > Format > Distinguish differences, see screenshot:

2. In the Distinguish differences by key column dialog box, please do the following operations:

  • Select the data range that you want to use, and then choose the key column you want to insert blank rows based on;
  • Then check Blank row option from the Options section, and enter the number of blank rows that you want to insert.

3. Then click Ok button, and the specific number of blank rows have been inserted into the data if cell value changes, see screenshots:

Click to Download Kutools for Excel and free trial Now!

Best Office Productivity Tools

Popular Features: Find, Highlight or Identify Duplicates   |  Delete Blank Rows   |  Combine Columns or Cells without Losing Data   |   Round without Formula ...
Super Lookup: Multiple Criteria VLookup    Multiple Value VLookup  |   VLookup Across Multiple Sheets   |   Fuzzy Lookup ....
Advanced Drop-down List: Quickly Create Drop Down List   |  Dependent Drop Down List   |  Multi-select Drop Down List ....
Column Manager: Add a Specific Number of Columns  |  Move Columns  |  Toggle Visibility Status of Hidden Columns  |  Compare Ranges & Columns ...
Featured Features: Grid Focus   |  Design View   |   Big Formula Bar    Workbook & Sheet Manager   |  Resource Library (Auto Text)   |  Date Picker   |  Combine Worksheets   |  Encrypt/Decrypt Cells    Send Emails by List   |  Super Filter   |   Special Filter (filter bold/italic/strikethrough...) ...
Top 15 Toolsets12 Text Tools (Add Text, Remove Characters, ...)   |   50+ Chart Types (Gantt Chart, ...)   |   40+ Practical Formulas (Calculate age based on birthday, ...)   |   19 Insertion Tools (Insert QR Code, Insert Picture from Path, ...)   |   12 Conversion Tools (Numbers to Words, Currency Conversion, ...)   |   7 Merge & Split Tools (Advanced Combine Rows, Split Cells, ...)   |   ... and more

Supercharge Your Excel Skills with Kutools for Excel, and Experience Efficiency Like Never Before. Kutools for Excel Offers Over 300 Advanced Features to Boost Productivity and Save Time.  Click Here to Get The Feature You Need The Most...

kte tab 201905


Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier

  • Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
  • Open and create multiple documents in new tabs of the same window, rather than in new windows.
  • Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!
Comments (16)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hi, Hassan,

This vba is amazing, whereas I need one more alternate code for insert single blank row after changes in sequencing numbers. Example:- In column having number series like 1, 2, 3, 5, 6, 9 & etc...
Need to add single blank row between 3 & 5 as well as 6 & 9.
Please can you with this.
This comment was minimized by the moderator on the site
Can the VBA method be adapted to ignore blank cells? I have a file which I need to insert rows in based on two different columns but when I run the macro on the second column I end up with three blank lines where the first macro run inserted rows.
Or can it run on two columns at the same time?
This comment was minimized by the moderator on the site
Hello,
Is very usefull in case i need to insert 1 row, but if i need to insert 145 rows in every time the data change in spwcific column, how can i do it??
This comment was minimized by the moderator on the site
Hi, Hassan,
To insert multiple blank rows when value changes in a specific column, you should apply the following VBA code:

Note: In the below code, you should change the number 99 to your need, for example, when you insert 145 blank rows, you should change the number 99 to 144. Please try it, hope it can help you!

Sub InsertRowsAtValueChange()
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
For i = WorkRng.Rows.Count To 2 Step -1
If WorkRng.Cells(i, 1).Value <> WorkRng.Cells(i - 1, 1).Value Then
Range(WorkRng.Cells(i, 1).EntireRow, WorkRng.Cells(i + 99, 1).EntireRow).Insert
End If
Next
Application.ScreenUpdating = True
End Sub
This comment was minimized by the moderator on the site
Very helpful. The code that skyyang shows above worked perfectly. Just make sure that the data doesn't already have spaces in it.

I don't understand VBA, but I believe if you wanted to add more rows underneath data that already had the spacing, there should be a way to ignore spaces.

Could a line be added to ignore or skip over blank lines? That might make this code more universal and repeatable if needed. Also a delete function that is similar to this may be useful so undo isn't necessary.
This comment was minimized by the moderator on the site
RE: insert blank rows when value changes with vba code
Is there a way that I can save the Range & not have to pick it every time I run it?
This comment was minimized by the moderator on the site
The VBA code worked 1st time and did exactly what I was trying to do. Thank you so much!
This comment was minimized by the moderator on the site
I've been using my own solution for some time.
1. Insert a helper column into Column A
2. In A2, type "if(B2=B1,A1,A1+1)"
3. Copy that formula down to the last row
4. Copy all the populated cells in column A and Paste Special (Values) over them
5. Copy all the cells again and paste them into column A in the first unpopulated cell (e.g. if you have 104 rows of data plus a header row you would paste into cell A106)
6. Click on Data and Remove Duplicates (only on the cells you just pasted in Step 5; not on all rows)
7. Sort all of Column A
8. Delete Column A

Seems like a lot of steps but only takes a few seconds.
This comment was minimized by the moderator on the site
[quote]Hi all thank you!! its awesome , can you guys also let me how to insert 2 rows when the value changes in VBA or through excel.By Hudson[/quote] Please let me know how to insert more than 1 row.
This comment was minimized by the moderator on the site
Hi there, These are almost useful! The first method doesn't work for me because when I follow the steps explicitly, the the data that I delete in the subtotal panes deletes the entire columns that I've sorted. In the second method when I get to the step where I insert sheet rows, the rows are inserted ABOVE the FALSE cells which breaks up the data, but the last selection of every group is then added to the group below. Any advice???
This comment was minimized by the moderator on the site
Hi all thank you!! its awesome , can you guys also let me how to insert 2 rows when the value changes in VBA or through excel.
This comment was minimized by the moderator on the site
Where in the code would I need to modify to include more than one row, I need to add 10 after each break... Thanks
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations