Hoppa till huvudinnehåll

Hur infogar jag tomma rader när värdet ändras i Excel?

Om du antar att du har en rad data och nu vill du infoga tomma rader mellan data när värdet ändras, så att du kan separera samma sekventiella värden i en kolumn som följande skärmdumpar visas. I den här artikeln kommer jag att prata om några knep för att lösa detta problem.

Infoga tomma rader när värdet ändras med delsumma-funktionen

Infoga tomma rader när värdet ändras med hjälpkolumner

Infoga tomma rader när värdet ändras med VBA-kod

Infoga specifikt antal tomma rader när värdet ändras med en kraftfull funktion


Infoga tomma rader när värdet ändras med delsumma-funktionen

Med Summa funktion kan du infoga tomma rader mellan data när värdet ändras enligt följande steg:

1. Välj det dataområde du vill använda.

2. Klicka Data > Summa att öppna Summa dialogrutan och i Summa gör följande alternativ:

1: Välj kolumnnamnet som du vill infoga tomma rader baserat på när värdet ändras under Vid varje byte i avsnitt;
2: Välj Att Räkna från Använd funktionen rullgardinsmeny;
3: Kontrollera kolumnnamnet som du vill infoga delsumman till i Lägg till delsumma till listrutan

3. Klicka sedan OK, delsumminraderna har infogats mellan de olika produkterna och kontursymbolerna visas till vänster om tabellen, se skärmdump:

4. Och klicka sedan på siffran 2 högst upp på kontursymbolen för att bara visa delsumminraderna.

5. Välj sedan data för delsumman och tryck på Alt +; snabbtangenter för att endast välja de synliga raderna, se skärmdump:

6. När du bara har valt de synliga raderna, tryck sedan på Radera på tangentbordet och alla delsumma rader har tagits bort.

7. Klicka sedan på någon annan cell och gå tillbaka Data > Dela upp > Rensa konturer för att ta bort konturerna, se skärmdump:

8. Kontursymbolerna har rensats på en gång och du kan se att tomma rader har infogats mellan data när värdet ändras, se skärmdump:

9. Äntligen kan du radera kolumn A efter behov.


Infoga sidbrytning, tomma rader, nedre kant eller fyllfärg när värdet ändras snabbt

Om du har Kutools för Excel's Skillnad mellan skillnader kan du snabbt infoga sidbrytning, tomma rader, nedre kant eller fylla färg när värdet ändras efter behov. Se nedanstående demo.         Klicka för att ladda ner Kutools för Excel!


Infoga tomma rader när värdet ändras med hjälpkolumner

Med hjälpkolumnerna kan du först infoga formel och sedan använda Sök och ersätt funktion, äntligen infoga de tomma raderna mellan de ändrade värdena. Gör så här:

1. Ange den här formeln i en tom cell C3 = A3 = A2och i cell D4 anger du denna formel = A4 = A3, se skärmdump:

2. Välj sedan C3: D4 och dra fyllningshandtaget över till det intervall som du vill använda dessa formler, så får du Sant or Falsk i cellerna, se skärmdump:

3. Och tryck sedan på Ctrl + F nycklar för att öppna Sök och ersätt dialogrutan, i dialogrutan poppade ut, ange FALSK i Hitta det textruta under hitta fliken och klicka på Tillbehör för att expandera den här dialogrutan och välj Värden från Titta in rullgardinsmeny, se skärmdump:

4. Klicka Hitta alla och tryck sedan på Ctrl + A för att välja alla resultat för att hitta, har alla FALSE-celler valts på en gång, se skärmdump:

6. Stäng Sök och ersätt dialog, nästa steg, kan du infoga tomma rader genom att klicka Hem > Insert > Infoga arkrader, och tomma rader har infogats i data när värdet ändras baserat på kolumn A, se skärmdumpar:

7. Slutligen kan du radera hjälpkolumnen C och D efter behov.


Infoga tomma rader när värdet ändras med VBA-kod

