Contingut

# Funcions de base de dades

### Vista general

Les dotze funcions de la categoria Base de dades us ajuden a analitzar una base de dades senzilla que ocupa una àrea rectangular del full de càlcul que comprèn columnes i files, amb les dades organitzades com una fila per a cada registre. La cel·la de capçalera de cada columna mostra el nom de la columna i aquest nom sol reflectir el contingut de cada cel·la d'aquesta columna.

The functions in the Database category take three arguments as follows:

1. Base de dades. L'interval de cel·les de la base de dades.

2. DatabaseField. La columna que conté les dades que s'utilitzaran en els càlculs de la funció.

3. SearchCriteria. The cell range of a separate area of the spreadsheet containing search criteria.

Aquests arguments es descriuen més detalladament a baix.

Totes les funcions tenen el mateix concepte d'operació d'esquema. El primer pas lògic és utilitzar el SearchCriteria especificat per identificar el subconjunt de registres de la Base de dades que s'han d'utilitzar durant càlculs posteriors. El segon pas és extreure els valors de les dades i realitzar els càlculs associats a la funció específica (mitjana, suma, producte, etc.). Els valors processats són els de la columna DatabaseField dels registres seleccionats.

Calc treats dates and logical values (TRUE and FALSE) as numeric when calculating with these functions.

### Database Function Arguments

The following argument definitions apply for all functions in the Database category:

1. Database argument

   Database specifies the range of cells occupied by the database table. The first row of the range contains the field names, and subsequent rows are records with corresponding field values.

   Una manera de definir un interval de cel·les, és introduir la referència de la cel·la superior esquerra seguida de dos punts (:) i, a continuació, la referència de cel·la inferior dreta. Un exemple podria ser A1: E10.

   L'argument Base de dades també es pot especificar passant el nom d'un interval amb nom o el rang d'una base de dades. L’ús d’un nom significatiu per definir un interval de cel·les pot millorar la llegibilitat de les fórmules i el manteniment dels documents. Si el nom no coincideix amb el nom d'un interval definit, Calc informa d'un error #NOM?.

   Altres errors que es podrien reportar a conseqüència d’un argument invàlid per a una Base de dades són #VALUE! i Err:504 (error a la llista de paràmetres).

2. argument DatabaseField

   DatabaseField especifica la columna que utilitzarà la funció per als seus càlculs un cop aplicats els criteris de cerca i seleccionades les files de dades. No està relacionat amb els criteris de cerca.

   Especifica l'argument DatabaseField en qualsevol de les següents maneres:

   - Introduint la referència a una cel·la de capçalera dins una àrea de Base de dades. Com a alternativa, si a la cel·la se li ha donat un nom significatiu com a interval amb nom o interval de base de dades, introduïu-lo. Si el nom no coincideix amb el nom d'un interval definit, Calc informa d'un error #NOM?. Si el nom és vàlid, però no correspon a una sola cel·la, Calc informa amb Err: 504 (error a la llista de paràmetres).

   - Introduint un número per especificar la columna dins de l'àrea d'una Base de dades, començant amb 1. Per exemple, si una Base de dades ocupa el rang de cel·les D6:H123, aleshores poseu 3 per indicar la cel·la de capçalera F6. Calc espera un valor enter entre 1 i el nombre de columnes definit dins de la Base de dades i ignora els dígits després del punt decimal. Si el valor és menor que 1, Calc informa amb l'error Err:504 (error a la llista de paràmetres). Si el valor és superior al nombre de columnesa la Base de dades, Calc informa amb l'error #VALU..

   - By entering the literal column header name from the first row of the Database range, placing quotation marks around the header name. For example, “Distance to School”. If the string does not match one of the Database area’s column headings, Calc reports Err:504 (error in parameter list). You can also provide a reference to an arbitrary cell (not within the Database and SearchCriteria areas) that contains the required string.

   The DatabaseField argument is optional for the DCOUNT and DCOUNTA functions but it is required for the other ten Database functions.

