Excel – Příprava souřadnic pro import do MicroStationu

Úprava seznamu souřadnic pro import do MicroStationu ○ Funkce NAJÍT, NAHRADIT, ČÁST a KDYŽ.

minulém článku jsem stručně popsal základní postup importu seznamu souřadnic do MicroStationu. Import je jednoduchý, s jedinou podmínkou: seznam souřadnic musí být ve správném tvaru. Pokud tomu tak není, můžeme ho snadno upravit právě v Excelu.

Zásady pro uspořádání vstupních dat jsou popsány v předchozím článku. Ty, které můžeme zpracovat v Excelu, jsou:

  • Souřadnice jsou oddělené čárkou;
  • jako desetinná značka, je-li třeba, je použita tečka;
  • souřadnice XY jsou záporné;
  • souřadnice XY jsou přehozené na YX;
  • všechny souřadnice jsou v jednotném pořadí XYZ nebo YXZ;
  • data neobsahují prázdné znaky (mezery).

Příprava – import dat do Excelu

V první řadě musíme data ze zdrojového seznamu souřadnic nějakým způsobem importovat do Excelu a v něm je uspořádat do sloupců. U souborů xlsx a csv není co řešit, stačí je otevřít. Otevřeme i textové soubory txt, u těch ale většinou dojde k tomu, že se celý řádek textu vloží do prvního sloupce. V tom případě použijeme nástroj Text do sloupců (karta Data, návod např. zde). Ze souborů, které otevřeme v jiném programu (např. soubory pdf) se můžeme pokusit data vybrat a zkopírovat. Pokud to není možné nebo v případech, kdy existuje pouze papírová forma, nezbývá, než data ručně opsat nebo použít některý OCR program.

Výsledek importu do Excelu může vypadat takto:

232-11

Úprava vstupních dat

Dalším krokem je nahrazení desetinné čárky tečkou. Můžeme použít nástroj Najít – nahradit, ale proč se tím při každém dalším importu zabývat a zdržovat. Excel je mocný software se spoustou užitečných funkcí, díky kterým můžeme právě takovéto úkony automatizovat. Pokusím se tedy sestavit vzorec pro úpravu souřadnice v buňce B3 výše uvedené tabulky, který pak budeme moci použít pro veškerá data.

Pro nahrazení části textu slouží kombinace funkcí NAJÍT a NAHRADIT. Funkce NAJÍT vrací pozici hledaného textu:

=NAJÍT(",";B3;1)

Výsledek: 7

Funkce NAHRADIT od zadané pozice nahradí zadaný počet znaků novým textem. Pozici zjistíme funkcí NAJÍT, v našem případě je počet znaků 1 a nový text je znak tečka:

=NAHRADIT(B3;NAJÍT(",";B3;1);1;".")

Výsledek: 488729.434

Může se stát, že nahrazení není potřeba. Buď data již obsahují tečku, nebo nemají desetinná místa. Desetinnou čárku tedy neobsahují. Funkce NAJÍT pracuje tak, že pokud nenajde hledaný znak, vrací chybu #HODNOTA. Abychom zjistili, zda k tomu došlo, použijeme funkci JE.CHYBHODN:

=JE.CHYBHODN(NAJÍT(",";B3;1))

Výsledek: NEPRAVDA

Takže algoritmus je následující: Když je výsledek funkce NAJÍT chyba, není co nahrazovat, použijeme zdrojový text, jinak provedeme náhradu kombinací funkcí NAJÍT a NAHRADIT. Přesně k tomu je určena funkce KDYŽ, která funguje ve smyslu  KDYŽ(je něco pravda; udělej něco; jinak udělej něco jiného):

=KDYŽ(JE.CHYBHODN(NAJÍT(",";B3;1));B3;
NAHRADIT(B3;NAJÍT(",";B3;1);1;"."))

Ať buňka B3 obsahuje tečku nebo čárku, výsledek je vždy: 488729.434

