» Poradna » Programy

Excel - odstranění intervalu v buňce

 |   |  Microsoft Windows 10 IE 11.0

Dobrý den,jsem běžný uživatel excelu a chci si zjednodušit práci. Mám v jedné buňce např. 28, 32-33, 5320-5323, 5405 a potřebuji, aby ta čísla byla pod sebou na řádcích ale hlavně nevím jak odstranit intervaly. V buňce může být jedno číslo i třeba sto. Jsou vždy oddělena čárkami a pomlčka značí interval.Výsledek by měl vypadat takto:28323353205321532253235405Předem díky za návod.Jitka

Mohlo by vás také zajímat

Odpovědi na otázku

 |   |  Microsoft Windows 7 Firefox 68.0

Návod? Na tohle si budeš muset (nechat) napsat kód ve VBA.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 79.0.3945.88

Pokud by to bylo jednorázové nebo občasné využití, tak by se to dalo během chvilky udělat využitím fce Text do sloupců (karta Data - Text do sloupců) a tam postupně vybrat jednotlivé oddělovače - čárky, pomlčky, ... A až to bude hotové, tak označit řádek a pak dát Vložit -> Vložit jinak -> transponovat (tím se data z 1 řádku vloží do 1 sloupce).Pokud by to bylo častější, tak bych zvolil vytvoření makra, jak už zde bylo zmíněno

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows XP Firefox 52.0

Trochu by pomohlo vědět, k čemu má dál převod do sloupce čísel sloužit a proč jsou vstupní data formátovaná jako text a proč právě tímto způsobem. Jak píše kolega, není problém na to napsat makro. Tohle bych ale řešil se zaměstnavatelem nebo poskytovatelem dat.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 68.0

Jsi velký optimista, zaměstnavateli to bude vysloveně u zadele. Už to tak funguje několik let, nikdo si nestěžoval, tak si nevymejšlejte a koukejte makat, za to jste placená. A poskytovatelem dat bude jistě nějaká blonďatá sekretářka, která je vůbec ráda, že dokáže toto vyplodit a následné zpracování ji absolutně netankuje. Než se domůže nějakého smysluplného výstupu bude jednodušší se ta makra naučit a poradit si sáma.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows XP Firefox 52.0

Pokud v buňce může být jedno číslo i třeba sto, to je rozumný přístup. Tím spíš, že za to, aby si poradila sama, je taky asi placená.

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 10 Chrome 79.0.3945.88

Makro- údaje z prvého zošita - bunky A1- výsledné údaje idú do druhého zošita - od A1- netestované - nevychytané prípadné chyby- bez záruky a ďalších úprav- Veselé Vianoce :))https://pastebin.com/0CwRk6Lrhttps://pastebin.com/0CwRk6Lr

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 68.0

Pěkný, něco podobnýho sem si spíchnul taky, ale čekám na reakci tazatelky. Protože zadání většinou jení shodné s původním popisem (nakonec těch hodnot ke zpracování bude daleko více, umistění bude jinde ...atd).PS: Ještě si mohl napsat, kam si má ten kód vložit

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 10 Chrome 79.0.3945.88

Áno, bez znalosti zdrojového súboru, kde a ako sa má zapísať výsledok, to je zložité.Ale aspoň si človek niečo precvičí, nemäkne mu mozog pri vianočných programoch a nikdy nevie, kedy sa mu niečo podobné nezíde.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 68.0

Jen tak ze zvědavosti, proč máš některé proměnné deklarované jinak než ostatní stejného "druhu"?wksSheet1 = VariantwksSheet2 = Worksheeti = Variant j = Variant (nejspíše pozůstatek ladění, v samotném kódu není použita)lngBetween = LongDíky

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 7 Chrome 79.0.3945.88

Neviem, kde to vidíš, ale wksSheet1 a wksSheet2 mám definované rovnako - ako Worksheet.Takisto, i, j, lngBetween ako Long. Áno, premenná j je tam naviac, mal som ju tam prichystanú pre nejaký ďalší cyklus.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 68.0

Ahoj, typy proměnných, jakožto i jejich hodnoty si můžeš prohlédnout, když si v editoru zobrazíš okno LOCALS.Kouknul sem do chytré knihy a zádrhel je v podobě zápisu. Ten který používáš je možný ve VB (Visual Basic). Ve VBA (Visual Basic for Application) je nutné za každou proměnnou definovat její typ jinak tam editor narve Variant.

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 10 Chrome 79.0.3945.88

Áno, máš pravdu. Do Locals som nepozeral.Premenné by mali byť teda takto:Dim wksSheet1 As Worksheet, wksSheet2 As WorksheetDim Array1 As Variant, Array2 As Variant, ArrayItem As VariantDim i As Long, lngBetween As Long

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows XP Firefox 52.0

S procvičováním mozku bych zatím počkal, Převedením několika (třeba i stovky) intervalů z jedné buňky do sloupce asi nebude práce končit. Počkal bych, až Jitka doplní k čemu údaje slouží, s čím jsou propojené, jak se s nimi dál bude pracovat.

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 7 Chrome 79.0.3945.88

Tak to má Jitka smolu, lebo ďalšie úpravy nie sú v cene (zadarmo).

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 IE 11.0

Ahoj,no máš pravdu. Tady mi to nikdo nenapíše a proto jsem si chtěla poradit jinak.Takže kam to mám vložit? Dala jsem to jako nový dotaz. Jinak ve sloupci A mám názvy a u nich ve sloupci B jsou právě tyto kody.Jitka

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 68.0

