Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 Re: Calc » Vložení obsahu vč. formátu z jedné buňky, do textu jiné buň. VYŘEŠENO » 12. 2. 2024 19:32:57

Jen pro úplnost, nespočívá to v CONCATENATE, ale v TEXT. Funguje: ="Objednatel se zavazuje zaplatit sjednanou cenu ve výši "&TEXT(A1;A2)&" + DPH v sazbě platné ke dni vystavení konečného daňového dokladu."
Obsah buňky A2 = "0 000 kč" (nebo jakkoli jinak) - umožňuje měnit formát hromadně bez nutnosti měnit všechny vzorce.

#2 Re: Calc » Jak upravit soubor xlsx vytvořený MS Office » 10. 1. 2024 14:38:07

"Stahovací seznam" v LO najdete v záložce Data pod odrážkou Platnost. Postavte tedy kurzor na stahovací buňku, klikněte na Data -> Platnost a otevře se dialog, kde byste snad mohl vyčíst odkud se tahají argumenty výběru.

#3 Re: Calc » Jak upravit soubor xlsx vytvořený MS Office » 7. 1. 2024 20:28:09

vorec vypadá v pořádku tak se podívejte zda na D6 je ta hodnota co hledáte a že je také obsažena v oblasti 'sl. tarify'.C4:C23. To bych udělal na začátek.

#4 Re: Calc » Načítání údajů z ARES-VYŘEŠENO » 6. 1. 2024 17:21:07

Díky - neutr - nějak jsem to zbastlil. Trochu je tam problém s tím že čárky mohou být i v argumentech, ale dalo se to překonat. Zároveň je riziko že hledané heslo bud součástí i jiných hesel (např. "dic"). Nakonec mám ale pocit že to rozdělování na řádky ani není nutné. Jaké to má výhody? Existuje i jakási novější funkce v novějším LO: =PARSEJSON(JSON,Pattern). Bohužel musím mít z různých důvodů starší office. Tož můj makro bastl:

dIco = list.getCellByPosition(sloupec, radek).value
		
	xmlHtp = CreateObject("MSXML2.XMLHTTP")
	oleService = createUnoService("com.sun.star.bridge.OleObjectFactory") 
	XMLDOC = oleService.createInstance("Msxml.DOMDocument")

	if dIco <> 0 Then
	
		ico = Format(dIco,"00000000")

		sURL = "[url]https://ares.gov.cz/ekonomicke-subjekty-v-be/rest/ekonomicke-subjekty/[/url]" & ico
		'http://wwwinfo.mfcr.cz/cgi-bin/ares/darv_bas.cgi?ico= ' STARÉ XML

		xmlHtp.Open "GET", sURL, False  
		xmlHtp.Send
		XMLDOC.loadXML xmlHtp.responseText
		strResponse = xmlHtp.responseText
		
		strResponse = Replace(strResponse, CHR(34), "") 'Odstranit veškeré uvozovky
		
		Dim Pattern(6) as string
		Pattern = Array("obchodniJmeno","nazevUlice","cisloDomovni","cisloOrientacni","psc","nazevObce","dic") 'hledaná hesla
				
		strResponse = Replace(strResponse, ", ", "+ZZZ+") 'nahradím čárku s mezerou nějakým jedinečným znakem
		
		For i = 0 to 6
				
			izacatek = InStr(1, strResponse, Pattern(i)) + LEN(Pattern(i)) + 1
			ikonec =  InStr(izacatek, strResponse,",")
			Hodnota(i) = MID(strResponse, izacatek, ikonec - izacatek)
			Hodnota(i) = Replace(Hodnota(i), "+ZZZ+", ", ")  'nahradím jedinečný znak za čárku s mezerou
		
			print Hodnota(i)
		
		Next i
		
	else
		msgbox ("Je zapotřebí nechat kurzor na ič",0,"Repete")

	end if

#5 Re: Calc » Načítání údajů z ARES-VYŘEŠENO » 5. 1. 2024 21:38:48

Já ten JSON jakoby načtu a vidím ho, ale načítám to opravdu jako čistý text a nevím jak se dostat k tomu konkrétnímu údaji. Neexistuje v BASICu nějaká struktura, která by takový to soubor dokázala rozklíčovat? V tom textu vidim třeba ,"dic":"01234567", (i s těmi čárkami okolo). Asi bych si s tím nakonec nějak poradil prostě hledání hesla ,"dic": a pak nějaký rozklíčování délky textu mezi dvojtečkou a čárkou a vytažení toho čísla, ale je to takové fušérké, se mi zdá. Jestli není nějaké již systémovější řešení. Nedalo by se to třeba převést na normálně řádkované CSV? Jo zapomněl jsem podotknout že je to celé v jednom řádku.(Já to totiž stále načítám přes ty původní XML nástroje ...)

