Данные - цифры (хоть Integer), уже отсортированны, нужно в соседнем столбце их места указать.
Проблема в том что если одна цифирь равна следующей (все после сортировки) то она "делит" с ней свое место.. т. е. если исходный ряд напр. 3,4,4,4,71,83,83,97,0,0. То места распределятся должны так 1,2-4,2-4,2-4,5,6-7,6-7,8,-,- .
попытки мои, не приблизили и на половину к решению..
мне кажется все гораздо проще, а может где-то рядом..
нули в конец переместить-"попутная просьба", я сам это дело решил тем что на "-" или текст их меняю перед сортировкой.
- Код: Выделить всё
- Sub Padalka()
 For n = 0 To 13
 For i = 0 To 13
 If Cells(4 + i, 2) = Cells(4 + 1 + i, 2) Then
 Cells(4 + i, 5 + n).Value = "'"&i + 1 & "-" & i + 2
 Cells(4 + i + 1, 5 + n).Value = Cells(4 + i, 5 + n)
 Else
 Cells(4 + i, 4).Value = i + 1
 End If
 Next i
 Next n
 End Sub
 
 ЕЩЕ вариант
 Sub Padalk01()
 Dim tEmp As String
 For i = 0 To 13
 If Cells(4 + i, 2) <> Cells(4 + 1 + i, 2) Then
 Cells(4 + i, 4).Value = i + 1
 Else
 First = i
 GoTo DoAnaser01
 End If
 Next i
 DoAnaser01:
 Cells(4 + i, 4).Value = "'" & i + 1 & "-" & i + 2
 Cells(4 + i + 1, 4).Value = Cells(4 + i, 4)
 For i = First To 13 - 2
 If Cells(4 + i, 2) <> Cells(4 + 1 + i, 2) Then
 Cells(4 + i + 2, 4).Value = i + 2 + 1
 Else
 Last = i
 GoTo DoAnaser02
 End If
 Next i
 DoAnaser02:
 Cells(4 + i, 4).Value = "'" & i + 1 & "-" & i + 2
 Cells(4 + i + 1, 4).Value = Cells(4 + i, 4)
 For i = Lsst To 13 - 2
 Cells(4 + i + 2, 4).Value = i + 2 + 1
 Next i
 End Sub
 
 И ЕЩЕ вариант
 Sub Padalk02()
 Dim i As Integer
 Dim tEmp(13) As Integer
 For i = 0 To 13
 If Cells(4 + i, 2) = Cells(4 + 1 + i, 2) Then
 tEmp(1) = i
 tEmp(2) = i + 1
 Cells(4 + tEmp(1), 4).Value = "'" & tEmp(1) & "-" & tEmp(2)
 Cells(4 + tEmp(2), 4).Value = Cells(4 + tEmp(1), 4)
 Cells(tEmp(2) + i, 4).Value = tEmp(2) + i
 Else
 Cells(4 + i, 4).Value = i + 1
 End If
 Next i
 End Sub
В общем гуляю я неизвестно где, может кто поможет...




