рейтинг с несколькими столбцами в Excel 2007 - PullRequest
0 голосов
/ 04 октября 2018

Сортировка столбца A и ранга для столбца B в Excel автоматически.

ABC (ранг)

4 289 2

7 465 3

4395 1

1 Ответ

0 голосов
/ 10 октября 2018

Предполагая, что вы хотите, чтобы ваши данные выглядели так (вы хотите отсортировать столбцы 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 |
+----------+----------+----------+
...