Страницы: 1
RSS
Разобрать текст в ячейке, Разобрать текст в ячейке на составляющие
 
Всем привет!
Помогите в решении такого вопроса, есть массив в ячейке вот такой текст
сьомга філе-шматок   c/c н/ш в/у 240г(ТМ)"
Нужно разделить по столбцам но не только по пробелам но еще и возможно по другим условиям  ( " ; / ) такого рода разделители . пробовал формулой через (длстр и найти) как-то слишком много условий выходит.
 
Razdva, здравствуйте
Замените все разделители на пробелы =ПОДСТАВИТЬ(ПОДСТАВИТЬ(ячейка;"(";" ");"/";" ") и делите по пробелам
Изменено: Jack Famous - 03.08.2022 12:11:48
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
попробовал через подставить но на 7 столбце у меня уже вот такая формула : =ЛЕВСИМВ(ПРАВСИМВ(C9;(ДЛСТР(C9)-ДЛСТР(D9)-ДЛСТР(E9)-ДЛСТР(F9)-ДЛСТР(G9)-ДЛСТР(H9)));НАЙТИ(" ";ПРАВСИМВ(C9;(ДЛСТР(C9)-ДЛСТР(D9)-ДЛСТР(E9)-ДЛСТР(F9)-ДЛСТР(G9)-ДЛСТР(H9)));1)).
может есть проще вариант разделять по пробелам чем я придумал?
Изменено: Razdva - 03.08.2022 13:02:17
 
Цитата
Razdva: есть проще вариант разделять по пробелам чем я придумал?
текст-по-столбцам (штатный инструмент) или макрос
Делим слипшийся текст на части
Изменено: Jack Famous - 03.08.2022 13:02:52
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Спасибо , лучший !
 
Код
Sub Шматок()
    Dim rr As Range
    On Error Resume Next
    Set rr = Selection.SpecialCells(xlCellTypeConstants)
    On Error GoTo 0
    If rr Is Nothing Then Exit Sub
        
    Dim cl As Range
    For Each cl In rr
        JobCell cl.Value, cl.Cells(1, 2)
    Next
End Sub
Private Sub JobCell(ByVal cellIn As Variant, cellOut As Range)
    If cellIn = "" Then
        cellOut.ClearContents
    Else
        cellIn = myReplace(cellIn)
    
        Dim arr As Variant
        arr = Split(cellIn, " ")
        cellOut.Resize(1, UBound(arr) - LBound(arr) + 1) = arr
    End If
End Sub
Private Function myReplace(ByVal txt As String) As String
    Dim vv As Variant
    For Each vv In Array("/", ":")
        txt = Replace(txt, vv, " ")
    Next
    myReplace = txt
End Function
Страницы: 1
Наверх