By way of simplified example, say you have the following dataset:
A B C
Name Group Amount
Dave A 2
Mike B 3
Adam C 4
Charlie
Something like this should work:
Sub TopValues()
Dim sht As Worksheet
Dim StartCell As Range
Set sht = Worksheets("Sheet1")
Set StartCell = Range("A1")
Set SrcRange = StartCell.CurrentRegion
Sheets.Add(After:=Sheets(Sheets.Count)).Name = "Data"
For i = 1 To 3
SrcRange.Sort Key1:=Worksheets("Sheet1").Range("A1").Offset(0, i - 1), Order1:=xlAscending, Header:=xlYes
sht.Rows("2:3").EntireRow.Copy
Worksheets("Data").Activate
ActiveSheet.Range("A" & 2 * i).PasteSpecial
Next i
End Sub
The Rows("2:3") and Range("A" & 2 * i) reflect your x value, which you said was 2 in this example. So the vba copies rows 2:3 and pastes them in row 2*i in the new sheet.