-1

Как расширить диапазон значений до отдельных значений, разделенных запятыми?

Пример 1:

преобразовать R1-R8 R1, R2, R3, R4, R5, R6, R7, R8
1-10 - 1, 2, 4, 5, 6, 7, 8, 9, 10

Мне нужно, чтобы эти расширенные диапазоны были разделены запятой и помещены в одну ячейку.
Есть ли формула, которая может это сделать?

1 ответ1

0

Этот код VBA сделает работу:

Public Function sequence(data As String)
    result = ""
    endvalues = Split(data, "-")
    minval = endvalues(0)
    maxval = endvalues(1)
    lminval = Len(minval)
    lmaxval = Len(maxval)
    For i = 1 To lminval
        singlechar = Mid(minval, i, 1)
        If IsNumeric(singlechar) = True Then
            minchar = Left(minval, i - 1)
            minnum = Right(minval, lminval - (i - 1))
            i = lminval
        End If
    Next i
    For i = 1 To lmaxval
        singlechar = Mid(maxval, i, 1)
        If IsNumeric(singlechar) = True Then
            maxchar = Left(maxval, i - 1)
            maxnum = Right(maxval, lmaxval - (i - 1))
            i = lminval
        End If
    Next i
    For i = minnum To maxnum
        result = result & minchar & i & ","
    Next i
    result = Left(result, Len(result) - 1)
    sequence = result
End Function

Откройте Macros /VBA, в ThisWorkbook вставьте модуль и вставьте его в правой части окна.

Если в ячейке A1 вас есть, например, R1-R5, то в ячейке B1 вы можете поставить =sequence(A1) чтобы получить результат R1, R2, R3, R4, R5

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .