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

#1 Base » Funkce Group pro pole typu Datum » 16. 4. 2019 14:54:54

hdplot
Odpovědí: 1

Mám tabulku, která obsajuje jedno pole "Datum" a jedno pole "Cislo" Potřebuji napsat dotaz, který určí součet polí "Cislo" podle toho, jak seskupí pole "Datum", tedy něco takového:

SELECT "Datum", SUM( "Cislo_1" ), COUNT( "Datum" ) FROM "Table1" GROUP BY "Datum"

Toto fubguje ale pouze v případě dvou stejných datumů. Jak ale postupovat, pokud chci seskupit např. podle celého měsíce, tedy vyřadit z porovnávání dny (nebo pro případ celého roku, tedy vyřadit v potovnávání dny i měsíce)

Díky za radu

#3 Calc » Prázdná buňka ve vzorci - VYŘEŠENO » 14. 10. 2017 07:13:52

hdplot
Odpovědí: 2

Mám vzorec =IF((ABS(C33))<60;C44;0), který potřebuji upravit tak, aby místo 0 dosazoval prázdnou buňku. Zkoušel jsem výraz NULL, ale bylo to špatně. Jaký správný výraz použít ??

Děkuji za radu

#4 Re: Calc » Rozbalovací seznam hodnot v buňce - VYŘEŠENO » 1. 6. 2017 12:45:24

Zkusil jsem a chápu význam slova "seřadit". Nechápu ale proč u "U" profilů mu to vadí a chová se jinak než u "I" nebo "UPE" profilů které taky vlastně seřazené nebyly. (Ale to už je jen tak pro zajímavost, nevadí když zůstane příčina neznámá. Důležité je že to začalo fungovat)

#5 Re: Calc » Rozbalovací seznam hodnot v buňce - VYŘEŠENO » 1. 6. 2017 11:59:47

Oddíl U seřazený vzestupně je "U" mezera a pak čísla vzestupně. Stejně je to i pro I - "I" mezera a čísla vzestupně. Přesto I funguje vždy a U jenom někdy.


Nicméně doplnění čtvrtého parametru pomohlo, takže to vidím jako vyřešené - Díky

#6 Re: Calc » Rozbalovací seznam hodnot v buňce - VYŘEŠENO » 1. 6. 2017 11:48:53

Tak mě to tedy nefunguje ani po smazání mezery. Zkusil jsem místo mezery doplnit podtržítko a taky bez úspěchu. Když jsem změnil text na z "U" na "UPE" (což je taky jeden z typů profilů, ale s jinými rozměry), tak to začalo fungovat i s tou mezerou

#7 Re: Calc » Rozbalovací seznam hodnot v buňce - VYŘEŠENO » 1. 6. 2017 06:24:30

Vracím se k úplně prvotnímu dotazu tohoto vlákna. Po vyřešení jsem si vytvořil tabulku s hodnotami I profilů (jak bylo naznačeno v dotazu), která fungovala bez problémů. Nyní jsem tuto tabulku doplnil o U profily (stejný postup, stejné vzorce, jenom rozsah buněk je jiný) a tabulka nefunguje. Správně zobrazuje hodnoty pro U 30 až U 80 a pak pro U 160. Pro ostatní hodnoty doplňuje znak #N/A. Nejlépe to asi bude patrné z přiložené ukázky - https://ulozto.cz/!jYZN7Ql9g1IU/i-profily-ods


Vůbec netuším, kde by mohla být chyba. Testováno na OO 4.1.1, OO 4.1.3 a LO 5.0.0. Poradíte ?

#9 Calc » Tlačítko v xlsm souboru v AOO nefunguje - VYŘEŠENO » 5. 4. 2017 13:14:05

hdplot
Odpovědí: 2

Zdravím a prosím o radu. Mám soubor vytvořený v Excelu (xlsm), který obsahuje dialogy a makra. Otevření v AOO proběhne bez problémů (bez jakékoliv výhružné hlášky) a po otevření vypadá soubor vizuálně stejně jako v Excelu. Bohužel ale je v listu umístěno jedno tlačítko (velké přes asi 6 buněk listu), které má vyvolat dialog pro zadání hodnot. (Ty se pak makrem zpracovávají a přepisují do příslušných buněk sešitu.) V Excelu vše funguje, ale v OO nelze na tlačítko vůbec kliknout - po kliknutí se vždy zvýrazní některá z buněk pod tlačítkem. Tedy nemůžu vůbec spustit dialogové okno a následně pak testovat eventuální funkčnost nebo nefunkčnost maker, protože se zaseknu hned na počátku.


Je chyba někde v nastavení zobrazení, nebo je to obecně problém otevření souboru Excelu v OO. Díky za radu.

#10 Re: Base » Univerzální použití makra v různých formulářích - VYŘEŠENÝ » 13. 2. 2017 08:54:50

Ano - toto je v zásadě to, co jsem chtěl. Jenom jsem vyhodil tem MsgBox a rozhodování ponechávám na makru podle jiné podmínky. Díky za radu

#11 Re: Base » Univerzální použití makra v různých formulářích - VYŘEŠENÝ » 10. 2. 2017 12:09:57

No jde o to, že formů je několik a zobrazují různá data z různých tabulek. Jednou se tedy jedná např. Form A který kouká do tabulky A (výkresy) a zobrazuje odkaz na soubor výkresu. Podruhé se jedná o Form B, který kouká do tabulky B (účetnictví) a zobrazuje odkaz na soubor faktury. Potřetí pak třeba o Form C, který kouká do tabulky C (zákazníci) a zobrazuje odkaz na web zákazníka. Podle výběru konkrétního řádku z tabulky v daném konkrétním formu se mi nabídne konkrétní výkres (nebo faktura atd.) k otevření. Tento odkaz zpracuje makro a tlačítkem se odkaz otevře. Ale form pro výkresy kromě odkazu zobrazuje i jiné údaje vztahující se k výkresu. Totéž form pro zákazníky a podobně. Nelze je tedy nijak slučovat do jednoho formu.


Tedy z pohledu spouštěných odkazů se jedná o zcela nezávislé tabulky i formuláře. Jde jen o to, že PRINCIP SPOUŠTĚNÍ odkazu je vždy stejný - tedy použité makro je prakticky stejné, jenom názvy prvků formuláře se mění, protože se jedná o různé nezávislé formuláře. Na každém z formů je vždy jen ten jeden typ odkazu a jenom to jedno tlačítko, které to otevírá. Jestli jsem tedy dobře pochopil vaši odpověď, tak by to tak nešlo, protože v rozbalovacím menu nelze nabízet jednou výkres a jednou fakturu - jedná se o dvě rozdílné věci a dva rozdílné formuláře.


ANO - to P.S. by asi bylo řešení. Mít na každém formuláři nějaký rozlišovač, o jaký form se jedná (třeba skrytý Label). Ten načíst a pak v makru podle tohoto přiřadit správné jména prvků, které by byly v makru připravené jako konstanty

#12 Base » Univerzální použití makra v různých formulářích - VYŘEŠENÝ » 10. 2. 2017 09:36:00

hdplot
Odpovědí: 4

Mám soubor Base, který obsahuje několik formulářů. V jednom z formulářů používám makro na otevření odkazu, který je uložen v tabulce databáze.


Sub PathRun
  dim oForm1, oForm2 as object
  dim sPathRun as string
  oForm1=ThisComponent.Drawpage.Forms.getByName("FiltrForm")
  oForm2=oForm1.getByName("SubForm")
  sPathRun=oForm2.getByName("Path").text 'Načte hodnotu odkazu z pole databáze'
  oForm2.getByName("Button_odkaz").targeturl = sPathRun 'uloží tuto hodnotu do tlačítka - odkaz pro otevření URL'
End Sub


Odkaz potom otevírám klepnutím na tlačítko pomocí akce Open dokument/web page


Nyní bych toto (podobné) makro chtěl použít v dalších asi 5 různých formulářích. Funkce bude stejná, ale prvky na ostatních formulářích se jmenují pokaždé jinak (jedná se o jména "FiltrForm", "SubForm", "Path", "Button_odkaz"). Přejmenovávat jednotlivé formuláře a prvky se mi nechce - má to vazbu i na jiná makra a celé by se mi to rozházelo a sesypalo. Existuje nějaké jiná možnost, jak výše uvedené makro udělat univerzální, nebo musím napsat pět identických maker, které se budou lišit jenom jmény odkazovaných prvků?

#13 Re: Calc » Samovolná změna vzorce - VYŘEŠENO » 9. 2. 2017 15:04:39

Problém považuji za vyřešený, ale protože řešení je několik, tak to shrnu.


