OpenOffice.org Calc pod drobnohľadom (8) - Databázové funkcie

21.12.2007 22:00 | Články | Július Pastierik
V minulom dieli sme si ukázali, ako dokážeme použiť zošit OpenOffice.org Calc ako zdroj údajov pre databázový modul Base. Pretože medzi funkciami Calcu nájdeme aj databázové funkcie, dnes si ich v stručnosti predstavíme, aby sme videli, že nemajú nič spoločné s modulom Base.

Podstatou databázových funkcií je to, že v zošite tabuľkového procesora máme v podstate tri oblasti – prvá je množina (databáza) údajov, v ktorých vyhľadávame, druhá sú vyhľadávacie kritéria a tretia sú výsledky vyhľadávania.

Definícia databázy v zošite

Prvú oblasť – databázu údajov si nemusíme špecificky pripomínať, pretože sa vlastne jedná o údaje, ktoré máme zadané v zošite. V tomto smere iba pripomeňme, že s pojmom „databáza údajov“ sme sa už stretli, keď sme spomínali rôzne spôsoby adresácie a definovali sme „databázovú oblasť“. Pokiaľ chceme v týchto údajoch vyhľadávať pomocou databázových funkcií, musí byť však splnené to, že jeden záznam je uložený v jednom riadku – presne tak isto, ako sme to spomínali v minulom dieli tohto seriálu. Je to tak preto, lebo OpenOffice.org Calc v týchto prípadoch vyhľadáva podľa riadkov.

Ďalej je potrebné, aby sme mali ako v databáze, tak aj vo vyhľadávacích podmienkach zadané názvy stĺpcov presne rovnako, ako to bolo v prípade použitia tabuľky ako zdroja údajov pre modul Base. Pre predstavu, ako to všetko má vyzerať si urobme tabuľku, v ktorej budeme mať uložené údaje o deťoch: meno, dátum narodenia, vek k 1.9. tohto roku, poplatok za školský klub, pohlavie a ročník školy, ktorý navštevuje.


Definícia databázovej oblasti „ziaci“

Vyhľadávacie podmienky

Tieto údaje si pre jednoduchšiu prácu zadefinujeme ako databázovú oblasť „ziaci“. Ďalej si musíme zadefinovať údaje, kde budeme zadávať vyhľadávacie kritéria. Tieto údaje zapíšeme pod našu tabuľku. OpenOffice.org Calc pri hľadaní predpokladá, že zadané vyhľadávacie (výberové) kritéria v rámci jedného riadku sú spojené logickou podmienkou „AND“ a podmienky zadané v rôznych riadkoch logickou podmienkou OR, pričom ak sa tam nachádzajú prázdne bunky (podmienky) sú ignorované.

Pokiaľ chceme nájsť viacero úplne nezávislých údajov, musíme si preto zadefinovať viacero nezávislých podmienok. V tomto smere je niekedy lepšie zadefinovať vlastnú databázu na osobitnom liste a rôzne výberové podmienky na iných listoch.

Po tomto teoretickom úvode si ukážme, ako dokážeme pracovať s vlastnými databázovými funkciami. Hneď na začiatok spomeňme, že je to len výber z týchto funkcií, aby sme si dokázali demonštrovať možnosti modulu OpenOffice.org Calc v tejto oblasti. Povedzme, že nás budú zaujímať nasledovné údaje: celkový počet školákov, vek najstaršieho a najmladšieho žiaka, priemerný vek žiakov, počet dievčat, ktoré nenavštevujú školu a suma poplatkov za školský klub.

Na tieto účely si musíme zadefinovať viacero podmienok, pomocou ktorých dokážeme vyhľadať požadované údaje. V prípade školákov stačí podmienka, aby navštevovaný ročník bol väčší ako nula.


Definícia podmienky návštevy školy

V prípade detí, ktoré nenavštevujú školu musí byť naopak tento údaj nulový a navyše, pretože chceme údaje iba o dievčatách, musíme zadať aj pohlavie.


Definícia podmienky dievčat, ktoré nenavštevujú školu