V úpravě souřadnice můžeme dále pokračovat doplněním znaménka mínus. Opět se může stát, že znaménka mínus jsou již ve zdrojových datech. Můžeme to zjistit funkcí ČÁST, která vrací zadaný počet znaků od zadané pozice. Znaménko mínus by bylo prvním znakem, ptáme se tedy:

=ČÁST(B3;1;1)="-"

Výsledek: NEPRAVDA

Použijeme osvědčenou funkci KDYŽ: když je výsledek kladný (mínus již existuje), vložíme prázdný text (čili nic), v opačném případě znaménko mínus:

=KDYŽ(ČÁST(B3;1;1)="-";"";"-")

Výsledek: –

Teď už stačí sloučit obě operace do jednoho vzorce. Použijeme textový operátor &:

=KDYŽ(ČÁST(B3;1;1)="-";"";"-")
&KDYŽ(JE.CHYBHODN(NAJÍT(",";B3;1));B3; NAHRADIT(B3;NAJÍT(",";B3;1);1;"."))

Ať buňka B3 obsahuje či neobsahuje znaménko mínus a ať obsahuje tečku nebo čárku, výsledek je vždy: -488729.434

Máme vzorec pro souřadnici Y, pouhým přetažením ho nakopírujeme do sousedních sloupců pro X a Z a u souřadnice Z odmažeme část vzorce pro doplňování znaménka mínus. Pokud chceme importovat i popis bodu, musíme pamatovat na tom že nesmí obsahovat mezery. Použijeme tedy náš vzorec pro náhradu, jen čárku změníme na mezeru a tečku za podtržítko:

=KDYŽ(JE.CHYBHODN(NAJÍT(" ";E3;1));E3;
NAHRADIT(E3;NAJÍT(" ";E3;1);1;"_"))

Úpravu souřadnic máme připravenou:

232-12

Pořadí a sloučení souřadnic

V posledním kroku musíme seřadit souřadnice do správného pořadí: XYZ pro import bodových prvků, CXYZ pro import buněk a TXYZ pro import textů, kterými mohou být čísla, výšky a popisy bodů. Vše musí být odděleno desetinnou čárkou. Použijeme funkci CONCATENATE, dbáme, aby původní souřadnice Y byla cílová X a původní X cílová Y:

XYZ:

=CONCATENATE(G3;",";H3;",";I3)

CXYZ:

=CONCATENATE(F3;",";G3;",";H3;",";I3)

TXYZ, číslo bodu:

=CONCATENATE(A3;",";G3;",";H3;",";I3)

TXYZ, výška bodu:

=CONCATENATE(I3;",";G3;",";H3;",";I3)

TXYZ, popis bodu:

=CONCATENATE(J3;",";G3;",";H3;",";I3)

Tím máme vše připraveno pro tvorbu správně uspořádaného txt souboru pro import souřadnic do MicroStationu.

Vytvoření txt souboru

  • Zdrojová data vložíme do sloupců A až F.
  • Přetažením zkopírujeme vzorce ze sloupců G až J do všech řádků se zpracovávanými daty.
  • Přetažením zkopírujeme vzorec z toho ze sloupců K až O, který potřebujeme.
  • Zkopírujeme do schránky vše z tohoto sloupce.
  • Otevřeme prázdný txt soubor.
  • Vložíme do něho data ze schránky a uložíme ho.
232-14

Závěr

Kombinací několika funkcí se nám podařilo omezit přípravu pro tvorbu txt souboru pro export souřadnic do MicroStationu na pár rychlých kroků.

Soubor s připravenými vzorci je možno stáhnout zde. Hlavička a buňky se vzorci v prvním řádku jsou uzamčeny, heslo pro odemčení listu není nastaveno.

Pro časté zpracovávání rozsáhlých dat by bylo možné i tyto kroky úplně automatizovat pomocí VBA maker (kromě kroku prvního – importu do Excelu). Je možné vytvořit VBA projekt přímo v MicroStationu, který jedním příkazem načte data ze sloupců A až F, provede potřebné úpravy a spustí import do MicroStationu.

Štítky

Vytvořte si web nebo blog na WordPress.com