Avatar billede Balar Seir Juniormester
28. november 2023 - 14:17 Der er 2 løsninger

Opsplitning af én række (med flere ID'er i én celle) til et antal nye rækker (pr ID).

Jeg har tidligere fået hjælp til et næsten tilsvarende problem, men kan ikke helt greje denne uden alt for meget manuelt arbejde:

Jeg har brug for at opsplitte et stort antal grupperegistreringer på mange ID'er:

Udgangspunkt:

A      B              C
1      REGID      Registreringsbatch
2      8401        23@866|*23@850|*23@835|*23@784|*23@834|*23@786|*
3      8437        22@368|*21@247|*21@184|*21@306|*21@77|*21@249|*

Ønsket resultat:

A      B              C
1      REGID      Registreringsbatch
2      8401        23@866|
3      8401        23@850|
4      8401        23@835|
5      8401        23@784|
6      8401        23@834|
7      8401        23@786|
8      8437        22@368|
9      8437        21@247|
10    8437        21@184|
11    8437        21@306|
12    8437        21@77|
13    8437        21@249|
Avatar billede jens48 Ekspert
28. november 2023 - 22:42 #1
Antagelser:
1. Reg ID i kolonne B
2. Registreringsbatch i kolonne C
3. Der er altid 6 registreringsbatche i C
4. Kolonnerne D til I er tomme

Sæt denne formel ind i D1
=TEXTBEFORE(TEXTAFTER("*"&$C1;"*";COLUMN(A:A);1;1;"");"*";1;1;1;"")
På dansk:
=TEKSTFØR(TEKSTEFTER("*"&$C1;"*";KOLONNE(A:A);1;1;"");"*";1;1;1;"")

Og kør så denne makro:

Sub Batch()
Dim LastRow, X, Y As Long
LastRow = ActiveSheet.UsedRange.Rows.Count
Range("D1").Select
    Selection.Copy
    Range("D2:I" & LastRow).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
For X = LastRow To 2 Step -1
For Y = 6 To 1 Step -1
Cells(X + 1, 1).EntireRow.Insert
Cells(X + 1, 2) = Cells(X, 2)
Cells(X + 1, 3) = Cells(X, 3 + Y).Value
Next
Cells(X, 1).EntireRow.Delete
Next
End Sub
Avatar billede Balar Seir Juniormester
29. november 2023 - 14:16 #2
Hej Jens
Tusind tak for dit svar. Jeg har ikke lært at bruge makroer, så dit svar er desværre for avanceret for mig på nuværende tidspunkt😊

Du har tidligere hjulpet mig på meget kvalificeret vis, så jeg er ikke i tvivl om, at dit bidrag vil fungere, så jeg markerer det som løsning.

I går aftes fandt jeg en anden løsning på YouTube. (Link nederst).

Jeg markerede tabellen / området i regnearket og valgte fanen ”Data”.
I underfanen ”Hent og transformér data” valgte jeg ”Fra tabel/område”. Når man gør det, åbner der en funktion (som hedder ”Power Query-editor”) med de to kolonner fra mit regneark.
Jeg markerede kolonnen ”Registreringsbatch”.
Her valgte jeg menuen ”Opdel kolonne” og samtidig valgte jeg ”Efter afgrænser”
Så poppede der en ny menu op, som hedder ”Opdel kolonne efter afgrænser”.
Som afgrænser valgte jeg ”Brugerdefineret” og indsatte ”*” og markerede feltet ”Hver forekomst af afgrænseren”.
Under ”Avancerede indstillinger” valgte jeg ”Rækker”.
Herefter klikkede jeg på ”OK”, og alle cellerne blev nu opdelt med en værdi (Registreringsbatch) pr. række.

https://www.youtube.com/watch?v=XcZY_SLgUUU&t=171s
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester