< 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:  « předchozí  1 2
#049508
avatar

veny napsal/a:

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 Příloha: 49507_vyhledani_cisla_text.xlsx (18kB, staženo 4x)


Ak bude text obsahovat 13 pismen tak vam vyhodi aj ten text k tomu. Treba si len vyselektovat cislo vacsie alebo rovne ako 100000000000. Potom by to malo fungovat.

Cize zmenit typ po tom rozdeleni na cislo , vyhodit Error, zostanu len cisla, filter na vacsie alebo rovne ako 100000000000, spat na text /Vyhadzuje po vlozeni 1.23457E+12 ak je ako cilso/ a dat nacitat do tabulky a je to...citovat
#049509
avatar
Je pravda že nad dlouhým textem jsem nepřemýšlel.
No šlo by to tedy takto.
Příloha: xlsx49509_vyhledani_cisla_text.xlsx (18kB, staženo 21x)
citovat
#049514
Stalker

elninoslov napsal/a:

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ý Příloha: 49506_vysvetlenie-vzorca.xlsx (16kB, staženo 4x)


Teda chlape wow, převeliké díky za ten soubor z toho už je všechno jasné.

No šikula, nevím nevím. V poslední době si spíš sedím na vedení.

MS by měl zapracovat na okně "Vyhodnocení vzorce" a změnit ten jeho pidi rozměr na něco použitelnějšího.

PS: Jen tak pro zajímavost, jak dlouho trvalo vymyslet (zapsat) vzorec do funkční podoby?citovat
#049515
elninoslov
Zrovna tento netrval dlho, lebo ma princíp hneď trkol. Pár minút mi trvalo, kým som pochopil, že mi robia galibu tie medzery pri prevode textu na číslo. Škoda nemám stiahnutý ani Tvoj ani lugr-ov súbor, že by som si pozrel čas, tak iba tipujem 10-15-20 min? Aj s vyskúšaním. Niekedy to býva ale podstatne väčšie utrpenie, kým sa človek nakoniec dopracuje často aj k jednoduchému riešeniu. Vieš ako to býva, "Pre stromy nevidno les".

EDIT: PS: Áno vyhodnotenie vzorca je úplná tragédia. Také okno mohlo mať opodstatnenie v dobách VGA rozlíšenia, a nie FHD/4K... Nemá niekto nejakú featurku ako to zväčšiť?
Inak v bunke alebo v riadku vzorcov sa dá vyhodnotiť označená časť vzorca pomocou F9.citovat
#049518
avatar

veny napsal/a:

Je pravda že nad dlouhým textem jsem nepřemýšlel.
No šlo by to tedy takto.Příloha: 49509_vyhledani_cisla_text.xlsx (18kB, staženo 4x)


To by nešlo. Pokud nebudou mezi čísly mezery, tak se čísla spojí.

Možností je docela dost. Třeba:
#"Vybrat číslice" = Table.AddColumn(
Zdroj,
"Cisla",
each Text.Combine(
List.Transform(
Text.ToList([Sloupec1]),
(c) => if List.Contains({"0" .. "9"}, c) then c else " "
),
""
)
),
#"Rozdělit sloupec mezerou" = Table.TransformColumns(
#"Vybrat číslice",
{{"Cisla", each Splitter.SplitTextByWhitespace(QuoteStyle.Csv)(_)}}
),
#"Vybrat ean" = Table.TransformColumns(
#"Rozdělit sloupec mezerou",
{{"Cisla", each List.Select(_, each Text.Length(_) = 13)}}
),


nebo

#"Najít čísla" = Table.AddColumn(
Zdroj,
"cisla",
each List.Transform(
Splitter.SplitTextByCharacterTransition(
(c) => not List.Contains({"0" .. "9"}, c),
{"0" .. "9"}
)([Sloupec1]),
each Text.Select(_, {"0" .. "9"})
)
),
#"Vybrat ean" = Table.TransformColumns(
#"Najít čísla",
{{"cisla", each List.Select(_, each Text.Length(_) = 13)}}
),


Možné jsou i variace nalezení pozice číslic, převedení na range, ...citovat
#049519
avatar

lubo napsal/a:

To by nešlo. Pokud nebudou mezi čísly mezery, tak se čísla spojí.

No já navazoval na svůj předešlý post kde jsem o mezerách psal.
Nicméně díky za další ukázky práce s textem v PQ.
Zalíbila se mi i fce volaná přímo 10
Jsem samouk začátečník (i když mi hodně moc pomohl MePExG) takže jsem rád za vše, kde se můžu učit.citovat

Strana:  « předchozí  1 2

Uživatelské menu

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

Menu

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje