Предполагая, что вы хотите, чтобы ваши данные выглядели так (вы хотите отсортировать столбцы A и B, а затем расположить их в столбце C):
+----------+----------+----------+
| Col A | Col B | Col C |
+----------+----------+----------+
| 4 | 395 | |
| 4 | 289 | |
| 7 | 465 | |
+----------+----------+----------+
Для этого можно использовать код VBA.ALT + F11, чтобы открыть редактор VBA.Затем вставьте его в модуль, щелкнув правой кнопкой мыши и добавить модуль.
Вставьте следующий код:
Sub SortColumns()
With Worksheets("Sheet1").Sort 'Name the worksheet
.SortFields.Add Key:=Range("A1"), Order:=xlAscending 'Column A, sort it by Ascending values
.SortFields.Add Key:=Range("B1"), Order:=xlDescending 'Column B, sort it by Descending values
.SetRange Range("A1:C13") ' Which range you want to apply the filter for
.Header = xlYes 'Does your data has header
.Apply 'Apply autofilter
End With
'Add Rankings:
Dim lrow As Integer
lrow = Cells(Rows.Count, "B").End(xlUp).Row 'find last row in Column B
Cells(2, "C").Value = 1 'Set first rank value in Column C for row 2
For i = 3 To lrow 'Loop through column B to set each value
Cells(i, "C").Value = Cells(i - 1, "C").Value + 1 'Start at row 3, set the value for current row (i) by taking the previous row and add + 1
Next i
End Sub
Вывод после выполнения кода будет выглядеть следующим образом:
+----------+----------+----------+
| Col A | Col B | Col C |
+----------+----------+----------+
| 4 | 395 | 1 |
| 4 | 289 | 2 |
| 7 | 465 | 3 |
+----------+----------+----------+