NL/Documentation/How Tos/Calc: Database-functies

From Apache OpenOffice Wiki
< NL‎ | Documentation‎ | How Tos
Revision as of 13:16, 30 November 2009 by Ccornell (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Lijst van 'Database'-functies in Calc

DBAANTAL DBAANTAL telt de numerieke items in een kolom van een databasetabel, die in de rijen staan die aan de criteria voldoen.
DBAANTALC DBAANTALC telt de niet-lege cellen in een kolom van een databasetabel, die in de rijen staan die aan de criteria voldoen.
DBLEZEN DBLEZEN geeft de inhoud van een cel in een kolom van een databasetabel terug, uit de unieke rij die voldoet aan de criteria.
DBMAX DBMAX geeft de grootste waarde in een kolom van een databasetabel, uit de rijen die voldoen aan de criteria.
DBMIN DBMIN geeft de kleinste waarde in een kolom van een databasetabel, uit de rijen die voldoen aan de criteria.
DBGEMIDDELDE DBGEMIDDELDE geeft het gemiddelde van de items in een kolom van een databasetabel, uit de rijen die voldoen aan de criteria.
DBPRODUCT DBPRODUCT geeft het product van de items in een kolom van een databasetabel, uit de rijen die voldoen aan de criteria.
DBSTDEV DBSTDEV berekent de standaard afwijking van de items in een kolom van een databasetabel, uit rijen die voldoen aan de criteria. De records worden behandeld als een steekproef, niet als de gehele populatie.
DBSTDEVP DBSTDEVP berekent de standaard afwijking van de items in een kolom van een databasetabel, uit rijen die voldoen aan de criteria. De records worden behandeld als de gehele populatie, niet als een steekproef van de populatie.
DBSOM DBSOM geeft het totaal van de items in een kolom van een databasetabel, uit rijen die voldoen aan de criteria.
DBVAR DBVAR geeft de variantie terug van de items in een kolom van een databasetabel, uit rijen die voldoen aan de criteria. De records worden behandeld als een steekproef, niet als de gehele populatie.
DBVARP DBVARP berekent de variantie van de items in een kolom van een databasetabel, uit de rijen die voldoen aan de criteria. De records worden behandeld als de gehele populatie, niet als een steekproef van de populatie.


Overzicht

In het OpenOffice.org werkblad 'Calc' is een 'database' eenvoudigweg een tabel met waarden en heeft niets van doen met de meer complexe OpenOffice.org database 'Base'. De 'database'-functies in Calc (hier opgesomd) zijn zeer eeenvoudig te gebruiken, en maken het u mogelijk om gegevens in een tabel te kiezen en te verwerken.


Een 'database'-tabel in Calc zou er zo uit kunnen zien:


'Database'-tabel in Calc


De eerste rij van de 'database'-tabel heeft koppen (Naam, Klas, Leeftijd ... ), en elke volgende rij bevat de gegevenswaarden.


De 'criteria', welke worden gebruikt om rijen te selecteren in de 'database', worden ingevoerd in een andere tabel:


'Criteria'-tabel voor database-functies in Calc


De eerste rij van deze tabel heeft koppen. Volgende rijen specificeren de criteria: het gebruiken van de tabel hierboven zal bijvoorbeeld overeenkomen met die kinderen waarvan de afstand naar school meer is dan 600.


De Calc 'database'-functies hebben allemaal een soortgelijke vorm. Als een eenvoudig eerste voorbeeld, met behulp van de tabellen hierboven:


DBAANTAL(A1:E10; 0; A13:E14)

geeft 5 terug, het aantal kinderen waarvan “Afstand naar school” meer is dan 600.
A1:E10 is de databasetabel en A13:E14 is de tabel met criteria.


Er zijn andere 'database'-functies om een som, een gemiddelde, een standaard afwijking, enzovoort terug te geven.


Criteria

De tabel met criteria mag overal in het werkblad worden geplaatst, maar het is vaak verstandig om hem in de buurt van de databasetabel te hebben.


De tabelkoppen met criteria moeten exact overeenkomen met de koppen in de databasetabel, maar zij mogen in een andere volgorde staan en zij mogen meerdere keren voorkomen:


'Criteria'-tabel voor database-functies in Calc


Aan alle criteria in een rij moet worden voldaan voordat de rij wordt verwerkt, dus in dit voorbeeld hierboven zien we rijen waarin:

“Afstand naar school” meer dan 600    EN
“Leeftijd” groter dan 8    EN
“Leeftijd” kleiner dan of gelijk aan 10


met andere woorden '9 en 10-jarigen die meer dan 600 naar school moeten reizen'.


Als de tabel met criteria meer dan één rij met criteria heeft, betekent dat dat elke rij die voldoet aan de criteria ook de algehele tabel met criteria voldoet:


'Criteria'-tabel voor database-functies in Calc


In dit voorbeeld is de test:

(“Afstand naar school” meer dan 600    EN
“Leeftijd” groter dan 8    EN
“Leeftijd” kleiner dan of gelijk aan 10)
OF
(“Leeftijd” kleiner dan of gelijk aan 8)


Met andere woorden: we vinden rijen waarin 'de kinderen 9 of 10 jaar zijn die 600 of meer moeten reizen naar school', of '8 jaar of jonger zijn'.


De voorwaarde die wordt ingevoerd in een cel van een tabel met criteria (bijv. >4 ) is eenvoudigweg tekst en heeft de volgende vorm:

vergelijkingsteken waarde where
vergelijkingsteken is één van >, <, >=, <=, =, <> (als vergelijkingsteken wordt weggelaten, wordt = aangenomen );
waarde is de waarde (getal of tekst) die moet worden vergeleken.

Bijvoorbeeld:

de voorwaarde “>4” test of de inhoud van cellen groter is dan 4.
de voorwaarde “<lamp” test of de inhoud van cellen alfabetisch vóór lamp komt (dus lading en anti voldoen aan de voorwaarde, maar later en zebra doen dat niet).
de voorwaarde “lamp” test of de inhoud van cellen lamp is - maar Calc heeft een aantal instellingen die het exacte gedrag definiëren - lees daarvoor de volgende sectie:

Instellingen voor tekstcriteria

Bij het overeenkomen van een eenvoudige tekstvoorwaarde, (zoals “<lamp”) kan het belangrijk zijn om de instellingen van het dialoogvenster menu Extra→Opties→OpenOffice.org Calc→Berekenen te controleren:


dialoogvenster menu Calc  Extra→Opties→OpenOffice.org Calc→Berekenen


Hoofdletters/kleine letters

dit keuzevakje heeft geen effect op database-functies in Calc. Hoofdletters worden genegeerd - zodat “lamp” altijd overeen zal komen met lamp, Lamp en LAMP, etc.

Zoekcriteria = en <> moeten op hele cellen toepasbaar zijn

als dit keuzevakje is aangevinkt, zal “lamp” alleen overeenkomen met een cel die slechts lamp bevat. Als dit keuzevak niet is aangevinkt, zal “lamp” overeenkomen met lamp, klamp, lampion, etc. - met andere woorden: het zal overeenkomen als lamp ergens in de tekst van de cel wordt gevonden.

Reguliere expressies in formules mogelijk

als dit keuzevak is aangevinkt, dan wordt de voorwaarde behandeld als een reguliere expressie. Bijvoorbeeld de voorwaarde “l?amp” zou overeenkomen met lamp en amp (in reguliere uitdrukkingen betekent “l?” dat de “l” optioneel is).Reguliere uitdrukkingen komen overeen met jokertekens, maar krachtiger; zijn worden beschreven in de HowTo: Reguliere uitdrukkingen in Calc. (Merk op dat de instelling ' Zoekcriteria = en <> moeten op hele cellen toepasbaar zijn ' hierboven ook werkt als reguliere uitdrukkingen zijn geselecteerd.)


De resultaten van de functies kunnen afhankelijk zijn van deze instellingen - maar ongelukkigerwijze zijn zij ietwat verborgen zodat de gebruiker zich er niet bewust van behoeft te zijn dat de instellingen niet goed zijn.


Er zijn twee manieren om dat tegen te gaan:


Als eerste kunt u het werkblad zo ontwerpen dat het werkt zonder rekening te houden met de instellingen

meest eenvoudig, doe nooit een tekstvergelijking - of als u dat wel doet, zoek altijd naar een overeenkomst voor de gehele cel, en zorg er voor dat geen van de cellen die u controleert een gedeeltelijke overeenkomst is bam enige andere cel (bijv. als u zoekt naar 'appel' als de enige inhoud van een cel, zorg er dan voor dat geen enkele andere cel 'appelmoes') kan bevatten, EN
gebruik geen reguliere uitdrukkingen EN
gebruik geen speciale tekens voor reguliere uitdrukkingen zoals ., *, + [, { in criteria


Als tweede kunt u in uw werkblad een waarschuwing opnemen als de instellingen verkeerd zijn.

voer in cel A3 de tekst:
Controle: in.


Merk nu op dat
AANTAL.ALS(A3;".*") 1 teruggeeft als reguliere uitdrukkingen zijn ingeschakeld.
AANTAL.ALS(A3;"<>e") geeft 1 terug als de overeenkomst voor de gehele cel is ingeschakeld.


en construeer een toepasselijke formule in cel A4 - bijvoorbeeld:


Calc: controleren instelling voor reguliere uitdrukkingen


controleren op zowel reguliere uitdrukkingen als overeenkomsten in gehele cel:
=ALS( EN(AANTAL.ALS(A3;".*"); AANTAL.ALS(A3;"<>e")); "OK"; "Fout: " & ALS(AANTAL.ALS(A3;".*")=0; "Schakel reguliere uitdrukkingen in. "; "") & ALS(AANTAL.ALS(A3;"<>e")=0; "Schakel overeenkomsten in gehele cel in."; "") )
controleren op reguliere uitdrukkingen, maar geen overeenkomst in gehele cel:
=ALS( EN(AANTAL.ALS(A3;".*"); AANTAL.ALS(A3;"<>e")=0); "OK"; "Fout: " & ALS(AANTAL.ALS(A3;".*")=0; "Schakel reguliere uitdrukkingen in. "; "") & ALS(AANTAL.ALS(A3;"<>e"); "Schakel overeenkomsten in gehele cel uit."; "") )
controleren op overeenkomst in gehele cel, maar geen reguliere uitdrukkingen:
=ALS( EN(AANTAL.ALS(A3;".*")=0; AANTAL.ALS(A3;"<>e")); "OK"; "Fout: " & ALS(AANTAL.ALS(A3;".*"); "Schakel reguliere uitdrukkingen uit. "; "") & ALS(AANTAL.ALS(A3;"<>e")=0; "Schakel overeenkomsten in gehele cel in."; "") )
controleren op reguliere uitdrukkingen noch overeenkomst in gehele cel:
=ALS( EN(AANTAL.ALS(A3;".*"); AANTAL.ALS(A3;"<>e")=0); "OK"; "Fout: " & ALS(AANTAL.ALS(A3;".*")=0; "Schakel reguliere uitdrukkingen uit. "; "") & ALS(AANTAL.ALS(A3;"<>e"); "Schakel overeenkomsten in gehele cel uit."; "") )

Tips en trucs

  • U kunt ofwel kopiëren en plakken, of '=' gebruiken om er voor te zorgen dat de tabelkoppen met criteria exact overeenkomen met de koppen van de databasetabel. In de tabel hierboven zal bijvoorbeeld =D1 'Afstand naar school' geven
  • Als de criteria niet lijken te werken, zorg er dan voor dat cellen die leeg lijken te zijn ook echt leeg zijn, door ze te selecteren en dan te verwijderen.



Zie ook

Personal tools