3. SearchCriteria argument

   SearchCriteria specifies the range of cells containing search criteria. Like Database, its first row is also field names, and subsequent rows are conditions for related fields. The Database and SearchCriteria areas need not be adjacent, or even on the same sheet.

   A reference to an empty cell is interpreted as the numeric value 0.

   A matching expression can be:

   - A number or logical value. A matching cell content equals the number or logical value.

   - A value beginning with a comparator (<, <=, =, >, >=, <>).

     For =, if the value is empty it matches empty cells.

     For <>, if the value is empty it matches non-empty cells.

     For <>, if the value is not empty it matches any cell content except the value, including empty cells.

     Note: "=0" does not match empty cells.

     For = and <>, if the value is not empty and can not be interpreted as a number type or one of its subtypes and the property Search criteria = and <> must apply to whole cells is checked, comparison is against the entire cell contents, if unchecked, comparison is against any subpart of the field that matches the criteria. For = and <>, if the value is not empty and can not be interpreted as a Number type or one of its subtypes applies.

   - Other Text value. If the property Search criteria = and <> must apply to whole cells is true, the comparison is against the entire cell contents, if false, comparison is against any subpart of the field that matches the criteria. The expression can contain text, numbers, regular expressions or wildcards (if enabled in calculation options).

   One way of defining the range of cells is to enter the cell reference for the upper left-hand cell, followed by a colon (:), and then the lower right-hand cell reference. For example, A13:B14. The cell range may also be specified by passing the name of a defined named range or database range. If the name does not match the name of a defined range, Calc reports a #NAME? error.

   Err:504 (error in parameter list) may also be reported as a result of an invalid SearchCriteria argument.

   The contents of the SearchCriteria area are described in more detail in the next section.

### Definició de criteris per a cercar

El nombre de columnes ocupades per l'àrea SearchCriteria no ha de ser el mateix que l'amplada de l'àrea de la Base de dades. Tots els encapçalaments que apareixen a la primera fila de SearchCriteria han de ser idèntics als encapçalaments de la primera fila de la Base de dades. Tot i això, no tots els encapçalaments de la Base de dades necessiten aparèixer a la primera fila de la SearchCriteria , mentre que un encapçalament de Base de dades pot aparèixer diverses vegades a la primera fila del SearchCriteria.

Els criteris de cerca s'introdueixen a les cel·les de la segona i posteriors files de l'àrea SearchCriteria, a sota de la fila que conté els encapçalaments. Les cel·les en blanc de l'àrea SearchCriteria s'ignoren.

Create criteria in the cells of the SearchCriteria area using the comparison operators <, <=, =, <>, >=, and >. = is assumed if a cell is not empty but does not start with a comparison operator.

If you write several criteria in one row, they are connected by AND. If you write several criteria in different rows, they are connected by OR.

Criteria can be created using wildcards, providing that wildcards have been enabled via the Enable wildcards in formulas option on the LibreOffice - Preferences Tools - Options - LibreOffice Calc - Calculate dialog. When interoperability with Microsoft Excel is important for your spreadsheet, this option should be enabled.

Even more powerful criteria can be created using regular expressions, providing that regular expressions have been enabled via the Enable regular expressions in formulas option on the LibreOffice - Preferences Tools - Options - LibreOffice Calc - Calculate dialog.

When using functions where one or more arguments are search criteria strings that represents a regular expression, the first attempt is to convert the string criteria to numbers. For example, ".0" will convert to 0.0 and so on. If successful, the match will not be a regular expression match but a numeric match. However, when switching to a locale where the decimal separator is not the dot makes the regular expression conversion work. To force the evaluation of the regular expression instead of a numeric expression, use some expression that can not be misread as numeric, such as ".[0]" or ".\0" or "(?i).0".

Another setting that affects how the search criteria are handled is the Search criteria = and <> must apply to whole cells option on the LibreOffice - Preferences Tools - Options - LibreOffice Calc - Calculate dialog. This option controls whether the search criteria you set for the Database functions must match the whole cell exactly. When interoperability with Microsoft Excel is important for your spreadsheet, this option should be enabled.

### Exemples d'ús de les funcions de base de dades

The following table provides an example database table that is utilized to demonstrate how to use the functions in the Database category. The cell range A1:E10 contains fictitious information about the guests invited to Joe's birthday party. The following information is given for each guest - name, school grade, age in years, distance to school in meters, and weight in kilograms.

