Potrebuju malou radicku.. Potrebuju nejaky vzorec ktery zkopiruje obsah bunky ale bez prefixu (napr. vsechny polozky zacinaji S ktere potrebuji smazat...)
Pomuze nekdo? diky moc
Printable View
Potrebuju malou radicku.. Potrebuju nejaky vzorec ktery zkopiruje obsah bunky ale bez prefixu (napr. vsechny polozky zacinaji S ktere potrebuji smazat...)
Pomuze nekdo? diky moc
Ve finale mi z toho vysel celkem dlouhy vzorec ale vse funguje dokonale.. Diky moc
Jen tak pro úplnost, opačný případ (přidání prefixu) řeší funkce CONCATENATE(string1;string2) - jediné blbé na ní je to, že má jen dva parametry, takže pokud chcete sloučit víc stringů, musíte ty funkce vnořit do sebe.
Aktuální příklad z praxe, chtěl jsem uzavřít string mezi hvězdičky a funkce vypadá takto:
=CONCATENATE(CONCATENATE("*";A11);"*")
(název funkce je stejný i v CZ verzi)
Což se jen pro úplnost dá řešit elegantně naprgáním vlastní funkce ve VBA, níže uvedená "slepí" dohromady neomezený počet řetězců:
:wink:Kód:Function JoinStrings(ParamArray retezce() As Variant) As String
For Each arg In retezce
JoinStrings = JoinStrings & arg
Next arg
End Function
jenže to předpokládá, že budeš vědět, s tou funkcí pracovat a to si myslím je pro běžného uživatele excelu silné kafe; nehledě na to, že musíš napsat zbytek kódu, který udělá logiku volání funkce nad množinou buněk. osobně moc nevím, jak bych to v tomto případě řešil, je to takové blbě vytržené z nějakého kontextu imho.
Pokud si těchto pár řádků nakopíruješ do modulu VBA v Excelu, tak to pak normálně můžeš vložit přes Vložit-Funkce-Vlastní. Pak si jako argumenty postupně "naťukáš" tolik buněk kolik potřebuješ... A v buňce kam to zadáváš se zobrazí "pospojovaný" string... Ano uznávám, že pokud bys ty buňky nezadával jednotlivě, ale měl je vedle sebe a chtěl vybrat coby oblast, tak to asi (určitě) bude haprovat... Ale z kontextu to vytržené není, spíš vycucané z prstu :wink:
No já bych spíš řekl že to dělá to samé co concatenate jen není nutné používat tu závorku :-D A prefixů i postfixů si tam můžeš namlátit do parametrů funkce kolik chceš a mezi to někam dát odkaz na buňku obsahující ten "středový" výraz mezi předponou a příponou :-) Ale uznávám, že při běžné aplikaci BFU napíše radši pár závorek do concatenate, nota bene když by musel hledat kde se otvírá editor VBAčka :-)
Tak to s tím VBAčkem nebylo na tebe, přepokládám, že ty to víš :-D No já za normálních okolností asi taky, akorát teď musím VBA trošku z důvodu studijně-pracovního nastudovat, čili mi to tak cinklo do oka že jsem sem ten kód vypsal :-D
Co jsem si netroufal vzorečkama a použil VBA je šablona pro fakturu, která počítá rekapitulaci DPH a připojuje se na databázi adres v Accessu. Ta rekapitulace DPH by vzorečkama šla, i celkem elegantně (problém je že s VBA to nejde moc řešit online), ale ty kontakty moc ne (měl jsem tam combo a tlačítko, které načetlo data do toho comba a při vybrání adresy vyplnění políček na faktuře).
Obecně je VBA v office celkem silný nástroj.. dá se tam dělat leccos, ale narazil jsem i na případy, kdy i to bylo málo - výkonově nestačilo :)
No ona je bohužel taky pravda, že když se makro ve VBA blbě (a nemusí být ani vlastně tak blbě, někdy to platí i pro dobře napsané) napíše, tak je to výrazně pomalejší než vzoreček, i když ten třeba vypadá "hrozně složitě"... Rozhodně neplatí, že když se něco spatlá ve VBAčku, musí to být nutně výkonnější než "naťukáno vzorečkem" :-)