1) Řešení dle neutr. - Po úpravě maker již vše funguje správně a hodnoty měsíců se aktualizují tak, jak mají. Nevýhodu vidím v tom, že pro každý měsích se musí nastavit trochu jiný vzorec pro sumarizaci (jiná podmínka), takže toto je nutné si připravit v makrech buďto předem s rezervou - výhled do budoucnosti, nebo makra průběžně každý měsíc aktualizovat


2) Řešení dle hdplot. - Nedalo mi to a vyzkoušel jsem variantu, kterou jsem zde v diskusi zmiňoval - tedy nevytvářím žádné pomocné sloupce Rok=Year(buňkaSdatumem) a Měsíc=Month(buňkaSdatumem), ale podmínku směřuji přímo do sloupce s Datumem z databáze, tedy =SUMIF(RozsahBuněkSdatumem;".12.2016";RozsahBuněkShodnotami). Takto lze použít původní neupravovaná makra a RozsahyBuněk se aktualizují v obou sloupcích (podmínka i sčítané hodnoty), protože se jedná o původní buňky vyplňované původním makrem. Nevýhoda je stejně jako u neutr, tedy je nutné si připravit vzorce pro jednotlivé měsíce v buňkách dopředu - výhled do budoucnosti, nebo buňky průběžně každý měsíc doplňovat o další řádek


3) Řešení dle lp. - Sám bych to nedal dohromady, ale podle návodu to šlo dobře a funfuje to také správně. Toto bych řekl, že je v daném případě nejlepší řešení, protože s postupným přidáváním dalších měsíců a roků do databáze se kontingenční tabulka sama automaticky rozšiřuje, takže jednou napsané řešení je bez úprav funkční neustále.


Vyzkoušeno a pro danou databázi dávají všechna 3 řešení rovnocenné výsledky, takže použít může každý co je mu bližší, nebo v návaznosti na ještě nějaké další požadované výstupy a pohledy na zdrojová data. Nicméně i nepoužité řešení bude zdrojem informací pro příště - díky za pomoc

#14 Re: Calc » Samovolná změna vzorce - VYŘEŠENO » 8. 2. 2017 08:42:56

Pro neutr


V zaslané ukázce (znovu přikládám odkaz) - Ukázkové soubory - je soubor CALCu a soubor BASE na kterých to testuji. Předpokládal jsem, že když si jej stáhnete a soubor BASE zaregistrujete, tak můžete provést testy, o kterých jsem psal a ze kterých bude zřejmý problém. Nelze to jenom prohlédnout, musí se stím experimentovat. Stačí jenom do BASE doplnit nebo odmazat nějaký záznam (nebo více záznamů) a následně načíst a aktualizovat CALC a po několika takovýchto pokusech by mělo být zřejmé, v čem je problém. Myslím, že je to určitě tím, že CALC při práci makra přidává nebo maže řádky, ale nějak "podivně" - v některých sloupcích se to projeví a v některých ne.


Pokud se týká toho barevného označení řádku, je to dobrý nápad, který by mohl zvýraznit problém. Zkusím to. Bohužel jsem teď dva dny byl bez PC, takže jsem zatím nikam nepokročil.

#15 Re: Calc » Samovolná změna vzorce - VYŘEŠENO » 6. 2. 2017 12:51:35

To je právě ta chyba - původně tam byly oba úseky shodné, ale po aktualizaci dat (v případě že v databázi došlo k navýšení počtu záznamů) se meze úseků "samy od sebe" změní a proto to přestane fungovat. Zkuste si to na přiložené ukázce - Ukázkové soubory - bude to asi jasnější. Musíte samostatně otevřít databázi, přidat na konec aspoň jeden záznam, databázi zavřít, otevřít Calc a aktualizovat tlačítkem a měla by vám vyskočit chyba - buňka se sumarizací (červená na záložce MojeData) Když tento chybný vzorec opravíte, bude vše OK. Po zavření Calcu, doplnění databáze a opětovném otevření calcu se chyba opět objeví.