| A | B | C | D | E
1 | Nom | Grau | Edat | Distància | Pes
2 | Abel | 3 | 9 | 150 | 40
3 | Bàrbara | 4 | 10 | 1000 | 42
4 | Cebrià | 3 | 10 | 300 | 51
5 | Damià | 5 | 11 | 1200 | 48
6 | Elisabet | 2 | 8 | 650 | 33
7 | Ferran | 2 | 7 | 300 | 42
8 | Gemma | 1 | 7 | 200 | 36
9 | Hel·ladi | 3 | 9 | 1200 | 44
10 | Imma | 2 | 8 | 1000 | 42
11 |  |  |  |  |

Els sis exemples següents utilitzen la taula de base de dades anterior, en combinació amb diferents àrees de criteris de cerca.

#### Exemple 1

| A | B | C | D | E
12 | Nom | Grau | Edat | Distància | Pes
13 |  |  |  | >600 |
14 |  |  |  |  |

As in this simple example, it is sometimes desirable (but not essential) to place the search criteria area directly under the database table, with the columns of the two areas vertically aligned. Blank entries in the search criteria area are ignored. With the above example database table and this search criteria area, insert the formula =DCOUNT(A1:E10;;A12:E14) into an empty cell elsewhere in the sheet to count how many of Joe’s guests travel further than 600 meters to school. The value 5 is returned (counting Betty, Daniel, Eva, Harry, and Irene).

Note also that the formula =DCOUNT(A1:E10;;D12:D13) returns exactly the same value, demonstrating that it is only necessary for the search criteria area to contain relevant column headings.

#### Exemple 2

| A | B | C | D | E
12 |  | Edat | Grau |  |
13 |  | >7 | 2 |  |
14 |  |  |  |  |

In this example the search criteria area contains only two headings and these are not vertically aligned with the corresponding headings in the example database table. Since there are two conditions in the same row, these are connected by AND. With the above example database table and this search criteria area, insert the formula =DCOUNT(A1:E10;;B12:C13) into an empty cell elsewhere in the sheet to count how many of Joe’s guests are in grade 2 and greater than 7 years old. The value 2 is returned (counting Eva and Irene).

#### Exemple 3

| A | B | C | D | E
12 |  | Edat |  |  |
13 |  | 9 |  |  |
14 |  | 10 |  |  |

In this example the search criteria area contains only one heading. Since there are two conditions in consecutive rows, these are connected by OR. With the above example database table and this search criteria area, insert the formula =DCOUNT(A1:E10;;B12:B14) into an empty cell elsewhere in the sheet to count how many of Joe’s guests are either 9 or 10 years old. The value 4 is returned (counting Andy, Betty, Charles, and Harry).

#### Exemple 4

| A | B | C | D | E
12 |  | Edat | Edat |  |
13 |  | >=8 | <=10 |  |
14 |  |  |  |  |

In this example the search criteria area contains two occurrences of the same heading. Since there are two conditions in the same row, these are connected by AND. With the above example database table and this search criteria area, insert the formula =DCOUNT(A1:E10;;B12:C13) into an empty cell elsewhere in the sheet to count how many of Joe’s guests are aged between 8 and 10 (inclusive). The value 6 is returned (counting Andy, Betty, Charles, Eva, Harry, and Irene).

#### Exemple 5

| A | B | C | D | E
12 | Nom |  |  |  |
13 | F* |  |  |  |
14 |  |  |  |  |

This simple example shows the use of wildcards. For this example to work as intended, select to enable wildcards at LibreOffice - Preferences Tools - Options - LibreOffice Calc - Calculate. With the above example database table and this search criteria area, insert the formula =DCOUNT(A1:E10;;A12:A13) into an empty cell elsewhere in the sheet to count how many of Joe’s guests have names that begin with the letter “F”. The value 1 is returned (counting Frank).

#### Exemple 6

| A | B | C | D | E
12 | Nom |  |  |  |
13 | [ABC].* |  |  |  |
14 |  |  |  |  |

This simple example shows the use of regular expressions. For this example to work as intended, select to enable regular expressions at LibreOffice - Preferences Tools - Options - LibreOffice Calc - Calculate. With the above example database table and this search criteria area, insert the formula =DCOUNT(A1:E10;;A12:A13) into an empty cell elsewhere in the sheet to count how many of Joe’s guests have names that begin with the letters “A”, “B”, or “C”. The value 3 is returned (counting Andy, Betty, and Charles).

