MID vba

0

Witam,

mam pytanie, czy możliwe jest wyciągnięcie framgentu tekstu z sytuacji opisanej poniżej?:

W wierszu mam bliżej nieokreśloną ilość tekstu rozdzielonego spacjami, który posiada słowo "ROZM. za nim jest ciąg znaków w róznych konfiguracjach i kończy się wyrazem "nr " ("nr czasami nie ma albo nie ma spacji pomiędzy teksem a nr). czy jest możliwość wyeksportowania danych pomiędzy rozm. a nr? (jeżeli nie ma nr tzn., że ciąg znaków kończy wyraz :)

0

Na jak dużych danych operujesz, to po pierwsze, po drugie, czy źródła nie ma jak agregować? I jak sobie wyobrażasz użyć MID w danych, które mogą przesuwać słowo ROZM? Podaj kilka przykładowych rekordów.

0

Do 200 wierszy Struktura jak w załacznym pliku.
Generalnie kombinowałem coś z mid i search ale wyszła lipa :(. screenshot-20180607133955.png

0

Ja bym na Twoim miejscu zainteresował się funkcją Instr i dopiero później robił operacje na tekście (left, mid, right) :)

0

Cześć,

spróbuj poniżej:

C10 - komórka z tekstem
Wersja polska - FRAGMENT.TEKSTU(C10;ZNAJDŹ("ROZM";C10);ZNAJDŹ("NR";C10)-ZNAJDŹ("ROZM";C10))
Wersja angielska - MID(C10;FIND("ROZM";C10);FIND("NR";C10)-FIND("ROZM";C10))

0

W taki sposób właśnie kombinowałem, ale jak nie ma nr na konću to siłe gubi i wyrzuca brak wartości :(

0
fiskars napisał(a):

W taki sposób właśnie kombinowałem, ale jak nie ma nr na konću to siłe gubi i wyrzuca brak wartości :(

Jak się bawimy formułami to dodać jedno, =jeżeli które uwzględni brakujący fragment ?

0

jeżeli nie ma nr tzn., że ciąg znaków kończy wyraz :)

Jeśli dobrze rozumiem to powinno działać:

Polska wersja - FRAGMENT.TEKSTU(C9;ZNAJDŹ("ROZM";C9);JEŻELI(ZNAJDŹ("NR";C9)<>0;ZNAJDŹ("NR";C9)-ZNAJDŹ("ROZM";C9);0)*ZNAJDŹ("NR";C9)-ZNAJDŹ("ROZM";C9))

Angielska wersja - MID(C9;ZNAJDŹ("ROZM";C9);IF(FIND("NR";C9)<>0;FIND("NR";C9)-FIND("ROZM";C9);0)*FIND("NR";C9)-FIND("ROZM";C9))

1 użytkowników online, w tym zalogowanych: 0, gości: 1