Ahoj, nevím zda je to reakce na mě (ta stromová struktura je na... pytel), ale pokusím se odpovědět. Osobně nemám problém makro sepsat, ale to vyžaduje i spolupráci druhé strany (Tvoji). Makro je vlastně jednoduchý program na specifickou, často se opakující činnost. K jeho sepsání je tedy nutné dodat co nejpřesnější popis činnosti, kterou má vykonávat (kde jsou umístěna vstupní data, kam se má umístit výsledek atd). Vždy je nejlepší poskytnou vzorový soubor s popisem činnosti a zobrazeným výsledkem jak to má vypadat!Co se týče kódu - otevřeš si svůj soubor, stiskneš ALT+F11 čímž se dostaneš do editoru VBA. Poté z horní nabídky vybereš "Insert" a Module. Ve stromové struktuře se objeví modul "Module1", do kterého zkopíruješ kód. Vše prováděj na kopii souboru. Změny provedené makrem NELZE VZÍT ZPĚT!Jen technická, myslím že výše zmíněný kód Ti bude k .....To že jsou vstupní data umístěna ve sloupci B jsi uvedla až niní! A stále nevíme KAM se má vložit výsledek! Pokud sloupec A obsahuje názvy a sloupec B příslušné hodnoty a požadavek na výsledek zněl "podsebe" Jaká bude výsledná struktura dat ???

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 71.0

Jde to i bez VBA .Např. v buňce B2 máš "28, 32-33, 5320-5323, 5405"B3=DOSADIT(B2;"-";", ")Do B4 zkopíruj pouze hodnoty z B3 (Ctrl+C a pravým tlačítkem myši zvol 123)Vyber B4 až G4 zkopíruj (Ctrl+C)Klikni na B5 a a pravým kliknutím myši zvol "Vložit jinak" a Transponovat

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 68.0

Jó, fakt?!Přečet sis vůbec dotaz?A kde máš chybějící hodnoty (5321, 5322)?Nehledě na to, že tebou uvedený postup "Do B4 zkopíruj pouze hodnoty z B3 (Ctrl+C a pravým tlačítkem myši zvol 123) "Vloží sice data jako hodnoty, nikoliv do oblasti B4:G4, ale jako řetězec do buňky B4, tudiž k žádnému transponování nedojde.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 71.0

Pro převod do sloupců je potřeba na kartě data zvolit "Text do sloupců".Doplnění rozsahu hodnot lze vyřešit maticovou funkcí např. pro počáteční hodnotu v B13 (5320) a koncovou v C13 (5323) D13{=ŘÁDEK(NEPŘÍMÝ.ODKAZ(B13&":"&C13))} (Ve vzorci stisknout Shift+Ctrl+Enter pro maticou funkci {})Hodnoty pole ={5320;5321;5322;5323} se zobrazí po stisku F9 v buňce vzorce výše.Hodnoty pole pak lze převést na text pomocí karty "Data" a "Text do sloupců" + odstranit "={" u první hodnoty a "}" u poslední

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 7 Chrome 79.0.3945.88

Niektorým funkciám v Exceli ako INDEX, MATCH, INDIRECT, som nikdy neprišiel na chuť a radšej som sa naučil trochu robiť s VBA. Obdivujem každého, kto ich používa.A to som sa ešte našťastie nemusel potýkať s českými názvami funkcií.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 IE 11.0

Ahoj,takhle to fakt nejde, protože těch řádků na převod mám cca 1000.Zadání: Název KodPetr 93Lenka 9378Tomáš 9376-9377Alena 9370-9371, 9373-9375Potřebný výsledek:Petr 93Lenka 9378Tomáš 9376Tomáš 9377Alena 9370Alena 9371Alena 9373Alena 9374Alena 9375Ze čtyř řádků je jich hned 9 a postupně narůstají. Takže je potřeba to nějak naprogramovat s výstepem na další list.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 IE 11.0

Upřesnění. Jméno je sloupec A, kod je sloupec B

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 10 Chrome 79.0.3945.88

Trochu som upravil ten pôvodný kód a pridal tlačítko na spustenie makra.Súbor s kódom:http://leteckaposta.cz/805477130

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 IE 11.0

je to úžasný. Dostala jsem nový soubor, tak jsem to na něm otestovala. Jak se mohu odvděčit?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 68.0

Dobrá, ať to nevypadá, že jen kecám. Přikládám svůj výtvor. Řešení pomocí polí - do listu se vše vloží najednou. Makro spustíš přes kartu "Zobrazení - Makra" a spustit.Pokud budeš kód přenášet do jiného sešitu, musí obsahovali list s názvem "DataVstup", ze kterého se čerpají hodnoty k úpravě. List "DataVystup" se vytvoří automaticky pokud není obsažen.https://uloz.to/file/o4BsIfvOwhmI/nadradi...

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 71.0

Ještě tip. Všechny hodnoty v řádku vybereš snadno tak, že klikneš na první buňku a pomocí Shift+Ctrl+šipka doprava vybereš najednou všechny buňky.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Chrome 79.0.3945.88

Naprogramuj si to ve Visual Basicu co je v Excelu.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 IE 11.0

Ahoj,kdybych to uměla, tak si to udělám Jitka

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Pomlčka