#6 Calc » Načítání údajů z ARES-VYŘEŠENO » 5. 1. 2024 13:08:53

ludviktrnka
Odpovědí: 4

Ahoj, netahali jste někdo údaje ze starého ARESU do LibreOffice? Jak jste se vypořádali se změnou na nový systém rejstříku? Přestali vracet XML a vrací asi jen JSON. Nějaké zkušenosti s touto problematikou? (Bohužel JSON je pro mne španělská vesnice)

#7 Re: Calc » STYLE v CONCATENATE - VYŘEŠENO » 2. 11. 2023 14:00:28

ahoj, nejsem si jist tím vlastním stylem, ale pokud jej lze definovat "normálně" pak bude fungovat klasické TEXT např.: =CONCATENATE("Text ";TEXT(SUM(A2:A5);"0 000"))


EDIT: osobně používám jednodušší ="Cokoli "&TEXT(FUNKCE();"formát")

#8 Re: Calc » souhrn záporných položek- vyřešeno » 24. 10. 2023 09:04:26

Pokud budou data uspořádány naopak - tzn. ne v řádcích ale ve sloupcích pak lze použít kontingenční tabulku s filtrem nebo rozšířený filtr (zadání je rozdíl <0).
Pokud by bylo nutné použít vzorce pak je možné ve stávajícím uspořádání přidat nahoru řádek se vzorcem: IF(B4<0;MAX($A$1:A1)+1;0) (v buňce B1 a roztáhnout do řádku) tím se označí všechny záporné položky na vzestupné řadě.
Potom se výsledná tabulka vytvoří pomocí vyhledávání položek v prvním řádku tabulky pomocí vzorce: =HLOOKUP(1;$B$1:$H$4;2;0) přičemž na dalším řádku bude vyhledávaná hodnota 2 atd. a ve sloupcích se zase mění index na 3 a 4. No snad je to pochopitelné.


Edit: Pro snadnější rozšíření vzorce lze vyhledávanou hodnotu nahradit číslem řádku ROW($A1); =HLOOKUP(ROW($A1);$B$1:$H$4;2;0)

#9 Re: Calc » Načtení dat z google disku » 26. 7. 2023 11:39:06

Přímé řešení by mě docela zajímalo, ale taky se obávám že to nejde. Office asi nedisponuje prostředky pro překonání přístupového systému do google účtu - ale nevím jen hádám. Jinak tedy obejít to jde tak, že se v Googlesheetu naprogramuje export dat do CSV (případně jsou i nějaké doplňky tohoto druhu, ale ty jsou obecné povahy, takže záleží na konkrétním případu zda je to využitelné) a na straně Office zase import CSV do tabulky. Takto to lze.

#10 Re: Calc » Posun na poslední vyplněnou buǩu ve sloupci A (Vyřešeno) » 9. 6. 2023 14:04:59

Taky přispěju se svou troškou do mlejna :-)

Sub skoc_na_konec
  Dim oSh As Object
  Dim oSloupec as Object
  Dim oOblasti as Object
  Dim oBunka as Object
	
  oSh = ThisComponent.Sheets.GetByName("vstup_z_banky")
  oSloupec = oSh.GetCellRangeByName("G2:G10000")
  oOblasti = oSloupec.queryContentCells(1+2+4+16).RangeAddresses

  If Ubound(oOblasti) < 0 Then   ' Nenalezeno, vybereme začátek
     radek = 2
  Else   
    radek = oOblasti(Ubound(oOblasti)).EndRow + 2
  End If 
  presun ( "G" & radek )
End Sub


sub presun (pozice as string) 'metoda pro ulození poslední hodnoty
	dim dokument   as object
	dim dispatcher as object
	dokument   = ThisComponent.CurrentController.Frame
	dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
	dim args1(0) as new com.sun.star.beans.PropertyValue
	args1(0).Name = "ToPoint"
	args1(0).Value = pozice
	dispatcher.executeDispatch(dokument, ".uno:GoToCell", "", 0, args1())
end sub

#11 Re: Calc » CALC Přestane přepočítávat některé vzorce » 1. 3. 2023 20:14:24

Naprosto nepochopitelně se mi přestal přepočítávat naprosto jednoduchý vzorec =A1 (prostě jsem chtěl mít ten sloupec na dvou místech, obešel bych se bez toho, ale je to přehlednější). Nahradil jsem to za =1*A1 a zatím to funguje. Jindy se mi nepřepočítávaly vzorce se SUMPRODUCT, to už je horší, ale to se mi v poslední době neděje, tak snad dobrý.