V prípade poplatkov za školský klub je podmienka taká, že tento poplatok musí byť nenulový.


Definícia podmienky poplatkov za školský klub

Vlastné databázové funkcie

Vlastné databázové funkcie majú v obecnosti nasledovný tvar:

funkcia(Databáza; Pole databázy; Kritériá vyhľadávania)

Jednotlivé parametre majú nasledovný význam: Databáza – definovaná databázová oblasť, v ktorej vyhľadávame údaje. V našom konkrétnom prípade ju budeme zadávať cez definovaný názov „ziaci“.
Pole databázy – názov stĺpca (alebo jeho poradové číslo), v ktorom chceme príslušné údaje vyhľadať.
Kritériá vyhľadávania – adresy buniek, v ktorých máme zadané podmienky, podľa ktorých chceme vyhľadať údaje z databázy. Vo vyhľadávacích kritériách musíme mať zadané rovnaké názvy stĺpcov, ako sú definované v databáze, aby program dokázal podľa nich jednoznačne údaje vyhľadať. Pozor, toto poradie nemusí byť totožné a stačí, ak máme zadané iba tie stĺpce, kde zadávame vyhľadávacie podmienky. Pri zadávaní podmienok sa môžu použiť aj regulárne výrazy.

Na základe uvedeného použijeme teraz nasledovné funkcie, pomocou ktorých získame nami požadované údaje:

Podmienka pre získanie údajov o školákoch je zadaná v bunkách A8 až A9:

Celkový počet školákov =DCOUNT(ziaci;"Ročník"; A8:A9) – táto funkcia spočíta počet riadkov, ktoré vyhovujú zadaným podmienkam a v ktorých sa nachádzajú číselné údaje.
Vek najstaršieho žiaka =DMAX(ziaci;"Vek"; A8:A9) – táto funkcia nájde maximálnu hodnotu v riadkoch, ktoré vyhovujú zadaným podmienkam.
Vek najmladšieho žiaka =DMIN(ziaci;"Vek"; A8:A9) – táto funkcia nájde minimálnu hodnotu v riadkoch, ktoré vyhovujú zadaným podmienkam.
Priemerný vek žiakov =DAVERAGE(ziaci;"Vek"; A8:A9) – táto funkcia vypočíta priemernú hodnotu z údajov v riadkoch, ktoré vyhovujú zadaným podmienkam.


Príklad použitia funkcie DMIN v prvej výberovej podmienke

Podmienka pre získanie údajov o dievčatách, ktoré nenavštevujú školu je zadaná v bunkách E8 až F9:

Počet dievčat, ktoré nenavštevujú školu =DCOUNTA(ziaci;"Pohlavie"; E8:F9) – táto funkcia spočíta počet riadkov, ktoré vyhovujú zadaným podmienkam a v ktorých sa nachádzajú alfanumerické alebo číselné údaje.


Príklad použitia funkcie DCOUNTA v druhej výberovej podmienke

Podmienka pre získanie výšky poplatkov za školský klub je zadaná v bunkách E13 až E14:

Suma poplatkov za školský klub =DSUM(ziaci;"klub"; E13:E14) – táto funkcia urobí súčet hodnôt v bunkách riadkov, ktoré vyhovujú zadaným podmienkam.


Príklad použitia funkcie DSUM v tretej výberovej podmienke

Na týchto pár príkladoch sme si, myslíme, pomerne dobre ukázali používanie databázových funkcií a preto vám určite nebude robiť problém vyskúšať tie ostatné, ktoré sme nespomínali (DPRODUCT, DSTDEV atď.).

Nabudúce: Base ako zdroj údajov pre Calc.

