14. juni 2017 - 15:27Der er
6 kommentarer og 2 løsninger
Opsummering af data fra flere rækker i én kolonne
Jeg har et problem med et større datasæt, som skal opsummeres til 'en kolonne'.
Datasættet består af et ID (kolonne A) og variabel information (for nemheds skyld angives kun to kolonner her) i kolonne B og kolonne C. Kolonne A indeholder et ukendt antal personer. Kolonne B og C kan indeholde data men også være NULL
Datasættet kan altså se sådan her ud: A B C ID Data Data 1 B1 NULL 2 B2 C2 3 NULL C3
Hvis det vitterligt er NULL, eller om ikke andet så tom - så kan du blot kombinere de mange kolonner via "&" tegnet. Så kan det være du skal have en replace formel for at fjerne NULL.
Sub TilEnKolonne() Dim LastRow, LastColumn As Integer LastRow = ActiveSheet.UsedRange.Rows.Count LastColumn = ActiveSheet.UsedRange.Columns.Count For x = LastRow To 2 Step -1 For y = 2 To LastColumn If Cells(x, y) <> "NULL" And Cells(x, y) <> "" Then Rows(x + 1).Insert Cells(x + 1, 1) = Cells(x, 1) Cells(x + 1, 2) = Cells(x, y) End If Next Rows(x).Delete Next End Sub
Virker som en drøm. Det var lige det jeg stod og ledte efter!
På længere sigt kan jeg få brug for et lidt anderledes putput (se nedenfor). Kan du evt. pege mig i retning af hvordan jeg opdaterer det, du allerede har fremsendt? På forhånd mange tak!
Datasættet kan altså se sådan her ud: A B C ID Ref1 Ref2 1 B1 NULL 2 B2 C2 3 NULL C3
Det forventede output: A B C 1 Ref1 B1 2 Ref1 B2 2 Ref2 C2 3 Ref2 C3
Sub TilEnKolonne() Dim LastRow, LastColumn As Integer LastRow = ActiveSheet.UsedRange.Rows.Count LastColumn = ActiveSheet.UsedRange.Columns.Count For x = LastRow To 2 Step -1 For y = 2 To LastColumn If Cells(x, y) <> "NULL" And Cells(x, y) <> "" Then Rows(x + 1).Insert Cells(x + 1, 1) = Cells(x, 1) Cells(x + 1, 2) = Cells(1, y) Cells(x + 1, 3) = Cells(x, y) End If Next Rows(x).Delete Next Range(Cells(1, 3), Cells(1, LastColumn)).ClearContents Cells(1, 2) = "Ref" Cells(1, 3) = "Value" End Sub
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.