#12 Re: Calc » CALC Přestane přepočítávat některé vzorce » 13. 2. 2023 12:49:38

Stává se mi to, je to dost nepříjemné, bohužel řešení nemám.

#13 Re: Calc » Změna formátování textu na ...(třeba datum) - apostrof - VYŘEŠENO » 8. 2. 2023 20:04:22

Aha, mám teď LO 5.4 kvůli bezproblémovému běhu maker. Tak to bude tím.

#14 Re: Calc » Změna formátování textu na ...(třeba datum) - apostrof - VYŘEŠENO » 8. 2. 2023 07:53:05

to kabi: jj, s volbou "USA" to opravdu funguje jak pro apostrofy tak pro desetinné tečky - ale na to člověk fakt sám nepřijde. Díky.


A ještě tedy jeden dotaz: píšete, že je volba stejná jako při vkládání pomocí Ctrl-Shift-Alt-V. Tohle mi žádný příkaz nespouští, možná jste měl namysli Ctrl+Shift+V, což ale stejnou volbu neumožňuje, resp. nepodařilo se mi takto převést ani desetinné tečky ani apostrofy na standardní čísla. Nějaký návod?


Už tomu asi rozumím - jde zřejmě o import (vložení) neformátovaného textu, sice ta klávesová zkratka mi fakt nefunguje, spouštím to přes "roletku" pod tlačítkem "vložit" na toolbaru a tady je nabídka stejná to je jasné, je to vlastně stejná funkce. Takže ano, jsou minimálně dvě cesty jak se k této funkci dostat. Asi jste měl namysli toto.

#16 Re: Calc » Změna formátování textu na ...(třeba datum) - apostrof - VYŘEŠENO » 3. 2. 2023 16:13:25

to imcon: možná byste měl přečíst pár příspěvků v této dikuzi opravdu pořádně než učiníte takový definitivní závěr.

ludviktrnka napsal(a)

Pokud tam čárka vůbec není např.: '5 tak je potřeba použít regulární výraz např. vyhledat [:digit:] a nahradit za &

#17 Re: Calc » Změna formátování textu na ...(třeba datum) - apostrof - VYŘEŠENO » 3. 2. 2023 14:47:57

kabi napsal(a)

můžete také označit sloupec a použít volbu Data -> Text do sloupců. Při tomto převodu si můžete zvolit formát, který vám bude vyhovovat.

... zkouším to na desetiných číslech s tečkou místo čárky (poměrně typická potíž) a nějak mi to takto nejde a nejde mi to ani s textovými buňkami s obsahem desetinných a celých čísel s desetinou čárkou ale s neviditelným uvozujícím apostrofem. Tak nevím. Nějaký moc možnosti tam nejsou, volba detekovat speciální čísla je nepřístupná a stejně tak znaková sada. Ale možná je to mým starým LO.

EDIT: ale funguje to na datum, to je pravda.

#18 Re: Calc » Změna formátování textu na ...(třeba datum) - apostrof - VYŘEŠENO » 3. 2. 2023 08:32:47

já jsem teď měl čísla většinou celá nebo zakrouhlena na 0,5. Omylem jsem načetl data z csv se zaškrtnutým "pole v uvozovkách jako text", což není úplně dobré při importu čísel :-). Takže v buňce bylo to co říkáte - neviditelný apostrof a číslo třeba 5 nebo 128 nebo 2,5 apod. (zarovnáno vlevo). Označil jsem celý sloupec (asi 2000 řádků), dal jsem ctrl+H, do pole vyhledat napíšu čárku "," a do pole nahradit taky ",". No a výsledek je, že i číslo 5 i číslo 2,5 se přeformátují na číslo (zarovnáno vpravo). Hotovo. Vy jste se ale ptal původně na datum, to jsem nezkoušel.


EDIT: pardon, teď se koukám do zdroje a já tam měl vždy 5,0; 128,0 atd. takže čárka fungovala. Pokud tam čárka vůbec není např.: '5 tak je potřeba použít regulární výraz např. vyhledat [:digit:] a nahradit za &

#19 Re: Calc » Změna formátování textu na ...(třeba datum) - apostrof - VYŘEŠENO » 1. 2. 2023 17:14:47

to lp. děkuji, mockrát jsem to řešil přes Value, ale to nahrazení např. čárku za čárku fakt funguje a pro větší množství dat je to opravdu mnohem efektivnější. Super.

#20 Re: Calc » Přesun hodnot z několika sloupců pod jeden (VYŘEŠENO) » 1. 11. 2022 12:53:27