Poznámka na koniec: Dávame vám do pozornosti, že vyšiel OpenOffice.org 2.3.1.
Stránky OpenOffice.org: www.openoffice.sk

    • Ooh-nice new feature-I like it! 20.06.2009 | 20:56
      Dajuan   Návštevník
      buy levitra -levitra buy propecia -propecia buy zithromax -zithromax buy xenical -xenical buy ultram -ultram buy fioricet -fioricet buy valium -valium buy acomplia -acomplia buy prozac -prozac buy ativan -ativan
    • Thanks for the tip! 24.06.2009 | 19:16
      Fateh   Návštevník
      ambien info - ambien buy diazepam - diazepam best price wellbutrin - wellbutrin buy alprazolam - alprazolam online prozac - prozac order tamiflu - tamiflu buy lorazepam - lorazepam online nexium - nexium order zoloft - zoloft order online klonopin - klonopin
    • when I was 19 years old. 15.07.2009 | 07:38
      Dameka   Návštevník
      • Príspevok bol vymazaný.
    • NiOSvynvkKxvuAbFlb 16.09.2009 | 15:17
      yFOZmVUVNkxgQ   Návštevník
      zoloft [url="http://www.prachienarain.com/zoloft-online.html"]zoloft[/url] http://www.prachienarain.com/zoloft-online.html :-[ zithromax [url="http://www.bcdhotties.com/zithromax-pills.html"]zithromax[/url] http://www.bcdhotties.com/zithromax-pills.html >:((( meridia [url="http://www.holyislamvillesc.org/meridia-pills.html"]meridia[/url] http://www.holyislamvillesc.org/meridia-pills.html =]]] xanax [url="http://www.holyislamvillesc.org/xanax-pills.html"]xanax[/url] http://www.holyislamvillesc.org/xanax-pills.html 67092 prednisone [url="http://www.prachienarain.com/prednisone-online.html"]prednisone[/url] http://www.prachienarain.com/prednisone-online.html 2681
    • JPbxSFmSbomTn 02.10.2009 | 18:26
      BtnjOjPLxRhQ   Návštevník
      sildenafil price 25 mg [url="http://www.barkerforsenate.com/sildenafil-price-25-mg.html"]sildenafil price 25 mg[/url] http://www.barkerforsenate.com/sildenafil-price-25-mg.html 761286 scam hoodia diet pills [url="http://www.joshstricklandonline.com/scam-hoodia-diet-pills.html"]scam hoodia diet pills[/url] http://www.joshstricklandonline.com/scam-hoodia-diet-pills.html %-O altace rampiril tingling [url="http://www.joshstricklandonline.com/altace-rampiril-tingling.html"]altace rampiril tingling[/url] http://www.joshstricklandonline.com/altace-rampiril-tingling.html 694854 ambien buy line [url="http://www.barkerforsenate.com/ambien-buy-line.html"]ambien buy line[/url] http://www.barkerforsenate.com/ambien-buy-line.html 03608 celexa nursing [url="http://www.joshstricklandonline.com/celexa-nursing.html"]celexa nursing[/url] http://www.joshstricklandonline.com/celexa-nursing.html imem
    • zPlukLdAql 30.11.2009 | 15:44
      edWKPiyGHFCa   Návštevník
      aldara cream basal cell carcinoma [url="http://www.joshstricklandonline.com/aldara-cream-basal-cell-carcinoma.html"]aldara cream basal cell carcinoma[/url] http://www.joshstricklandonline.com/aldara-cream-basal-cell-carcinoma.html ufu missing periods on zoloft [url="http://www.joshstricklandonline.com/missing-periods-on-zoloft.html"]missing periods on zoloft[/url] http://www.joshstricklandonline.com/missing-periods-on-zoloft.html vbd buy diazepam international shipping [url="http://www.joshstricklandonline.com/buy-diazepam-international-shipping.html"]buy diazepam international shipping[/url] http://www.joshstricklandonline.com/buy-diazepam-international-shipping.html 119 does prozac really work [url="http://www.barkerforsenate.com/does-prozac-really-work.html"]does prozac really work[/url] http://www.barkerforsenate.com/does-prozac-really-work.html 5458 cialis lawsuit [url="http://www.barkerforsenate.com/cialis-lawsuit.html"]cialis lawsuit[/url] http://www.barkerforsenate.com/cialis-lawsuit.html 253