Om du är trött på att använda ovanstående metoder, här är en kod som också kan hjälpa dig att infoga tomma rader mellan de ändrade värdena på en gång.

1. Håll ner ALT + F11 nycklar för att öppna Microsoft Visual Basic for Applications-fönstret.

2. Klicka Insert > Modulernaoch klistra in följande kod i Modulfönster.

VBA-kod: Infoga tomma rader när värdet ändras

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. Tryck sedan på F5 nyckel för att köra den här koden, och en snabbruta dyker upp för att låta dig välja en kolumninformation som du vill infoga tomma rader när värdet ändras som du baserar på, se skärmdump:

4. Och klicka sedan på OKhar de tomma raderna infogats mellan data när värdet ändras baserat på kolumn A.


Infoga specifikt antal tomma rader när värdet ändras med en kraftfull funktion

Om du prövas med ovanliga besvärliga metoder kommer jag här att presentera ett användbart verktyg, Kutools för Excel's Skillnad mellan skillnader kan hjälpa dig att infoga sidbrytning, tomma rader, nedre kant eller fylla färg när cellvärdet ändras snabbt och enkelt.

Tips:Att tillämpa detta Skillnad mellan skillnader funktionen, först bör du ladda ner Kutools för Excel, och använd sedan funktionen snabbt och enkelt.

När du har installerat Kutools för Excel, gör så här:

1. Klicka Kutools > bildad > Skillnad mellan skillnader, se skärmdump:

2. I Skillnad på nyckelkolumn dialogrutan, gör följande:

  • Välj det dataområde som du vill använda och välj sedan nyckelkolumnen som du vill infoga tomma rader baserat på;
  • Kontrollera sedan Tom rad alternativ från Tillbehör avsnittet och ange antalet tomma rader som du vill infoga.

3. Klicka sedan Ok knappen och det specifika antalet tomma rader har infogats i data om cellvärdet ändras, se skärmdumpar:

Klicka för att ladda ner Kutools för Excel och gratis testversion nu!

Bästa kontorsproduktivitetsverktyg

Populära funktioner: Hitta, markera eller identifiera dubbletter   |  Ta bort tomma rader   |  Kombinera kolumner eller celler utan att förlora data   |   Rund utan formel ...
Superuppslag: Flera kriterier VLookup    VLookup med flera värden  |   VSök över flera ark   |   Fuzzy Lookup ....
Avancerad rullgardinslista: Skapa snabbt en rullgardinslista   |  Beroende rullgardinslista   |  Flervals-rullgardinslista ....
Kolumnhanterare: Lägg till ett specifikt antal kolumner  |  Flytta kolumner  |  Växla synlighetsstatus för dolda kolumner  |  Jämför intervall och kolumner ...
Utvalda funktioner: Rutnätsfokus   |  Designvy   |   Stor formelbar    Arbetsbok & Bladhanterare   |  Resursbibliotek (Automatisk text)   |  Datumväljare   |  Kombinera arbetsblad   |  Kryptera/Dekryptera celler    Skicka e-postmeddelanden efter lista   |  Superfilter   |   Specialfilter (filtrera fet/kursiv/genomstruken...) ...
Topp 15 verktygssatser12 text verktyg (lägga till text, Ta bort tecken, ...)   |   50 + Diagram Typer (Gantt Chart, ...)   |   40+ Praktiskt Formler (Beräkna ålder baserat på födelsedag, ...)   |   19 Införande verktyg (Infoga QR-kod, Infoga bild från sökväg, ...)   |   12 Konvertering verktyg (Siffror till ord, Valutaväxling, ...)   |   7 Slå ihop och dela verktyg (Avancerade kombinera rader, Dela celler, ...)   |   ... och mer

Uppgradera dina Excel-färdigheter med Kutools för Excel och upplev effektivitet som aldrig förr. Kutools för Excel erbjuder över 300 avancerade funktioner för att öka produktiviteten och spara tid.  Klicka här för att få den funktion du behöver mest...

kte-flik 201905


Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
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