Excel | Jak podzielić tekst ciągów na dwa różne znaki?

0

To jest mój pierwszy post tutaj, więc proszę o wyrozumiałość.

Mam następujący ciąg znaków w komórce A1:

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

Chcę parsować CompanyName (tekst między C. a _) na B2, 234500 na C2 (numer 234500 między E. i _), Boston (tekst między Y. i _) na D2 i tak dalej ...

Jaki jest najlepszy sposób podziału ciągu tekstu na podstawie dwóch różnych znaków? w tym przypadku X. i _

Dzięki

Gusilu
źródło

Odpowiedzi:

0

Umieść to w B2:

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

I kopiuj / przeciągaj w górę iw dół. wprowadź opis zdjęcia tutaj

Scott Craner
źródło
0

Dziękuję za szybką odpowiedź. Udało mi się to rozgryźć za pomocą tej formuły: Formula

Działa to tylko wtedy, gdy wszystkie prefiksy pól są różne (ABCDE itp.)

Gusilu
źródło
0

Powinieneś używać takich symboli wieloznacznych, gdzie „?” jest symbolem wieloznacznym dla znaków

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

być może będziesz musiał dostosować logikę, gdzie umieścić wyniki, a może trochę sintax, na zdrowie

dmb
źródło