Note: The other languages of the website are Google-translated. Back to English

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 Start > 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!


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
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!
officetab botten
Sortera kommentarer efter
Kommentarer (15)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Jag har en kolumn med siffrorna 5,4,3,2 och 1 (många av dem) och jag vill skilja femmorna från de andra, som: 5 5 5 4 3 2 1 5 5 5 5 5 4 3 2 1 Siffrorna är i beskrivande ordning och det finns alltid en fyra under en femma, så jag försökte: Sub InsertRowsAtValueChange() 'Update 20140716 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). Värde = 5 Och WorkRng.Cells(i - 1, 1).Value = 4 Sedan WorkRng.Cells(i, 1).EntireRow.Insert End If Next Application.ScreenUpdating = True End Sub Men det fungerade inte. Kan du hjälpa mig?
Denna kommentar minimerades av moderatoren på webbplatsen
Formeln fungerar utmärkt, men det finns några exempel där den inte känner igen
Denna kommentar minimerades av moderatoren på webbplatsen
Tack så mycket, tittade överallt och detta var den enda lösningen som fungerade för mig som också var på vanlig engelska. Alla andra webbsidor för Excel-instruktioner bröt inte ner det steg-för-steg som du gjorde, tack så mycket. Skål : )
Denna kommentar minimerades av moderatoren på webbplatsen
Tack så mycket för att du beskriver flera lösningar på problemet. Jag använde Visual Basic och ändrade [quote]WorkRng.Cells(i, 1).EntireRow.Insert[/quote] med [quote]With WorkRng.Cells(i, 1).EntireRow.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlMedium End With[/quote] Detta kommer att rita linjer mellan rader med ändrade värden istället för tomma rader.
Denna kommentar minimerades av moderatoren på webbplatsen
Var i koden skulle jag behöva ändra för att inkludera mer än en rad, jag måste lägga till 10 efter varje paus... Tack
Denna kommentar minimerades av moderatoren på webbplatsen
Hej alla tack!! det är fantastiskt, kan ni också låta mig hur man infogar 2 rader när värdet ändras i VBA eller genom excel.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, dessa är nästan användbara! Den första metoden fungerar inte för mig eftersom när jag följer stegen explicit, raderar data som jag tar bort i delsummanspanelerna hela kolumnerna som jag har sorterat. I den andra metoden när jag kommer till steget där jag infogar arkrader, infogas raderna OVAN FALSKA cellerna som bryter upp data, men det sista urvalet av varje grupp läggs sedan till gruppen nedan. Några råd???
Denna kommentar minimerades av moderatoren på webbplatsen
[quote]Hej alla tack!! det är fantastiskt, kan ni också låta mig hur man infogar 2 rader när värdet ändras i VBA eller genom excel.Av Hudson[/quote] Låt mig veta hur man infogar mer än 1 rad.
Denna kommentar minimerades av moderatoren på webbplatsen
Jag har använt min egen lösning ett tag.
1. Infoga en hjälpkolumn i kolumn A
2. I A2 skriver du "if(B2=B1,A1,A1+1)"
3. Kopiera formeln ner till sista raden
4. Kopiera alla fyllda celler i kolumn A och klistra in special (värden) över dem
5. Kopiera alla celler igen och klistra in dem i kolumn A i den första obefolkade cellen (t.ex. om du har 104 rader med data plus en rubrikrad skulle du klistra in i cell A106)
6. Klicka på Data och ta bort dubbletter (endast på cellerna du precis klistrade in i steg 5, inte på alla rader)
7. Sortera hela kolumn A
8. Ta bort kolumn A

Verkar vara många steg men tar bara några sekunder.
Denna kommentar minimerades av moderatoren på webbplatsen
VBA-koden fungerade första gången och gjorde precis vad jag försökte göra. Tack så mycket!
Denna kommentar minimerades av moderatoren på webbplatsen
RE: infoga tomma rader när värdet ändras med vba-kod
Finns det något sätt som jag kan spara Range och inte behöva välja den varje gång jag kör den?
Denna kommentar minimerades av moderatoren på webbplatsen
Hallå,
Är mycket användbart om jag behöver infoga 1 rad, men om jag behöver infoga 145 rader i varje gång data ändras i spwcific kolumn, hur kan jag göra det?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Hassan,
För att infoga flera tomma rader när värdet ändras i en specifik kolumn, bör du använda följande VBA-kod:

Obs: I koden nedan bör du ändra siffran 99 till ditt behov, till exempel när du infogar 145 tomma rader bör du ändra siffran 99 till 144. Vänligen prova det, hoppas det kan hjälpa dig!

Sub InsertRowsAtValueChange()
Dim Rng som intervall
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
För i = WorkRng.Rows.Count To 2 Steg -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
Nästa
Application.ScreenUpdating = True
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Väldigt hjälpsam. Koden som skyyang visar ovan fungerade perfekt. Se bara till att informationen inte redan har mellanslag i den.

Jag förstår inte VBA, men jag tror att om du vill lägga till fler rader under data som redan har avståndet, borde det finnas ett sätt att ignorera mellanslag.

Kan en rad läggas till för att ignorera eller hoppa över tomma rader? Det kan göra den här koden mer universell och repeterbar om det behövs. Även en raderingsfunktion som liknar denna kan vara användbar så ångra är inte nödvändigt.
Denna kommentar minimerades av moderatoren på webbplatsen
Kan VBA-metoden anpassas för att ignorera tomma celler? Jag har en fil som jag behöver infoga rader i baserat på två olika kolumner men när jag kör makrot på den andra kolumnen slutar jag med tre tomma rader där det första makrot kör infogade rader.
Eller kan den köras på två kolumner samtidigt?
Det finns inga kommentarer här ännu
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL