2009-09-24 6 views
0

У меня есть две таблицы, как это:Сортировка диапазона по заказу другого списка в Excel

Таблица 1

 
    A 
1 FirstPhase 
2 SecondPhase 
3 ThirdPhase 
4 FourthPhase 

Таблица 2

 
    A  B 
1 Item1 FirstPhase 
2 Item4 FourthPhase 
3 Item2 SecondPhase 
4 Item3 ThirdPhase 

Результат Я хочу достичь после сортировки:

 
    A  B 
1 Item1 FirstPhase 
2 Item2 SecondPhase 
3 Item3 ThirdPhase 
4 Item4 FourthPhase 

Как сортировать вторую таблицу по столбцу B в соответствии с порядком столбца A в первой таблице?

+0

Вы не должны были устанавливать это в «Community Wiki», у вас, вероятно, было бы больше информации. Я посмотрю, что я могу понять. –

+0

Как это? Разве это не входит в число обычных вопросов? –

+0

Многие люди не будут тратить время на выяснение сложных вопросов, если они не собираются получать какой-либо ответ от него. Я сейчас хорошенько похоронен, но я планирую работать над этим. –

ответ

3

Первым шагом является создание пользовательского списка.

  • В Excel 2007, нажмите на Управление Icon
  • Выберите Excel Options - Популярные - Редактировать пользовательские списки
  • Нажмите на «Импорт списка из ячеек» кнопки диапазона
  • Выберите данные, а затем нажмите Введите ключ
  • Нажмите на кнопку Import
  • Нажмите на кнопку OK, а затем еще раз ОК

Сортировка с помощью настраиваемого списка.

  • Выберите данные для сортировки.
  • Нажмите на вкладке Главная и Роде & Фильтр
  • Выберите заказ сортировать
  • Выберите столбец для сортировки по
  • Затем выпадающие о порядке и выберите Настраиваемый список
  • Выберите пользовательский список
  • Нажмите на кнопку OK, а затем еще раз ОК

В кодексе

Sub MakeCustomListAndSort() 

Application.AddCustomList ListArray:=Sheets("Sheet1").Range("A1:A4"), ByRow:=True 
'Create the custom list 

ActiveWorkbook.Worksheets("Sheet2").Range("A1:B4").Sort Key1:=Range("B1:B4"), _ 
Order1:=xlAscending, Header:=xlGuess, _ 
OrderCustom:=Application.CustomListCount + 1, MatchCase:=False, _ 
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal 
'Sort with latest custom list 

Application.DeleteCustomList Application.CustomListCount 
'Delete the latest custom list 

End Sub 
+0

Я просмотрел пользовательские списки и был под впечатлением, что они копируются только из импортируемых вами ячеек и не обновляются, когда эти ячейки меняются. Это так? –

+0

Исправить, Пользовательские списки не обновляются после создания без вмешательства пользователя. Этот код обеспечивает такой подход, поскольку диапазон, используемый для создания пользовательского списка, может быть изменен. –

+0

Мне удалось заставить его работать, спасибо! Однако я использовал «Key1: = Range (« B1 »)» и вместо этого сделал сортировку по именованному диапазону. –

Смежные вопросы