Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Сортировка на двух листах - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Сортировка на двух листах
Vinkelman Дата: Понедельник, 18.03.2013, 16:26 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 249
Репутация: 26 ±
Замечаний: 0% ±

2003 - 2010
Добрый день!
Таблица не поместилась на один лист, разбил на два. Данные вперемешку, не по алфавиту (и на первом и на втором листах есть и "А" и "Я").
Вопрос: каким способом можно сделать сортировку всех данных? Столбцов не больше 10.
 
Ответить
СообщениеДобрый день!
Таблица не поместилась на один лист, разбил на два. Данные вперемешку, не по алфавиту (и на первом и на втором листах есть и "А" и "Я").
Вопрос: каким способом можно сделать сортировку всех данных? Столбцов не больше 10.

Автор - Vinkelman
Дата добавления - 18.03.2013 в 16:26
alx74 Дата: Понедельник, 18.03.2013, 16:37 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 209
Репутация: 32 ±
Замечаний: 0% ±

Цитата (Vinkelman)
Столбцов не больше 10
Просто интересно, сколько же строк, если не поместилось на 1 лист.


Срочность обратно пропорциональна степени важности.
Яндекс-money:41001687631447
 
Ответить
Сообщение
Цитата (Vinkelman)
Столбцов не больше 10
Просто интересно, сколько же строк, если не поместилось на 1 лист.

Автор - alx74
Дата добавления - 18.03.2013 в 16:37
Hugo Дата: Понедельник, 18.03.2013, 18:07 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3691
Репутация: 790 ±
Замечаний: 0% ±

365
Попробуйте:
[vba]
Код
Sub sortbigdata()
      Dim Dict As Object, a(), i&, ii&, x&

      Set Dict = CreateObject("System.Collections.ArrayList")
      For i = 1 To 2
          a = Sheets(i).UsedRange.Columns(1).Value
          For ii = 1 To UBound(a)
              If Len(a(ii, 1)) Then Dict.Add CStr(a(ii, 1))
          Next
      Next
      Dict.Sort
      With Workbooks.Add(1)
          ReDim a(1 To Dict.Count / 2, 1 To 1)
          For i = 1 To UBound(a)
              a(i, 1) = Dict.Item(i - 1)
          Next
          x = i: ii = 0
          .Sheets(1).[a1].Resize(UBound(a), 1) = a
          .Sheets.Add after:=.Worksheets(1)
          ReDim a(1 To Dict.Count / 2, 1 To 1)
          For i = x To Dict.Count
              ii = ii + 1
              a(ii, 1) = Dict.Item(i - 1)
          Next
          .Sheets(2).[a1].Resize(UBound(a), 1) = a
      End With
End Sub
[/vba]
Должен быть установлен .NET Framework
Сортируется один первый столбец. Если их 10 - код нужно усложнять (по задаче непонятно, что с ними вообще делать).
P.S. Чуть подправил - числа в первой версии не сортировало...


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеПопробуйте:
[vba]
Код
Sub sortbigdata()
      Dim Dict As Object, a(), i&, ii&, x&

      Set Dict = CreateObject("System.Collections.ArrayList")
      For i = 1 To 2
          a = Sheets(i).UsedRange.Columns(1).Value
          For ii = 1 To UBound(a)
              If Len(a(ii, 1)) Then Dict.Add CStr(a(ii, 1))
          Next
      Next
      Dict.Sort
      With Workbooks.Add(1)
          ReDim a(1 To Dict.Count / 2, 1 To 1)
          For i = 1 To UBound(a)
              a(i, 1) = Dict.Item(i - 1)
          Next
          x = i: ii = 0
          .Sheets(1).[a1].Resize(UBound(a), 1) = a
          .Sheets.Add after:=.Worksheets(1)
          ReDim a(1 To Dict.Count / 2, 1 To 1)
          For i = x To Dict.Count
              ii = ii + 1
              a(ii, 1) = Dict.Item(i - 1)
          Next
          .Sheets(2).[a1].Resize(UBound(a), 1) = a
      End With
End Sub
[/vba]
Должен быть установлен .NET Framework
Сортируется один первый столбец. Если их 10 - код нужно усложнять (по задаче непонятно, что с ними вообще делать).
P.S. Чуть подправил - числа в первой версии не сортировало...

Автор - Hugo
Дата добавления - 18.03.2013 в 18:07
Vinkelman Дата: Вторник, 19.03.2013, 07:13 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 249
Репутация: 26 ±
Замечаний: 0% ±

2003 - 2010
alx74,
Строк около 1,5 млн. Хотелось, чтобы можно было сортировать по выбранным столбцам (хотя бы по A и C) - см. фрагмент файла.
К сообщению приложен файл: 5082730.xls (90.5 Kb)
 
Ответить
Сообщениеalx74,
Строк около 1,5 млн. Хотелось, чтобы можно было сортировать по выбранным столбцам (хотя бы по A и C) - см. фрагмент файла.

Автор - Vinkelman
Дата добавления - 19.03.2013 в 07:13
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!