< návrat zpět

MS Excel


Téma: Vyhledani cisla v textu rss

Zaslal/a 11.1.2021 18:34

Dobrý den,

jsem začátečník, prosím o radu, jak z buňky obsahující text získám číslo, které má 13 znaků, a je v rozmezí 1000000000000-9999999999999? Jedná se o EAN kódy v textu, které jsou pokaždé na jiném místě, zprava ani zleva ničím pravidelně neohraničené.

Příklad A1:
Skákal 1 pes přes 2 oves, přes 3413 zelenou louku 1m, šel za 1234567890123 ním myslivec

Potřebuji získat jen hodnotu 1234567890123.

Děkuji!

Zaslat odpověď >

Strana:  1 2   další »
#049432
Lugr
Něco jsem našel, tak snad to pomůže.
Příloha: zip49432_extrahovani-cisla.zip (12kB, staženo 24x)
citovat
#049433
Stalker
Řešením by mohlo být použití regulárního výrazu ve VBA.
Spuštění makra: Karta Zobrazení -> Makra
Příloha: zip49433_extrahuj-ean-regexp.zip (13kB, staženo 16x)
citovat
#049434
elninoslov
Ak je EAN z 13-ich po sebe idúcich čísel, tak maticový vzorec:
=IFERROR(MID(B1;MATCH(TRUE;ISNUMBER(--MID(SUBSTITUTE(B1;" ";"@");ROW(OFFSET($A$1;;;LEN(B1)-12));13));0);13);"")
=IFERROR(ČÁST(B1;POZVYHLEDAT(PRAVDA;JE.ČISLO(--ČÁST(DOSADIT(B1;" ";"@");ŘÁDEK(POSUN($A$1;;;DÉLKA(B1)-12));13));0);13);"")
citovat
#049435
avatar
Moc, moc díky! Vyzkoušeno pouze řešení od lugr a funguje výborně, ufff! Pěkný večer. 1citovat
#049436
Stalker

elninoslov napsal/a:

Ak je EAN z 13-ich po sebe idúcich čísel, tak maticový vzorec:
=IFERROR(MID(B1;MATCH(TRUE;ISNUMBER(--MID(SUBSTITUTE(B1;" ";"@");ROW(OFFSET($A$1;;;LEN(B1)-12));13));0);13);"")
=IFERROR(ČÁST(B1;POZVYHLEDAT(PRAVDA;JE.ČISLO(--ČÁST(DOSADIT(B1;" ";"@");ŘÁDEK(POSUN($A$1;;;DÉLKA(B1)-12));13));0);13);"")


Supr ukládám do Archivu k makru.
PS: Nemá být ve vzorci místo B1 - A1?citovat
#049437
elninoslov
To B1 som tam dal naschvál aby To nelákalo meniť aj to $A$1, čo je iba pomoc pre vytvorenie poľa čísiel.citovat
#049504
Stalker

elninoslov napsal/a:

To B1 som tam dal naschvál aby To nelákalo meniť aj to $A$1, čo je iba pomoc pre vytvorenie poľa čísiel.


Přiznám se, že tohle sem nepochopil. S jako vstupní buňkou pracuješ?

Pokud budu vycházet ze zadání tazatelky a jako vstupní buňku použiju A1, vzorec nevrátí výsledek dokud nezměním B1 na A1.

Vzorec sem si uložil do archivu jako variantu k makru.

Bohužel i po několika marných pokusech s jeho vyhodnocováním sem se nedopátral toho, jak se vlastně dobere výsledku (což mě neskonale dráždí) 7 .

Nebyla by nějaká light verze pro blbce ? 5citovat
#049505
avatar

Stalker napsal/a:

Nebyla by nějaká light verze pro blbce ?

Do B1 si skopíruj A1
---------------
Inak finta je vo funkcii POSUN. Vytvorí reťazec 13 znakov.
Maticový tvar všetky kombinácie po sebe nasledujúcich 13 znakov.
Funkcia DOSADIT zlikviduje medzery aby neboli považované za nulu.
ISNUMBER zistí či ide o číslo.

@elninoslov
Zdravého človeka by to nenapadlo. 1 10citovat
#049506
elninoslov
Pre blbca ??? To nemyslíte Vážne! Vy ste práveže šikula. Alebo si tykajme. Nehnevaj sa za katastro-formu ako som to popísal, ale už fakt ponáhľam spať. Takže nekameňovať pls :). Dúfam, že je takto pochopiteľný aj vzorec aj prečo som zmenil to A1 za B1.
Ten vzorec sa dá ešte zjednodušiť vynechaním ISNUMBER a hľadať sa v MATCH nebude TRUE ale nejaké obrovské číslo 9E+307 a tretí parameter bude 1.

EDIT:
@marjankaj : však som aj písal minule, čo mi všetko je, že som chorý 5
Příloha: xlsx49506_vysvetlenie-vzorca.xlsx (16kB, staženo 19x)
citovat
#049507
avatar
Pokud je číslo oddělené mezerami jako v zadání, tak pomocí PowerQuery by to šlo třeba takto.

Asi by to šlo extrahovat číslo i kdyby mezery nebyly, to je na mě ale zatím moc 1
Příloha: xlsx49507_vyhledani_cisla_text.xlsx (18kB, staženo 16x)
citovat

Strana:  1 2   další »

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

Makro smyčka

MilanKop • 19.4. 10:46

Makro smyčka

elninoslov • 19.4. 9:02

Čas od do

elninoslov • 19.4. 8:46

Čas od do

jarek1111 • 18.4. 13:46

Čas od do

lubo • 18.4. 11:13

Čas od do

jarek1111 • 18.4. 8:32

Čas od do

jarek1111 • 18.4. 8:31