Страницы: 1
RSS
Преобразование данных в ячейке
 
В ячейке Excel есть запись:    
23,52-59,18,64,37    
с помощью какой формулы можно преобразовать диапазон "52-59" в вид: 52,53,54,55,56,57,58,59 и    
дописать в ячейку чтобы в итоге получилось:    
23,52,53,54,55,56,57,58,59,18,64,37
 
Боюсь, аноним, что только UDF  
Public Function FullSequence(ByVal this As String) As String  
   Dim i As Long, subStr() As String, pos As Long  
   Dim sResult As String, sKey As String, vLast As Long  
     
   subStr = Split(this, ","): sResult = "": vLast = UBound(subStr)  
   For i = 0 To vLast  
       sKey = subStr(i)  
       pos = InStr(sKey, "-")  
       If pos > 0 Then  
           sResult = sResult & Generate(CLng(Mid$(sKey, 1, pos - 1)), CLng(Mid$(sKey, pos + 1)))  
       Else  
           sResult = sResult & sKey  
       End If  
       If i <> vLast Then sResult = sResult & ","  
   Next i  
   FullSequence = sResult  
End Function  
 
Private Function Generate(ByVal Start As Long, ByVal Finish As Long) As String  
   Dim i As Long, sResult As String  
   sResult = ""  
   For i = Start To Finish  
       sResult = sResult & CStr(i)  
       If i <> Finish Then sResult = sResult & ","  
   Next i  
   Generate = sResult  
End Function
 
Если использовать макросы - можно обработать таблицу нажатием одной кнопки:   
http://excelvba.ru/code/ExtendArray
Страницы: 1
Читают тему
Наверх