Zkuste si ještě i variantu, že se záznamy v databázi nepřidávají, ale naopak mažou (i když v mém konkrétním případě to tak nikdy nebude) Pak se vzorce pro určení měsíce z datumu změní na =MONTH(A#REF!), vzorce před a za koncem tabulky zůstanou správně (např. =MONTH(A24) a =MONTH(A25) ) a mezi ně se jakoby vloží ten chybný.


Napadá mě jenom to, že makro při aktualizaci maže a vsouvá buňky a Calc na to automaticky reaguje a aktualizuje vzorce, které se těchto buněk týkají. Jako řešení bych viděl to, že podmínku nebudu kontrolovat na buňky mimo rozsah, který makro ovlivňuje, ale pouze na buňky z tohoto rozsahu. Tedy místo vytvoření pomocného sloupce s měsícem (a kontroly na tento sloupec) je nutné provést kontrolu přímo na sloupec s datumem - něco takového jako že buňka obsahuje část textu - tedy např. leden 2017 což jsou datumy "1.1.2017" až "31.1.2017" kontrolovat na to, že obsahují text ".1.2017" tedy kontrolní součet by byl takovýto:  =SUMIFS(B2:B10000;A2:A10000;".1.2017"), přičemž ve sloupci B jsou sečítané hodnoty a ve sloupci a jsou datumy.


Na zkušební databázi to funguje. Zkusím ještě ostrá data a větším množství podmínek a dám vědět

#16 Calc » Samovolná změna vzorce - VYŘEŠENO » 6. 2. 2017 09:07:03

hdplot
Odpovědí: 10

Tento dotaz navazuje na témata viz. Zobrazení dat z BASE v CALCu a následně  Seskupení hodnot podle datumu .


Všechno funguje jak má v případě, že při spuštění souboru došlo v databázi pouze k úpravě stávajících záznamů. V tom případě se data v tabulce CALC aktualizují a vše se řádně zobrazí. Pokud ale v původní databázi dojde ke změně počtu záznamů (vždy se jedná o přidání, takže počet záznamů se zvýší), tak se záznamy aktualizují správně, tabulka v CALCu se rozšíří, ale následný dotaz pro třídění záznamů podle měsíce se "sám od sebe" změní podle počtu záznamů následujícícm způsobem:


Např. původní tabulka záznamy v buňkách A2 až C30, sčítat budeme sloupec B, podmínka je v sloupci E, dotaz zní =SUMIF(E2:E1000;1;B1:B1000). Po přidání tří záznamů a opětovné aktualizaci se tabulka se záznamy upraví (doplní data), takže záznamy jsou v buňkách  A2 až C33 a dotaz se samovolně upraví na =SUMIF(E2:E1003;1;B1:B1000) - tedy rozsah pro test podmínky se o 3 zvýší, rozsah pro součtová data se nemění. V tom okamžiku se výsledek neprovede a je doplněn error.


Dotaz tedy zní, proč dojde ke změně vzorce pro podmínečný součet, a pokud ke změmě dojde, tak proč ne na obou položkách - tedy mělo by se měnit E1000 na E1003 a současně také z B1000 na B1003

#17 Re: Calc » Seskupení hodnot podle datumu - VYŘEŠENÝ » 2. 2. 2017 07:43:56

Samozřejmě že rok je málo, jednalo se mi ale v principu o to, jak vyřešit problém s Calcem a ne "matematický problém trendu". Ve finále jsou data za několik roků a už není věcí tohoto vlákna, jestli sleduji průběh postupně za jednotlivé roky, nebo porovnávám jednotlivé roky (nebo měsíce) mezi sebou a podobně. Prostě mi šlo o to, jak vyfiltrovat potřebná data - proto považuji problém za VYŘEŠENÝ - vlastní reprezentace v grafech už je věc další.

Kromě toho se jedná o možná trochu "laický" pohled pro orientaci, takže bych do toho určitě netahal 13 měsíců a podobné exaktní metody - stačí mi výsledek "v lednu se prodalo X a v únoru Y množství" Je jasné, že když je únor kratší,tak se zřejmě prodá o něco méně.

#18 Re: Calc » Seskupení hodnot podle datumu - VYŘEŠENÝ » 1. 2. 2017 12:50:05

Na cvičném souboru to funguje, zbývá to překlopit do ostrých dat - děkuji za pomoc

#19 Re: Calc » Seskupení hodnot podle datumu - VYŘEŠENÝ » 1. 2. 2017 08:17:07

Ok funguje to jak má, takže bych to považoval za vyřešené. Ale když už jste nakousl možnost

neutr napsal(a)

vylepšit legendu tak aby obsahovala částku v Kč.

, tak Vás poprosím (ze studijních důvodů) ještě o tuto funkci wink

#20 Re: Calc » Seskupení hodnot podle datumu - VYŘEŠENÝ » 31. 1. 2017 15:15:06

No toto by mohlo být jako třešnička na dortu také (Datum je ve sloupci A, částka ve sloupci B)


SUMIF jsem vyzkoušel a v principu to funguje jak jsem chtěl. Ale spíš ještě je problém, že hodnoty nelze rozlišovat jenom podle měsíce, ale i podle roku (graf tedy nebude mít 12 sloupců, ale 24 nebo podobně, případně budou 2 nebo 3 grafy podle roků) V každém případě rozhodující pro součet není jenom měsíc,ale i rok. Ale =Month(buňkaSdatumem) dává číslo a =Year(buňkaSdatumem) dává taky číslo - nelze je tedy sečíst, (2 + 2016 je totéž jako 1+2017) ale měly by se spojit jako řetězec, aby to bylo jednoznačné (1 2017).


(Druhá varianta by byla některé z čísel vynásobit nebo vydělit (třeba 10000) a už to bude vycházet jednoznačně dobře, ale pokud by v kontrolní buňce byl řetězec "1 2017" bude to přehlednější i na první pohled)

#21 Calc » Seskupení hodnot podle datumu - VYŘEŠENÝ » 31. 1. 2017 12:30:41

hdplot
Odpovědí: 9

Tento dotaz souvisí (navazuje) na problém viz. Zobrazení dat z BASE v CALCu . Načtená data z databáze se správně zobrazují v grafech, ale protože je jich hrozně moc (blížím se k 1000) a jsou docela nahodilá, tak z nich nelze v takto zobrazeném grafu vysledovat žádnou informační hodnotu - nějaký trend vývoje. Jedná se o tabulku typu "Datum" "Množství" (prodaných kusů). Grafy by bylo dobré zobrazovat nikoliv ze surových dat (hodnoty den po dni, kdy rozptyl může být od nyly do dvaceti - tedy tisíc různě vysokých sloupečků. které se náhodně opakují), ale z dat, která budou sumarizována např. podle měsíců - tedy výsledný graf by měl dvanáct sloupců, které by už vypovídací hodnotu měly.

Dotaz tedy zní, jak udělat ze zdrojové tabulky "Datum" "Množství" novou tabulku typu "Měsíc" "Celkové množství za měsíc", když počet záznamů pro jednotlivé měsíce není předem známý. Jde to nějak pomocí standardních možností Calcu, nebo se to opět musí řešit makrem.

#22 Re: Calc » Zobrazení dat z BASE v CALCu - VYŘEŠENÝ » 31. 1. 2017 12:12:30

OK - funkčnost je vyřešená, teď už je to jenom o správné reprezentaci načtených dat. Díky za radu

#23 Re: Calc » Zobrazení dat z BASE v CALCu - VYŘEŠENÝ » 30. 1. 2017 13:16:59

No tohle nepotřebuji k ničemu, jen mě zarazilo, že původní místo, které bylo aktualizované už aktualizované není, tak spíš to byl jen dotaz, jestli je to tak správně. Tedy ano, je to správně a databáze se promítá vždy jen na jedno místo. A teď ještě to spuštění při startu (a případné skrytí)

#24 Re: Calc » Zobrazení dat z BASE v CALCu - VYŘEŠENÝ » 30. 1. 2017 12:14:40

OK - funguje to. Jen pro úplnost dodávám, že se začaly aktualizovat buňky na listu MojeData a přestaly se aktualizovat buňky na listu DBQ. Takže databáze se do sešitu přepisuje vždy jen na jedno místo? Nelze mít tutéž tabulku vícekrát ?

#25 Re: Calc » Zobrazení dat z BASE v CALCu - VYŘEŠENÝ » 30. 1. 2017 10:42:06

Tak jsem to otestoval a rozchodil v tom smyslu, že vím, co kde změnit, abych načetl (a případně vyfiltroval) svoji databázi. Ale zatím jsem to nepochopil, tedy zatím nejsem schopen zrealizovat to, co navrhujete:

neutr napsal(a)

     Princip je v tom, že doporučuji upravit tak aby nebyl list s volbami vidět a na první stranu vložit úsek do kerého se data pumpují (DBQ).

Ale to je asi spíš tím, že s Calcem jsem moc nepracoval, takže budu studovat dál, případně mě zkuste ještě nakopnout, kde najdu a přepíšu údaj o směrování výpisu DBQ a případně jak zrealizovat další doporučované úpravy

Zápatí

Používáme FluxBB