## BDCOMPTA

DCOUNT counts the number of cells (fields) of the specified column that contain numeric values, for all rows (database records) that match the specified search criteria. However, if no column is specified, DCOUNT returns the count of all records that match the specified search criteria irrespective of their contents.

#### Sintaxi

BDCOMPTA(BaseDeDades; [CampDeBaseDeDades]; CriterisDeCerca)

#### Exemple

The example database table giving information about the guests invited to Joe’s birthday party (described above) should occupy cells A1:E10. The content of cells A12:E12 should be identical to the header labels for the database table in cells A1:E1. Make sure that cells A13:E13 are blank, except for cell D13 which should contain ">600" (this search criterion will match records in the database table that have a value greater than 600 in the Distance column).

Insert the formula =DCOUNT(A1:E10;; A12:E13) into an empty cell elsewhere in the sheet to calculate how many of Joe’s party guests travel further than 600 meters to school. The value 5 is returned.

The same result is obtained if you use the formula =DCOUNT(A1:E10; "Distance"; A12:E13), because all entries in the Distance column are numeric. However, if you use the formula =DCOUNT(A1:E10; "Name"; A12:E13), the value 0 is returned because all entries in the Name column are non-numeric.

## BDCOMPTAA

DCOUNTA counts the number of cells (fields) of the specified column that are not blank, for all rows (database records) that match the specified search criteria. Blank cells of the specified column are not counted. However, if no column is specified, DCOUNTA returns the count of all records that match the specified search criteria irrespective of their contents.

#### Sintaxi

BDCOMPTAA(BaseDeDades; [CampDeBaseDeDades]; CriterisDeCerca)

#### Exemple

The example database table giving information about the guests invited to Joe’s birthday party (described above) should occupy cells A1:E10. The content of cells A12:E12 should be identical to the header labels for the database table in cells A1:E1. Make sure that cells A13:E13 are blank, except for cell D13 which should contain ">600" (this search criterion will match records in the database table that have a value greater than 600 in the Distance column).

Insert the formula =DCOUNTA(A1:E10;; A12:E13) into an empty cell elsewhere in the sheet to calculate how many of Joe’s party guests travel further than 600 meters to school. The value 5 is returned.

The same result is obtained if you use the formula =DCOUNTA(A1:E10; "Distance"; A12:E13) or the formula =DCOUNTA(A1:E10; "Name"; A12:E13). The latter case reflects that in contrast to DCOUNT, DCOUNTA counts both numeric and alphanumeric values in the column indicated by the DatabaseField argument.

## BDDESVEST

DSTDEV calculates the sample standard deviation based on the numeric values in the cells (fields) of the specified column, for all rows (database records) that match the specified search criteria. Non-numeric values are ignored.

Returns a #NUM! error if exactly one record matches the specified search criteria, or if there is only one numeric value in the cells of the specified column for the matching records.

Returns 0 if no matches are found, or if there are no numeric values in the cells of the specified column for the matching records.

#### Sintaxi

BDDESVEST(BaseDeDades; CampDeBaseDeDades; CriterisDeCerca)

#### Exemple

The example database table giving information about the guests invited to Joe’s birthday party (described above) should occupy cells A1:E10. The content of cells A12:E12 should be identical to the header labels for the database table in cells A1:E1. Make sure that cells A13:D13 are blank and that cell E13 contains ">0" (this search criterion is intended to match all records in the database table).

Insert the formula =DSTDEV(A1:E10; "Weight"; A12:E13) into an empty cell elsewhere in the sheet to calculate the sample standard deviation of the weights in kg of Joe’s party guests. The value 5.5 is returned.

## BDDESVESTP

DSTDEVP calculates the population standard deviation based on the numeric values in the cells (fields) of the specified column, for all rows (database records) that match the specified search criteria. Non-numeric values are ignored.

Returns a #NUM! error if no records match the specified search criteria, or if there are no numeric values in the cells of the specified column for the matching records.

#### Sintaxi

BDDESVESTP(BaseDeDades; CampDeBaseDeDades; CriterisDeCerca)

#### Exemple

The example database table giving information about the guests invited to Joe’s birthday party (described above) should occupy cells A1:E10. The content of cells A12:E12 should be identical to the header labels for the database table in cells A1:E1. Make sure that cells A13:D13 are blank and that cell E13 contains ">0" (this search criterion is intended to match all records in the database table).

