Zavrieť

Porady

Funkcia pre reťazec

Ahojte,

Mám reťazec s ktorého potrebujem vytiahnuť len určitú časť, ktorá ale nemá pevnú dĺžku. Tá časť je číslo 99000005, viď nižšie. Toto číslo môže byť 4 miestne, 6 miestne atď. Skúšam funkcie InStr(), Mid(), Len() a pod., no nedarí sa mi to vymyslieť.

Reťazec: (AA/8000102473/0/5110, EAN 99000005)

vopred ďakujem za pomoc.
Pravidlá a tipy
  • Každý móže napísať len 1 odpoveď. Neskor mozete svoju odpoveď vylepšiť.
  • Odpoveď má priniesť riešenie na otázku, vyvarujte sa hodnotenia otázky.
  • Odpoveď má byť viac o faktoch ako o názoroch.
Dalšie pravidla a tipy
    Ak potrebujete v otázke niečo upresniť, najskôr sa spýtajte na podrobnosti.
    Koncept slúži na uloženie rozpracovanej odpovede, koncept sa zobrazuje len Vám, až kým ho nezverejníte.
    Ak máte podobnú otázku, založte Novú otázku alebo Súvisiacu otázku.
    ❤ Buďte priateľskí ❤
    Sme súčasťou jednej komunity, ktorá si chce vzájomne pomáhať, rozdieľnosť je vítaná ak neubližuje!
    Usporiadať podľa času

    Chobot je offline (nepripojený) Chobot

    Chobot
    Ardonaiel Pozri príspevok
    Ahojte,

    Mám reťazec s ktorého potrebujem vytiahnuť len určitú časť, ktorá ale nemá pevnú dĺžku. Tá časť je číslo 99000005, viď nižšie. Toto číslo môže byť 4 miestne, 6 miestne atď. Skúšam funkcie InStr(), Mid(), Len() a pod., no nedarí sa mi to vymyslieť.

    Reťazec: (AA/8000102473/0/5110, EAN 99000005)

    vopred ďakujem za pomoc.
    Takže to koncové číslo nemá pevnú dĺžku. A tie predchádzajúce znaky majú pevný počet znakov? A pred tým číslom je vždy slovo EAN? Je medzi "EAN" a číslom medzera?

    Treba nájsť v reťazci nejakú fixnú časť a od nej potom skúsiť vydedukovať to číslo. Excel nie je "inteligentný" aby sám rozpoznal číslo, keď nie je štandardizované v každej bunke.

    robin78 je offline (nepripojený) robin78

    robin78
    Mozes uviest viacej prikladov? V tom retazci sa to cislo vzdy nachadza za slovom EAN, resp. je vzdy ako posledne a od zvysku je oddelene medzerou?

    Ardonaiel je offline (nepripojený) Ardonaiel

    Ardonaiel
    Áno, koncové číslo nemá pevnú dĺžku, predchádzajúce znaky nemusia mať pevný počet znakov ale sú vždy oddelené lomítkom, slovo EAN je vždy v reťazci pred číslom a je oddelené od čísla medzerou, na začiatku a na konci je vždy zátvorka.

    Chobot je offline (nepripojený) Chobot

    Chobot
    Ardonaiel Pozri príspevok
    Áno, koncové číslo nemá pevnú dĺžku, predchádzajúce znaky nemusia mať pevný počet znakov ale sú vždy oddelené lomítkom, slovo EAN je vždy v reťazci pred číslom a je oddelené od čísla medzerou, na začiatku a na konci je vždy zátvorka.
    TAk potom musíme hľadať riešenie, ako povedať Excelu, že za slovom EAN je to, čo potrebujeme vybrať. Niečo poskúšam, ak nájdem nejaký spôsob, dám vedieť. Makro by to určite zvládlo, ale v makrách nie som "doma".

    robin78 je offline (nepripojený) robin78

    robin78
    Ardonaiel Pozri príspevok
    Áno, koncové číslo nemá pevnú dĺžku, predchádzajúce znaky nemusia mať pevný počet znakov ale sú vždy oddelené lomítkom, slovo EAN je vždy v reťazci pred číslom a je oddelené od čísla medzerou, na začiatku a na konci je vždy zátvorka.
    ukazka ako by to mohlo fungovat:

    Code:
    Dim retazec As String
    Dim znak As String
    Dim dlzka As Integer
    Dim vysledok As String
    
    retazec = "(AA/8000102473/0/5110, EAN 99000005)" ' retazec na spracovanie
    dlzka = Len(retazec) ' zistenie dlzky
    
    ' cyklus v ktorom prechadzame retazec od konca az pokial nenajdeme prvu medzeru
    For i = dlzka - 1 To 1 Step -1
        znak = Mid(retazec, i, 1) ' testovany znak
    
        If znak = " " Then
            vysledok = Mid(retazec, i + 1, dlzka - i) ' extrahovanie cisla do premennej vysledok
            Exit For
        End If
    Next i

    robin78 je offline (nepripojený) robin78

    robin78
    v pripade az by si to chcel riesit vzorcom, tak tu je vzorec za predpokladu ze text je ulozeny v bunke A1:

    =MID(A1;SEARCH("EAN";A1)+4;LEN(A1)-SEARCH("EAN";A1)-4)

    robin78 je offline (nepripojený) robin78

    robin78
    Ardonaiel Pozri príspevok
    ď, aj mňa by zaujímal príklad bez makra =o) ...a nedá mi to pokoj.
    ved je uvedeny vyssie

    Porady, ktoré by vás mohli zaujímať

    Prihláste sa a sledujte len tie Porady, ktoré Vás zaujímajú.