Это мой первый пост здесь, так что терпите меня.

У меня есть следующая строка символов в ячейке A1:

C.CompanyName_E.234500_Y.Boston_S.Massachusetts_S.800x600_

Я хочу проанализировать CompanyName (текст между C. и _) в B2, 234500 в C2 (число 234500 между E. и _), Boston (текст между Y. и _) в D2 и так далее ...

Каков наилучший способ разбить строку текста на основе двух разных символов? в этом случае X. и _

Спасибо

3 ответа3

0

Поместите это в B2:

=MID(TRIM(MID(SUBSTITUTE($A2,"_",REPT(" ",999)),(COLUMN(A:A)-1)*999+1,999)),3,999)

И копировать / перетаскивать вверх и вниз.

0

Спасибо за быстрый ответ. Я смог понять это с помощью этой формулы: Формула

Это работает только тогда, когда префиксы к полям все разные (ABCDE и т.д.)

0

Вы должны использовать подстановочные знаки, как это, где "?"подстановочный знак для персонажей

dim str_to_cut as String, aux_str as String
dim str_ls as Variant()
dim workbook as workbook
set workbook = activeworkbook
dim ws as worksheets
set ws = workbook.sheets(1)

str_to_cut = C.CompanyName_E.234500_Y.Boston_S.Massachusetts_S.800x600_
str_ls = Split(str_to_cut, "_")

for x = 0 to Ubound(str_ls)-Lbound(str_ls)  #size the array
    aux_str = Split(str_ls(x), "=?.")(1)    #maybe you don't need the =
    ws.cells(1, x+2) = aux_str              #need to get the right column 
next x

вам, возможно, придется скорректировать свою логику в отношении того, где разместить результаты и, возможно, некоторые синтаксис, ура

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