Insert the formula =DSTDEVP(A1:E10; "Weight"; A12:E13) into an empty cell elsewhere in the sheet to calculate the population standard deviation of the weights in kg of Joe’s party guests. The value 5.18545 is returned.

## BDEXTREU

DGET returns the contents of the cell (field) of the specified column, for the single row (database record) that matches the specified search criteria.

Calc reports Err:502 (invalid argument) if multiple matches are found, or a #VALUE! error (wrong data type) if no matches are found. A #VALUE! error is also reported if a single match is found but the relevant cell is empty.

#### Sintaxi

BDEXTREU(BaseDeDades; CampDeBaseDeDades; CriterisDeCerca)

#### Exemple

The example database table giving information about the guests invited to Joe’s birthday party (described above) should occupy cells A1:E10. The content of cells A12:E12 should be identical to the header labels for the database table in cells A1:E1. Make sure that cells A13:E13 are blank, except for cell C13 which should contain "11" (this search criterion will match records in the database table that have a value of 11 in the Age column).

Insert the formula =DGET(A1:E10; "Name"; A12:E13) into an empty cell elsewhere in the sheet to find the name of Joe’s party guest who is age 11. The name Daniel is returned.

If you change the value in cell C13 to “10”, then the formula =DGET(A1:E10; "Name"; A12:E13) returns an invalid argument error (Err:502). The reflects that multiple records match the specified criterion (both Betty and Charles are age 10).

## BDMAX

DMAX calculates the maximum value across the cells (fields) of the specified column that contain numeric values, for all rows (database records) that match the specified search criteria. Blank cells or cells containing non-numeric characters are not included.

Returns 0 if no matches are found, or if there are no non-zero numeric values in the cells of the specified column for the matching records.

#### Sintaxi

BDMAX(BaseDeDades; CampDeBaseDeDades; CriterisDeCerca)

#### Exemple

The example database table giving information about the guests invited to Joe’s birthday party (described above) should occupy cells A1:E10. The content of cells A12:E12 should be identical to the header labels for the database table in cells A1:E1. Make sure that cells A13:E13 are blank, except for cell D13 which should contain ">0" (this search criterion is intended to match all records in the database table).

Insert the formula =DMAX(A1:E10; "Distance"; A12:E13) into an empty cell elsewhere in the sheet to find the maximum distance in meters that any of Joe’s party guests travel to school. The value 1200 is returned.

## BDMIN

DMIN calculates the minimum value across the cells (fields) of the specified column that contain numeric values, for all rows (database records) that match the specified search criteria. Blank cells or cells containing non-numeric characters are not included.

Returns 0 if no matches are found, or if there are no non-zero numeric values in the cells of the specified column for the matching records.

#### Sintaxi

BDMIN(BaseDeDades; CampDeBaseDeDades; CriterisDeCerca)

#### Exemple

The example database table giving information about the guests invited to Joe’s birthday party (described above) should occupy cells A1:E10. The content of cells A12:E12 should be identical to the header labels for the database table in cells A1:E1. Make sure that cells A13:E13 are blank, except for cell D13 which should contain ">0" (this search criterion is intended to match all records in the database table).

Insert the formula =DMIN(A1:E10; "Distance"; A12:E13) into an empty cell elsewhere in the sheet to find the minimum distance in meters that any of Joe’s party guests travel to school. The value 150 is returned.

## BDMITJANA

DAVERAGE calculates the average of the numeric values in the cells (fields) of the specified column, for all rows (database records) that match the specified search criteria. Non-numeric values in those cells are ignored.

Returns a #DIV/0! error if no records match the specified search criteria, or if there are no numeric values in the cells of the specified column for the matching records.

#### Sintaxi

BDMITJANA(BaseDeDades; CampDeBaseDeDades; CriterisDeCerca)

#### Exemple

The example database table giving information about the guests invited to Joe’s birthday party (described above) should occupy cells A1:E10. The content of cells A12:E12 should be identical to the header labels for the database table in cells A1:E1. Make sure that cells A13:E13 are blank, except for cell D13 which should contain ">0" (this search criterion is intended to match all records in the database table).