vzorec je: =INDEX($B$2:$H$1000;ROUND(ROW(I1)-ROUNDDOWN(ROW(I1)/(COUNTA($B$2:$B$1000)+0,1))*COUNTA($B$2:$B$1000));ROUNDUP(ROW(I1)/COUNTA($B$2:$B$1000))), roztáhnout ve sloupci.

#21 Re: Calc » Kopírování a vkládání pomocí makra (VYŘEŠENO) » 27. 8. 2022 17:52:48

pro import dat používám takovouhle dávku, třeba to pomůže:

Sub ImnportDat
	dim doc as object
	dim oList as object
		
 	doc = thisComponent
	oList = doc.Sheets.getByName("List1")
   	
   	file = PickFile()
   	
	dim secDoc as object, secList as object
   	dim argum(0) as new com.sun.star.beans.PropertyValue   	
   	argum(0).Name = "MacroExecutionMode"
	argum(0).Value = 4

	secDoc = starDeskTop.LoadComponentFromURL(file,,0,argum()) 
	secList = secDoc.Sheets(0)
	
	
	'kopie dat
	sloupec_copy = secList.GetCellRangeByPosition(0, 0, 0, 30).getDataArray
	oList.GetCellRangeByPosition(0, 0, 0, 30).setDataArray(sloupec_copy)
	
		
	'secDoc.store()
	secDoc.close(True) 'volitelně uzavření druhého souboru
	
	msgbox ("Překopírováno",0,"LO info")
		
End Sub

Function PickFile() as string
  Dim FilePicker As Object
  Dim FilePath() As String
  FilePicker=createUnoService("com.sun.star.ui.dialogs.FilePicker")
  FilePicker.execute
  FilePath()=FilePicker.GetFiles
  PickFile = FilePath(0)
End Function

pokud má být soubor otevřen jen skrytě stačí doplnit hodnotu hidden = true:

  dim secDoc as object, secList as object
  dim argum(1) as new com.sun.star.beans.PropertyValue
  argum(0).Name = "Hidden"
  argum(0).Value = True
  argum(1).Name = "MacroExecutionMode"
  argum(1).Value = 4

#22 Re: Calc » Vícenásobné splnění podmínky » 22. 7. 2022 08:31:25

Tohle je jednoznačně úloha pro kontingenční tabulku. Data je potřeba mít v jedné tabulce, pak už je to celkem jednoduché. Datumy mohou být libovolně přeházené, kontingenční tabulka to pěkně srovná a řádky se stejnými daty umístí pod sebou. Řešení výkazů nebo výpisů dat pomocí vzorců je obtížné a někdy až nemožné.

#23 Re: Calc » Skládání logických funkcí u filtru » 11. 7. 2022 07:44:44

lp. napsal(a)

Tip jen z hlavy, tohle jsem zatím nezkoušel.

výdaj1 <> 0 NEBO výdaj2 <> 0 AND ID = zadané číslo


Tohle  nefunguje, to už jsem zkoušel. Neddokážu přesně říct systém vyhodnocení, každopádně výsledky jsou nekorektní.


lp. napsal(a)

nebo "roznásobení":

výdaj1 <> 0 AND ID = zadané číslo NEBO výdaj2 <> 0 AND ID = zadané číslo


Tohle vypadá dobře. Ale po vyzkoušení to nefunguje. Vypadá to ještě na jedno omezení fitru KT a sice max tři ktritéria, takže i kdyby toto řešení bylo logický správné, tak KT jej nedokáže aplikovat.


Téma uzavírám, děkuji LP a Neutr.

#24 Re: Calc » Skládání logických funkcí u filtru » 10. 7. 2022 11:19:02

problém je že zadání filtru v KT žádné závorky nemá. To je smysl dotazu. Jak nastavit pořadí priorit (jakoby modelovat závorku), když mohu jen řadit za sebe kritéria a vždy následující je spojeno s předchozím pomocí logické funkce (AND, OR).


Výdaj1 i výdaj2 jsou vždy buď rovné nula nebo kladné, tzn. Výdaj1+výdaj2=0 nastane pouze tehdy pokud jsou obě hodnoty nulové. S tím problém není. Problém je, že pro tuhle operaci musím zřejmě zřídit pomocný sloupec, čemuž jsem se chtěl vyhnout.

#25 Re: Calc » Skládání logických funkcí u filtru » 8. 7. 2022 17:40:18

... tak si to zkouším ručně. Jde to tak, že do filtru zadám výdaj1 <> 0 NEBO výdaj2 <> 0 a ručně pak "vyfitruji" ID pomocí šipečky v hlavičce kontingenční tabulky. Funguje to, ale myslím že makrem toto asi nepůjde ...

Zápatí

Používáme FluxBB