Друзья, подскажите, пожалуйста путь решения для сортировки массива по убыванию, состоящего из n-столбцов и n-строк, причем первый столбец - название строки. Выглядит примерно так:
Друзья, подскажите, пожалуйста путь решения для сортировки массива по убыванию, состоящего из n-столбцов и n-строк, причем первый столбец - название строки. Выглядит примерно так:
Прошу прощения...пример закинул. Суть сортировки в том, чтоб составить статистику посещений пользователями базы на сервере в удобном виде. На первых местах те, кто каждый день заходил, ниже по убыванию.
Прошу прощения...пример закинул. Суть сортировки в том, чтоб составить статистику посещений пользователями базы на сервере в удобном виде. На первых местах те, кто каждый день заходил, ниже по убыванию.Evgen2350
Похоже что не совсем по задаче, зато по названию темы: Сортировка двумерного массива (Макросы/Sub) Сортировка не моя, я только развил для двумерного: [vba]
Код
Sub fg() Dim a(), i&
i = InputBox("По какому столбцу сортировать?") a = [a1].CurrentRegion.Value uSort a, i [a1].CurrentRegion.Value = a End Sub
Sub uSort(ByRef x(), n&) Dim v, u&, d&, f&, st& If IsArray(x) Then f = LBound(x): d = f For u = f + 1 To UBound(x) If x(u, n) < x(d, n) Then For st = LBound(x, 2) To UBound(x, 2) v = x(d, st): x(d, st) = x(u, st): x(u, st) = v Next u = d - 1: d = u - 1: If u < f Then d = u: u = f End If d = d + 1 Next End If End Sub
[/vba]
Похоже что не совсем по задаче, зато по названию темы: Сортировка двумерного массива (Макросы/Sub) Сортировка не моя, я только развил для двумерного: [vba]
Код
Sub fg() Dim a(), i&
i = InputBox("По какому столбцу сортировать?") a = [a1].CurrentRegion.Value uSort a, i [a1].CurrentRegion.Value = a End Sub
Sub uSort(ByRef x(), n&) Dim v, u&, d&, f&, st& If IsArray(x) Then f = LBound(x): d = f For u = f + 1 To UBound(x) If x(u, n) < x(d, n) Then For st = LBound(x, 2) To UBound(x, 2) v = x(d, st): x(d, st) = x(u, st): x(u, st) = v Next u = d - 1: d = u - 1: If u < f Then d = u: u = f End If d = d + 1 Next End If End Sub