2017-02-22 37 views
1

У меня есть файл Excel, глядя, как этотКак отсортировать каждую строку словами с помощью excel?

 A   B   C 
1| A_xxxx | B_xxxx | C_xxxx 
2| B_xxxx | A_xxxx | C_xxxx 
3| C_xxxx | B_xxxx | A_xxxx 

..... (каждый хххх отличается числом)

Я хотел бы отсортировать каждую строку, чтобы сделать таблицу, как показано ниже:

 A   B   C 
1| A_xxxx | B_xxxx | C_xxxx 
2| A_xxxx | B_xxxx | C_xxxx 
3| A_xxxx | B_xxxx | C_xxxx 

....

Как я могу выполнить эту просьбу?

+0

Есть ли когда-нибудь единственный символ перед подчеркиванием и все ли они в диапазоне A-Z? – gbavba

+0

Это не один символ, но я могу заменить его на один символ перед подчеркиванием. У меня только a-d, поэтому они все в диапазоне A-Z. –

+0

Будут ли все значения в столбце A начинаться с одних и тех же символов перед подчеркиванием, или каждая строка должна быть отсортирована в алфавитном порядке? – gbavba

ответ

0

Эта подпрограмма будет делать это с помощью VBA:

Sub SortValsToCols() 

Dim w1 As Worksheet 
Dim w2 As Worksheet 
Dim rCell As Range 
Dim rRng As Range 
Dim rowCounters As New Scripting.Dictionary 
Dim i As Long 

Set w1 = Sheets("Sheet1") 'Change to name of the worksheet containing data. 
Set w2 = Sheets("Sheet2") 'Change to name of a blank worksheet. The sorted data will end up here. 
Set rRng = w1.Range("A1:C3") 'Change to range of cells containing data. 

'Turn off ScreenUpdating to speed up execution. 
Application.ScreenUpdating = False 

'Fills a dictionary with keys from A-Z and gives each an initial value of 1. 
For i = 65 To 90 
    rowCounters.Add Key:=Chr(i), Item:=1 
Next i 

'Loops thru all cells in range specified and adds the value after the last populated _ 
    cell in the relevant column to the target sheet. 
For Each rCell In rRng.Cells 
    w2.Range(Left$(rCell.Value, 1) & rowCounters(Left$(rCell.Value, 1))).FormulaR1C1 = rCell.Value 
    rowCounters(Left$(rCell.Value, 1)) = rowCounters(Left$(rCell.Value, 1)) + 1 
Next rCell 

'Turn ScreenUpdating back on. 
Application.ScreenUpdating = True 

End Sub 

Вам нужно изменить 3 SET заявления в соответствии с вашей книгой и добавить «Microsoft Scripting Runtime» через Tools-> References в VBE перед запуском ,

Также предполагается, что все значения соты начинаются с ?_, где ? является одной заглавной буквой от A-Z.

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

  • Нет связанных вопросов^_^