< návrat zpět

MS Excel


Téma: Rozkouskovat text rss

Zaslal/a 7.4.2021 10:07

Dobrý den,
mohu poprosit o pomoc.
Mám v jedné buňce text který může obsahovat mnou požadovaný - hledaný text. Řekněme že v buňce A2 mám text "Praha: 23 koček Strakonice: 2 psy"
A já bych rád rozkouskoval, buňka B2 by obsahovala 23 koček a buňka C2 2 psy.

Ale v textu může být více měst, tak že bych chtěl do další buňky D2 napsat zase text co je k tomuto městu.

Jediné co je pevné že za městem je ":" (případně mohu v řádku 1 přesně napsat které města chci z textu hledat).
Bojím se že může nastat že i v textu může být dvojtečka a že mohou být města v textu přeházená tak že ani moc nefunguje funkce v přiloženém souboru.

Ve zkratce z textu bych potřeboval získat text pro případných konkrétních 5 které bych měl sloupcích napsané.

Děkuji, Exel 2013 CZ

Příloha: xlsx50328_text.xlsx (12kB, staženo 22x)
Zaslat odpověď >

#050336
avatar
Tak to jsem zvědavý, jestli někdo/elninislov něco vymyslí. Podle mě to je zadání pro umělou inteligenci.citovat
#050337
Lugr

Jiří497 napsal/a:

Tak to jsem zvědavý, jestli někdo/elninislov něco vymyslí. Podle mě to je zadání pro umělou inteligenci.


Takže blondýna obarvená na brunetu jo? 5citovat
#050341
elninoslov
To ja som opačne. Kedysi čierne kučery, dnes rovný sivovlas 5
No a tie data - čumím na to ako Ďuro do makových slížov, a nevidím žiadnu "schému", ktorá by sa dala spoľahlivo dešifrovať. Rozdeliť cez ":" nie je prob. Ten nastane keď nevieme od seba rozlíšiť 2 druhy ostatných údajov. Ani medzerou, ani číslom, ani číslom spolu s "x" (raz pred, raz za), ani veľké/malé písmeno, nič... 7citovat
#050342
avatar
elnino, také ľahké nevieš? Píše že text má v jednej bunke (A2). Na to stačí jednoducho CTRL+C a CTRL+V. 2citovat
#050343
elninoslov
Ja neviem chlapi. Napadlo ma takéto UDF. Vyznačil som tam jednu chybu, ktorú neviem eliminovať. Skúste:
Public Function GET_ANIMALS(Text As String, Mesto As String) As String
Dim S() As String, C() As String, i As Long, x As Long, PocetC As Long, PocetS As Long, bValidA As Boolean

S = Split(WorksheetFunction.Trim(Text), WorksheetFunction.Trim(Mesto) & ": ")
If UBound(S) = 0 Then Exit Function
S = Split(Split(S(1), ": ")(0), " a ")
PocetS = -1

For i = 0 To UBound(S)
C = Split(S(i), " ")
PocetC = -1
bValidA = False

For x = 0 To UBound(C) Step 2
If x + 1 <= UBound(C) Then
bValidA = (IsNumeric(Left(C(x), 1)) And Not IsNumeric(Left(C(x + 1), 1))) Or (Not IsNumeric(Left(C(x), 1)) And IsNumeric(Left(C(x + 1), 1)))
Else
bValidA = False
End If

If bValidA Then
PocetC = x + 1
Else
If PocetC = -1 Then PocetC = 0
Exit For
End If
Next x

If PocetC > -1 Then
ReDim Preserve C(PocetC)
S(i) = Join(C, " ")
PocetS = PocetS + 1
Else
Exit For
End If
Next i

If PocetS > -1 Then
ReDim Preserve S(PocetS)
GET_ANIMALS = Join(S, " a ")
End If
End Function
Příloha: zip50343_desifruj-pocty-zvierat.zip (17kB, staženo 14x)
citovat
#050348
avatar
Děkuji, zatím co jsem ve koukal to funguje, až jak jste sám podotknul na nějaké případy.

Chápu že zadání je asi neřešitelné a možná mnou špatně popsané.
Případně bych zkusil ještě popsat jinak.
V prvním sloupci mám text kde bude vše v jedné buňce a který bude obsahovat jeden dlouhý texty. V dalších sloupcích kde bych definoval "Města" a chtěl získat text který bude za konkrétním městem k dalšímu městu. Problém je že ve zdrojovém textu může ale nemusí být všechny mnou hledané města, text může obsahovat jakékoliv znaky v různém pořadí (Text číslo, číslo text a může nastat že i obsahuje : nebo i speciální znaky !, % ) a i pořadí měst se může měnit v textu = nejdou vždy stejně za sebou.

Ale Váš výtvor snad bude postačovat.
Každopádně ušetří čas v dohledávání
Děkuji

Update 15:15
tak ještě jsem zjistil že je problém u delších textu jako že "Praha: Slon Africký 2x ...." to v Praze vypíše jen Slon

Ale asi neřešitelné tak projedu ručněcitovat
#050352
avatar
a jeden s megavzorcem

POZOR
v původním
E1 - Hradec Králové - má na konci mezeru - opravit!
Příloha: xlsx50352_desifruj.xlsx (12kB, staženo 19x)
citovat
#050360
avatar

JoKe napsal/a:

a jeden s megavzorcem

POZOR
v původním
E1 - Hradec Králové - má na konci mezeru - opravit!Příloha: 50352_desifruj.xlsx (12kB, staženo 4x)


Děkuji moc toto vypadá že funguje dobře. A opravdu mega vzorec že ani se nesnažím nějak pochopit jak je dobrej.citovat

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