Contenido
Índice 🔎︎

# Funciones de bases de datos

### Información general

Las doce funciones de la categoría Base de datos le ayudan a analizar una base de datos sencilla que ocupa un área rectangular en una hoja de cálculo, compuesta de columnas y de filas, con los registros individuales organizados en filas. La celda de cabecera de cada columna muestra el nombre de esta y este nombre normalmente refleja el contenido de cada celda de esa columna en particular.

Las funciones de la categoría Base de datos aceptan estos tres argumentos:

1. BaseDeDatos. El intervalo de celdas de la base de datos.

2. DatabaseField. The column containing the data to be used in the function’s calculations.

3. CriteriosDeBúsqueda. El intervalo de celdas de un área separada de la hoja de cálculo que contiene los criterios de búsqueda.

Estos argumentos se describen a detalle más abajo.

All functions have the same outline concept of operation. The first logical step is to use the specified SearchCriteria to identify the subset of records in the Database that are to be used during subsequent calculations. The second step is to extract the data values and perform the calculations associated with the specific function (average, sum, product, and so on). The values processed are those in the DatabaseField column of the selected records.

Calc trata los datos y los valores lógicos (VERDADERO y FALSO) como numéricos al calcular con estas funciones.

### Argumentos de las funciones de base de datos

Las definiciones de argumentos siguientes se aplican a todas las funciones de la categoría Base de datos:

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.

   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. An example might be A1:E10.

   The Database argument may also be specified by passing the name of a named range or database range. Using a meaningful name to define the cell range can enhance formula readability and document maintenance. If the name does not match the name of a defined range, Calc reports a #NAME? error.

   Other errors that might be reported as a result of an invalid Database argument are #VALUE! and Err:504 (error in parameter list).

2. DatabaseField argument

   DatabaseField specifies the column which the function will use for its calculations after the search criteria have been applied and the data rows have been selected. It is not related to the search criteria.

   Specify the DatabaseField argument in any of the following ways:

   - By entering a reference to a header cell within the Database area. Alternatively, if the cell has been given a meaningful name as a named range or database range, enter that name. If the name does not match the name of a defined range, Calc reports a #NAME? error. If the name is valid but does not correspond to one cell only, Calc reports Err:504 (error in parameter list).

   - By entering a number to specify the column within the Database area, starting with 1. For example, if a Database occupied the cell range D6:H123, then enter 3 to indicate the header cell at F6. Calc expects an integer value that lies between 1 and the number of columns defined within Database and ignores any digits after a decimal point. If the value is less than 1, Calc reports Err:504 (error in parameter list). If the value is greater than the number of columns in Database, Calc reports a #VALUE! error.

   - 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.

   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.

### Definir criterios de búsqueda

The number of columns occupied by the SearchCriteria area need not be the same as the width of the Database area. All headings that appear in the first row of SearchCriteria must be identical to headings in the first row of Database. However, not all headings in Database need appear in the first row of SearchCriteria, while a heading in Database can appear multiple times in the first row of SearchCriteria.

Search criteria are entered into the cells of the second and subsequent rows of the SearchCriteria area, below the row containing headings. Blank cells within the SearchCriteria area are ignored.

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.

Es posible crear criterios utilizando comodines; para ello, asegúrese de que esté activada la opción Permitir comodines en fórmulas del cuadro de diálogo LibreOffice ▸ Preferencias Herramientas ▸ Opciones ▸ LibreOffice Calc ▸ Calcular. Si la interoperatividad con Microsoft Excel es importante para su libro, esta opción debe estar activada.

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.

Al utilizar funciones en las que uno o más argumentos son cadenas de criterios de búsqueda que representan una expresión regular, en primer lugar se intentará convertir los criterios de la cadena en números. Por ejemplo, «.0» se convertirá en 0.0 y así sucesivamente. Si el intento es fructuoso, la correspondencia no será por expresión regular, sino numérica. No obstante, si se cambia a una configuración regional en la cual el separador decimal no es el punto, pasará a valer la expresión regular. Para forzar la evaluación de la expresión regular en lugar de una expresión numérica, utilice una expresión que no pueda confundirse con un número, como por ejemplo «.\0» o «(?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.

### Ejemplos de uso de las funciones de base de datos

La tabla de base de datos siguiente es un ejemplo que demuestra cómo puede aprovechar las funciones de la categoría Base de datos. El intervalo de celdas A1:E10 contiene datos ficticios sobre las personas invitadas a la fiesta de cumpleaños de Juan. Se proporciona la información siguiente sobre cada invitado: nombre, grado escolar, edad en años, distancia a la escuela en metros y peso en kilogramos.

| A | B | C | D | E
1 | Nombre | Grado | Edad | Distancia | Peso
2 | Andrés | 3 | 9 | 150 | 40
3 | Beatriz | 4 | 10 | 1000 | 42
4 | Carlos | 3 | 10 | 300 | 51
5 | Daniel | 5 | 11 | 1200 | 48
6 | Eva | 2 | 8 | 650 | 33
7 | Franco | 2 | 7 | 300 | 42
8 | Greta | 1 | 7 | 200 | 36
9 | Henrique | 3 | 9 | 1200 | 44
10 | Irene | 2 | 8 | 1000 | 42
11 |  |  |  |  |

Los seis ejemplos siguientes utilizan la tabla de la base de datos anterior en combinación con distintas áreas de criterios de búsqueda.

#### Ejemplo 1

| A | B | C | D | E
12 | Nombre | Grado | Edad | Distancia | Peso
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).

