Omorganiserar data

August 6

Om du importerar en lista data till Excel, är det inte ovanligt att sluta med en massa data i kolumn A. I själva verket är det inte ovanligt att ha något i någon av de andra kolumnerna. (Detta beror på vilken typ av data som du importerar, förstås.) Som ett led i arbetet med data i Excel, kan du "omorganisera" data så att den dras upp i flera kolumner än bara kolumn A .

Som ett exempel, tänk dig att du importerat dina data, och det slutade ockuperar raderna 1 till 212 i kolumn A. Vad du verkligen vill är att de data som att ockupera kolumnerna A till F, med hur många rader är nödvändigt att hålla datan. Därför måste A2 flyttas till B1, A3 till C1, A4, till D1, A5 till E1, A6 till F1, och sedan A7 till A2, A8 till B2, etc.

Att omorganisera uppgifter på detta sätt, kan du använda följande makro. Markera de data du vill omorganisera och sedan köra makrot. Du frågade hur många kolumner du vill ha i den omorganiserade uppgifter, och sedan data växling påbörjas.

Sub CompressData ()
Dim rSource Såsom Range
Dim rTarget Såsom Range
Dim iWriteRow As Integer
Dim iWriteCol As Integer
Dim iColCount As Integer
Dim iTargetCols As Integer
Dim J As Integer

iTargetCols = Val (InputBox ("Hur många kolumner?"))
Om iTargetCols> 1 Sedan
Ställ rSource = ActiveSheet.Range (ActiveWindow.Selection.Address)
Om rSource.Columns.Count> 1 Då Exit Sub

iWriteRow = rSource.Row + (rSource.Cells.Count / iTargetCols)
iWriteCol = rSource.Column + iTargetCols - 1
Ställ rTarget = Range (Cells (rSource.Row, rSource.Column), _
Celler (iWriteRow, iWriteCol))

För J = 1 Till rSource.Cells.Count
rTarget.Cells (J) = rSource.Cells (J)
Om J> (rSource.Cells.Count / iTargetCols) Sen _
rSource.Cells (J) .Clear
Nästa J
End If
End Sub

Den makro överför information genom att definiera två serier: källintervall du valde när du körde makrot och målområdet definieras av den beräknade storlek beroende på antalet kolumner du vill ha. Käll sortimentet representeras av rSource variabelt objekt, och målområdet vid rTarget. For ... Next loopen används för att faktiskt överföra värdena.

ExcelTips är din källa för kostnadseffektiv Microsoft Excel utbildning. Detta tips (8188) gäller för Microsoft Excel 2007, 2010 och 2013. Du kan hitta en version av detta tips för den äldre menygränssnittet i Excel här: omorganisera data.