Insert the formula =DAVERAGE(A1:E10; "Distance"; A12:E13) into an empty cell elsewhere in the sheet to calculate the average distance in meters travelled to school by Joe’s party guests. The value 666.67 is returned.

## BDPRODUCTE

DPRODUCT calculates the product of all numeric values in the cells (fields) of the specified column, for all rows (database records) that match the specified search criteria. Blank cells or cells containing non-numeric characters are not included.

Returns 0 if no matches are found, or if there are no numeric values in the cells of the specified column for the matching records.

#### Sintaxi

BDPRODUCTE(BaseDeDades; CampDeBaseDeDades; CriterisDeCerca)

#### Exemple

The example database table giving information about the guests invited to Joe’s birthday party (described above) should occupy cells A1:E10. The content of cells A12:E12 should be identical to the header labels for the database table in cells A1:E1. Make sure that cells A13:E13 are blank, except for cell C13 which should contain ">0" (this search criterion is intended to match all records in the database table).

Insert the formula =DPRODUCT(A1:E10; "Age"; A12:E13) into an empty cell elsewhere in the sheet to calculate the product of the ages in years of Joe’s party guests. The value 279417600 is returned.

## BDSUM

DSUM calculates the sum of all numeric values in the cells (fields) of the specified column, for all rows (database records) that match the specified search criteria. Blank cells or cells containing non-numeric characters are not included.

Returns 0 if no matches are found, or if there are no numeric values in the cells of the specified column for the matching records.

#### Sintaxi

BDSUM(BaseDeDades; CampDeBaseDeDades; CriterisDeCerca)

#### Exemple

The example database table giving information about the guests invited to Joe’s birthday party (described above) should occupy cells A1:E10. The content of cells A12:E12 should be identical to the header labels for the database table in cells A1:E1. Make sure that cells A13:E13 are blank, except for cell D13 which should contain ">0" (this search criterion is intended to match all records in the database table).

Insert the formula =DSUM(A1:E10; "Distance"; A12:E13) into an empty cell elsewhere in the sheet to find the total distance in meters that all of Joe’s party guests travel to school. The value 6000 is returned.

## BDVAR

DVAR calculates the sample variance based on the numeric values in the cells (fields) of the specified column, for all rows (database records) that match the specified search criteria. Non-numeric values are ignored.

Returns a #NUM! error if exactly one record matches the specified search criteria, or if there is only one numeric value in the cells of the specified column for the matching records.

Returns 0 if no matches are found, or if there are no numeric values in the cells of the specified column for the matching records.

#### Sintaxi

BDVAR(BaseDeDades; CampDeBaseDeDades; CriterisDeCerca)

#### Exemple

The example database table giving information about the guests invited to Joe’s birthday party (described above) should occupy cells A1:E10. The content of cells A12:E12 should be identical to the header labels for the database table in cells A1:E1. Make sure that cells A13:E13 are blank, except for cell D13 which should contain ">0" (this search criterion is intended to match all records in the database table).

Insert the formula =DVAR(A1:E10; "Distance"; A12:E13) into an empty cell elsewhere in the sheet to find the sample variance of the distances in meters that Joe’s party guests travel to school. The value 193125 is returned.

## BDVARP

DVARP calculates the population variation based on the numeric values in the cells (fields) of the specified column, for all rows (database records) that match the specified search criteria. Non-numeric values are ignored.

Returns a #NUM! error if no records match the specified search criteria, or if there are no numeric values in the cells of the specified column for the matching records.

#### Sintaxi

BDVARP(BaseDeDades; CampDeBaseDeDades; CriterisDeCerca)

#### Exemple

The example database table giving information about the guests invited to Joe’s birthday party (described above) should occupy cells A1:E10. The content of cells A12:E12 should be identical to the header labels for the database table in cells A1:E1. Make sure that cells A13:E13 are blank, except for cell D13 which should contain ">0" (this search criterion is intended to match all records in the database table).

Insert the formula =DVARP(A1:E10; "Distance"; A12:E13) into an empty cell elsewhere in the sheet to find the population variance of the distances in meters that Joe’s party guests travel to school. The value 171666.67 is returned.

Temes relacionats

Funcions per categoria

Definició d'intervals de bases de dades

Funcions de base de dades

Define Range

Database Table Reference

Ens cal la vostra ajuda!