Observe también que la fórmula =BDCONTAR(A1:E10;;D12:D13) devuelve el mismo valor exacto, lo que demuestra que solo es necesario que el área de criterios de búsqueda contenga los títulos de columnas pertinentes.

#### Ejemplo 2

| A | B | C | D | E
12 |  | Edad | Grado |  |
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).

#### Ejemplo 3

| A | B | C | D | E
12 |  | Edad |  |  |
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).

#### Ejemplo 4

| A | B | C | D | E
12 |  | Edad | Edad |  |
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).

#### Ejemplo 5

| A | B | C | D | E
12 | Nombre |  |  |  |
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).

#### Ejemplo 6

| A | B | C | D | E
12 | Nombre |  |  |  |
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).

## BDCONTAR

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.

#### Sintaxis

BDCONTAR(BaseDeDatos; [CampoDeBaseDeDatos]; CriteriosDeBúsqueda)

#### Ejemplo

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.

## BDCONTARA

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.

#### Sintaxis

BDCONTARA(BaseDeDatos;[CampoDeBaseDeDatos];CriteriosDeBúsqueda)

#### Ejemplo

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.

Devuelve 0 si no se produce ninguna correspondencia o si no hay valores numéricos en las celdas de la columna especificada para los registros correspondientes.

#### Sintaxis

BDDSTDEV(Base de Datos; Campo Base de Datos; Búsqueda por Criterios)

#### Ejemplo

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.

Devuelve el error #¡NUM! si no se corresponde ningún registro con los criterios de búsqueda dados o si no hay valores numéricos en las celdas de la columna especificada para los registros correspondientes.

#### Sintaxis

BDDESVESTP(Base de Datos; Campo Base de Datos; Búsqueda por Criterios)

#### Ejemplo

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.

## BDEXTRAER

BDEXTRAER devuelve el contenido de la celda (campo) de la columna especificada, para la única fila (registro de la base de datos) que coincide con los criterios de búsqueda especificados.

Calc informa Err: 502 (argumento no válido) si se encuentran múltiples coincidencias, o un error #¡VALOR! (tipo de datos incorrecto) si no se encuentran coincidencias. También se devuelve un error #¡VALOR! si se encuentra una sola coincidencia pero la celda correspondiente está vacía.

#### Sintaxis

BDEXTRAER(BaseDeDatos; CampoDeBaseDeDatos; CriteriosDeBúsqueda)

#### Ejemplo

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.

Devuelve 0 si no se encuentran coincidencias o si no hay valores numéricos distintos de cero en las celdas de la columna especificada para los registros coincidentes.

#### Sintaxis

BDMAX(BaseDeDatos; CampoDeBaseDeDatos; CriteriosDeBúsqueda)

#### Ejemplo

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.

Devuelve 0 si no se encuentran coincidencias o si no hay valores numéricos distintos de cero en las celdas de la columna especificada para los registros coincidentes.

#### Sintaxis

BDMIN(BaseDeDatos; CampoDeBaseDeDatos; CriteriosDeBúsqueda)

#### Ejemplo

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.

## BDPRODUCTO

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.

Devuelve 0 si no se produce ninguna correspondencia o si no hay valores numéricos en las celdas de la columna especificada para los registros correspondientes.

#### Sintaxis

BDPRODUCTO(BaseDeDatos; CampoBaseDeDatos; CriteriosDeBúsqueda)

#### Ejemplo

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.

## BDPROMEDIO

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.

#### Sintaxis

BDPROMEDIO(Base de Datos; Campo de Base de Datos; Búsqueda por Criterios)

#### Ejemplo

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.

## BDSUMA

BDSUMA calcula la suma de todos los valores numéricos en las celdas (campos) de la columna especificada, para todas las filas (registros de la base de datos) que coinciden con los criterios de búsqueda especificados. Las celdas en blanco o celdas que contienen caracteres no numéricos no están incluidas.

Devuelve 0 si no se produce ninguna correspondencia o si no hay valores numéricos en las celdas de la columna especificada para los registros correspondientes.

#### Sintaxis

BDSUM(Base de Datos; Campo Base de Datos; Búsqueda por Criterios)

#### Ejemplo

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

BDVAR calcula la varianza de la muestra en función de los valores numéricos en las celdas (campos) de la columna especificada, para todas las filas (registros de la base de datos) que coinciden con los criterios de búsqueda especificados. Los valores no numéricos son ignorados.

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.

Devuelve 0 si no se produce ninguna correspondencia o si no hay valores numéricos en las celdas de la columna especificada para los registros correspondientes.

#### Sintaxis

BDVAR(Base de Datos; Campo de la Base de Datos; Criterios de búsqueda)

#### Ejemplo

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.

Devuelve el error #¡NUM! si no se corresponde ningún registro con los criterios de búsqueda dados o si no hay valores numéricos en las celdas de la columna especificada para los registros correspondientes.

#### Sintaxis

BDVARP(Base de Datos; Campo de la Base de Datos; Criterios de búsqueda)

#### Ejemplo

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.

Temas relacionados

Funciones por categoría