-1

Предположим, что в ячейке А1 Excel есть содержимое «a, b, c, d, e», есть ли способ написать формулу массива, так что в B1:B5 покажет результат разделения, т.е. B1 = a, B2 = b, B3 = c, B4 = d, B5 = e?

2 ответа2

1

Без формулы (моя любимая):

Выберите «A1»> «Данные»> «Текст в столбец»> «С разделителями»: «,» в качестве ограничителя> «Готово» (выберите «Заменить на данный момент»).

Выберите результат (5 ячеек)> Ctrl+C > r-щелкните на B1, выберите транспонирование. сделанный.

С формулой:

B1  --->  =MID(A1,1,FIND(",",$A$1,1)-1)
B2  --->  =MID($A$1,FIND(",",$A$1,1)+1,FIND(",",$A$1,FIND(",",$A$1,1)+1)-FIND(",",$A$1,1)-1)
B3  --->  =MID($A$1,FIND(",",$A$1,FIND(",",$A$1,1)+1)+1,FIND(",",$A$1,FIND(",",$A$1,FIND(",",$A$1,1)+1)+1)-FIND(",",$A$1,FIND(",",$A$1,1)+1)-1)
B4  --->  =MID($A$1,FIND(",",$A$1,FIND(",",$A$1,FIND(",",$A$1,1)+1)+1)+1,FIND(",",$A$1,FIND(",",$A$1,FIND(",",$A$1,FIND(",",$A$1,1)+1)+1)+1)-FIND(",",$A$1,FIND(",",$A$1,FIND(",",$A$1,1)+1)+1)-1)
B5  --->  =MID($A$1,FIND(",",$A$1,FIND(",",$A$1,FIND(",",$A$1,FIND(",",$A$1,1)+1)+1)+1)+1,LEN(A1)-FIND(",",$A$1,FIND(",",$A$1,FIND(",",$A$1,FIND(",",$A$1,1)+1)+1)+1))

ключ: найти n-ую "," в строке .. как "маркеры" для функции mid() .

Надеюсь, поможет.

0

Я хотел бы предложить MACRO, который является лучшим и самым быстрым методом, для разделения значений, разделенных запятыми, от Cell до Rows.

Этот MACRO берет данные в столбце A и помещает результаты в столбец B.

Sub SplitData()
    Dim src As Range
    Dim result As Variant
    For Each src In Range("A:A").SpecialCells(xlCellTypeConstants)
        result = Split(src, ",")
        With Cells(Rows.Count, 2).End(xlUp)
            Range(.Offset(1, 0), .Offset(1 + UBound(result, 1), 0)) = Application.WorksheetFunction.Transpose(result)
        End With
    Next src
End Sub

NB

  • На активном листе нажмите Alt+F11 чтобы открыть VB Editor затем Copy & Paste этот код как стандартный модуль и, наконец, RUN его.
  • Range("A:A") для столбца A и (Rows.Count.2) для столбца B доступны для редактирования.

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