Имам четири струни. Тези четири представляват 4 тримесечия. тези четири низа са: (Кои са всъщност в реда на сортиране според моя компютър). Което е теоретично вярно в света на струните. Q1FY15 Q2FY15 Q3FY14 Q4FY14.
Но ако помисля и за годината, след като сортирам по нарастващ ред, искам резултатът да бъде като
Q3FY14 Q4FY14 Q1FY15 Q2FY15
Може ли някой да ми каже дали това е възможно без да се обмислят подвидни усложнения :)
Отговори:
0 за отговор № 1Не и без подстрани. Можете да направите комбиниране на референтна колона = дясно (четвъртит, 2) & = ляво (квартекс, 2), но това са под-низови функции, въпреки че не използват термина подстриг
0 за отговор № 2
Ако можете да използвате код, можете да използвате следната подгрупа, за да подредите информацията си как искате:
Option Explicit
Sub SortStrings()
"This sub will sort the values in column 1 by year and then by quarter based on
"the format of "Q1FY14"
"
"Written by TheEngineer on 12/10/2014
Dim LastRow As Long
Dim qCount As Long
Dim i As Long, j As Long, k As Long
Application.ScreenUpdating = False
With ActiveSheet
LastRow = .Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To LastRow
For j = i + 1 To LastRow
If CInt(Right(.Cells(j, 1).Value, 2)) > CInt(Right(.Cells(i, 1).Value, 2)) Then
If j <> i + 1 Then
.Cells(j, 1).Cut
.Cells(i + 1, 1).Insert Shift:=xlDown
End If
Else
.Cells(j, 1).Cut
.Cells(i, 1).Insert Shift:=xlDown
End If
Next j
Next i
qCount = 0
For i = 1 To LastRow
For j = i + 1 To LastRow
If CInt(Right(.Cells(j, 1).Value, 2)) = CInt(Right(.Cells(i, 1).Value, 2)) Then
qCount = qCount + 1
End If
Next j
For k = i + 1 To qCount + i
If CInt(Left(Right(.Cells(k, 1).Value, Len(.Cells(k, 1).Value) - 1), 1)) > CInt(Left(Right(.Cells(i, 1).Value, Len(.Cells(i, 1).Value) - 1), 1)) Then
If k <> i + 1 Then
.Cells(k, 1).Cut
.Cells(i + 1, 1).Insert Shift:=xlDown
End If
Else
.Cells(k, 1).Cut
.Cells(i, 1).Insert Shift:=xlDown
End If
Next k
qCount = 0
Next i
End With
Application.ScreenUpdating = True
End Sub
Имайте предвид, че тази подгрупа предполага, че информацията ви е в колона 1 и че само информацията, която искате да се сортира, е в тази колона.
Това ще работи за колкото се може повече низове.