Czytaj książkę: «Excel y SQL de la mano»

Czcionka:



Excel y SQL de la mano

Primera edición, 2021

© 2021 Joan Pallerola Comamala

© MARCOMBO, S.L. 2021

www.marcombo.com

Diseño de la cubierta: ENEDENÚ DISEÑO GRÁFICO

Corrección: Nuria Barroso y Mónica Muñoz

Directora de producción: M.a Rosa Castillo

Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra solo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar o escanear algún fragmento de esta obra.

ISBN: 978-84-267-3341-2

Producción del ePub: booqlab

A Núria, Anna, Gemma y Eduard.No hace falta decir más.

Índice general

INTRODUCCIÓN

CAPÍTULO 1. Bases de datos: qué son y su estructura

1.1. CLASIFICACIÓN DE LAS BASES DE DATOS

1.2. CARACTERÍSTICAS DE LAS BASES DE DATOS

1.2.1. Ventajas de las bases de datos

1.2.2. Desventajas de las bases de datos

1.3. TIPOS DE BASES DE DATOS

1.4. MICROSOFT EXCEL COMO BASE DE DATOS

1.4.1. Requisitos importantes que tener en cuenta

1.4.2. Las funciones de Excel para bases de datos

1.4.3. Ejemplos de las funciones de Excel para bases de datos

CAPÍTULO 2. SQL: el lenguaje de las bases de datos

2.1. CATEGORÍAS DE DATOS

2.2. TIPOS DE DATOS

2.3. TIPOS DE SENTENCIAS SQL

2.4. EJEMPLOS DE SENTENCIAS SQL

2.4.1. Consultas sencillas

2.4.2. Consultas sencillas eliminando registros repetidos

2.4.3. Consultas sencillas con condición

2.4.4. Consultas con ordenación

2.4.5. Consultas con asignación de un alias

2.4.6. Consultas con contadores y agrupación

2.4.7. Consultas de registros vacíos o no vacíos

2.4.8. Consultas por intersección de tablas

2.4.9. Consultas por cruce de tablas

2.4.10. Consultas Self Join

2.4.11. Consultas de unión

2.4.12. Consultas anidadas

2.5. LA AYUDA DE ACCESS PARA SENTENCIAS SQL

2.5.1. Los componentes de Access

2.5.2. Las consultas

2.6. MÁS SENTENCIAS SQL

CAPÍTULO 3. SQL dentro de Excel: Microsoft Query

3.1. EN BUSCA DE MICROSOFT QUERY

3.2. ¿DÓNDE ESTÁ EL SQL?

3.3. VAMOS A PONER MÁS TABLAS

3.4. COMBINAR CAMPOS CON LOS EXISTENTES

3.5. ORDENACIÓN Y FILTROS

3.6. LA CONSULTA EN EXCEL

CAPÍTULO 4. MACROS y SQL: tratamiento de los datos del propio libro

4.1. LAS MACROS DE EXCEL

4.1.1. La primera macro

4.1.2. Tablas en lugar de rangos

4.1.3. Trabajando con rangos variables

4.1.4. Copiando la tabla en otra hoja

4.2. SQL SOBRE LA PROPIA HOJA A TODO GAS

4.2.1. Insertar datos en la base de datos

4.2.2. Delete, Update y alternativas

4.2.3. Búsqueda y referencia

4.2.4. ¿Y las no coincidencias?

4.2.5. Referencias cruzadas versus tablas dinámicas

4.2.6. Búsqueda de duplicados

CAPÍTULO 5. Tratamiento de datos sobre libros de Excel externos

5.1. LAS CADENAS DE CONEXIÓN

5.2. LEYENDO LIBROS EXTERNOS

5.3. CARACTERÍSTICAS DE LOS LIBROS EXTERNOS

5.4. BASES DE DATOS SIN CABECERA

5.5. RECORDSET IN MEMORY

5.6. RECORDSET IN MEMORY PÚBLICO, ACCESIBLE DESDE OTROS PROCEDIMIENTOS

5.7. EXPORTACIÓN A UNA HOJA EXTERNA

CAPÍTULO 6. Interaccionando con Access

6.1. ACCEDIENDO A TABLAS Y CONSULTAS DE ACCESS

6.2. CONSULTAS CON VARIAS TABLAS

6.3. CONCATENACIÓN DE CADENAS

6.4. EXPORTACIÓN DE DATOS DE EXCEL A TABLAS DE ACCESS

6.5. CONECTANDO DOS BASES DE ACCESS EXTERNAS DESDE EXCEL

6.6. ACCEDIENDO A TABLAS A LAS QUE NO SE PERMITE ACCEDER DESDE MICROSOFT QUERY

6.7. CONSULTA DE UN EXCEL DESDE ACCESS O DESDE OTRO EXCEL CON MODIFICACIÓN DE CAMPOS INCLUIDA

6.8. CREAR UNA TABLA EN ACCESS PARTIENDO DE UN EXCEL EXTERNO

CAPÍTULO 7. Interrelación con dBASE

7.1. CONSULTAS DE FICHEROS .DBF

7.2. EXPORTACIÓN DE EXCEL A .DBF

7.3. OTRA OPCIÓN DE LEER LOS FICHEROS .DBF

7.4. FILTROS Y AGRUPACIONES

CAPÍTULO 8. Interrelación con ficheros de texto

8.1. CONSULTAS SOBRE FICHEROS DE TEXTO

8.2. TRASPASO DE UNA CONSULTA A UN FICHERO DE TEXTO

8.3. FSO: FILE SYSTEM OBJECTS, EJEMPLOS Y OPCIONES

CAPÍTULO 9. Excel y SQL Server

9.1. CONSULTAS SOBRE TABLAS DE SQL SERVER

9.2. LISTAR TODAS LAS TABLAS DE SQL SERVER

9.3. GUARDAR UNA CONSULTA DE EXCEL EN SQL SERVER

9.4. RESTABLECER FORMATOS EN IMPORTACIONES DE SQL SERVER

9.5. EJECUTAR PROCEDIMIENTOS ALMACENADOS

9.6. MODIFICACIÓN Y/O BORRADO DE REGISTROS DE UNA TABLA DE SQL SERVER

9.7. CAMBIO DE LAS CARACTERÍSTICAS DE UN CAMPO DE UNA TABLA

9.8. BÚSQUEDA EN SQL SERVER MEDIANTE ÍNDICES

CAPÍTULO 10. Consideraciones finales: pequeñas herramientas

10.1. CLONACIÓN DE UN RECORDSET

10.2. ANIDAMIENTO DE SENTENCIAS SQL

10.3. NUMERACIÓN DE REGISTROS

10.4. CREACIÓN DE CAMPO CON UN SELECT EN LA PROPIA TABLA

10.5. CREAR ACUMULADOS DE UN CAMPO

10.6. CALCULAR LAS DIFERENCIAS DE UN CAMPO CON EL ANTERIOR

10.7. CAMBIO DE NOMBRE DE UN CAMPO

INTRODUCCIÓN

Las bases de datos en nuestra sociedad están a la orden del día: contabilidad, nóminas, ventas, almacén y movimientos, visitas a la web... ¿Nos sirven de algo si no los analizamos? La respuesta es simple y es evidente: si no lo hacemos, de poco servirán. Y, puestos ya a manipular grandes cantidades de datos, ¿no nos hemos encontrado muchas veces que se ha colgado el ordenador sin haber grabado previamente y hemos tenido que volver a empezar trabajando con Excel?

Una de las muchas preguntas sobre este tema que seguramente todos, en un momento u otro, contestaríamos afirmativamente.

Estos pequeños apuntes que encontrará a continuación no pretenden ser una disertación ni un gran análisis sobre bases de datos, sino aportar a los usuarios que tienen que bregar cada día con ellas una serie de herramientas para facilitar su trabajo: primero, el más manual, como puede ser la obtención, copia, selección y filtros desde y hacia otras bases y, segundo, con un ahorro de tiempo que el primer punto facilita, realizar el análisis, que es lo más importante.

El lenguaje SQL tiene una gran potencia. Y desgraciadamente, pudiéndose emplear con Excel para aprovecharlo, se utiliza más bien poco. Incluso muchos usuarios desconocen la herramienta de Microsoft Query que lleva incorporada desde hace bastantes versiones, concretamente desde la del 97.

La información que se detalla a continuación va destinada a todos los que utilizan Excel, sean del sector que sean, ya que les será de utilidad. Muchos ejemplos están basados en contabilidad (porque es mi sector), pero en cuanto a las bases de datos da lo mismo el sector que sea uno. Siempre se encontrará una aplicación que facilitará el trabajo que realizar.

La idea de escribirla y la ilusión en hacerlo es que sirvan a muchos que, como yo, si lo hubiésemos sabido antes, nos habría facilitado el trabajo.

Para acabar esta pequeña introducción, todos los ejemplos se pueden descargar de la web de la editorial Marcombo para poder probar los ejemplos a medida que los vaya leyendo y evitar el engorro de copiarlos. La página web donde se pueden descargar es www.marcombo.info, en el apartado de los contenidos adicionales, a los que se accede mediante el código que se encuentra enmarcado en las primeras páginas de este libro.

Todas las macros expuestas en este libro las encontrará en los distintos libros de Excel descargables. Muchas de ellas con más anotaciones y opciones de las que se encuentran aquí. Estas amplían sin duda los puntos expuestos. También hay un libro de Excel con una macro que permite buscar una determinada macro, indicando en qué libro y módulo está.

Animamos al lector a que se adentre en el campo de las bases de datos sin ningún miedo, porque podrá analizarlas y encontrar siempre una nueva idea, explicación o causa con una herramienta muy sencilla pero también muy potente, la hoja de cálculo Excel. Si con este libro se logra este objetivo, habrá valido el esfuerzo de recopilación que ha hecho posible estas páginas.

CAPÍTULO 1.
Bases de datos: qué son y su estructura

Una base de datos es un conjunto de información perteneciente a un mismo contexto, ordenada de modo sistemático para su posterior análisis. Obviamente, de este análisis se debe obtener una información relevante y útil.

Actualmente existen muchas formas de bases de datos: basta ver a nuestro alrededor, tanto en el mundo de la empresa, como la contabilidad, los ficheros de personal y nóminas, los movimientos de almacén, las ventas y los distintos clientes con los productos demandados..., hasta los de la vida ordinaria, como los datos almacenados en la web, en la nube, los que manejamos con el teléfono, hoteles a los que accedemos a través de un clic, etc. Se podrían llenar hojas y hojas con listas interminables.

Las bases de datos son el producto de la necesidad humana de almacenar la información para preservarla del tiempo y el deterioro y poder acudir a ella posteriormente. Y, con la ayuda de los ordenadores, apareció un medio indispensable en la actualidad para guardar enormes cantidades de datos en espacios físicos limitados.

El manejo de las bases de datos se lleva a cabo mediante sistemas de gestión, llamados DBMS (Database Management Systems) o sistemas de gestión de bases de datos, digitales y automatizados, que permiten el almacenamiento ordenado y la rápida recuperación de la información.

En la conformación de una base de datos se pueden seguir diferentes modelos y paradigmas, cada uno dotado de características, ventajas y dificultades, haciendo énfasis en su estructura organizativa, su jerarquía, su capacidad de transmisión o de interrelación, etc.

1.1 CLASIFICACIÓN DE LAS BASES DE DATOS

Existen diferentes clasificaciones de las bases de datos, atendiendo a distintas características y necesidades:

Según su variabilidad: Conforme a los procesos de recuperación y preservación de los datos, podemos hablar de:

• Bases de datos estáticas. Son las típicas de las áreas de análisis histórico, siendo bases de datos de solo lectura, de las que se puede extraer información, pero no modificarla. En el mundo de la empresa podría ser el diario de contabilidad de un ejercicio cerrado al que se acudirá para realizar consultas.

• Bases de datos dinámicas. Además de las operaciones básicas de consulta que se han visto en el punto anterior, estas bases de datos manejan procesos de actualización, reorganización, añadidura y borrado de información. Continuando en el mundo de la empresa, sería el diario del ejercicio actual al que se van añadiendo los asientos que se van produciendo por la actividad de la misma. Los movimientos de almacén o los clics de los visitantes de nuestra web.

Según su contenido: De acuerdo con la naturaleza de la información contenida, pueden ser:

• Bibliográficas. Contienen material diverso de lectura, como libros, revistas y similares, ordenado a partir de información clave como son los datos del autor, del editor, del año de aparición, del área temática o del título del libro, entre otras características.

• De texto completo. Textos históricos o documentales, cuya preservación debe ser primordial, considerándose fuentes primarias.

• Directorios. Listados enormes de datos personalizados o de direcciones de correo electrónico, números telefónicos, etc.

• Especializadas. Bases de datos de información muy especializada o técnica, pensadas a partir de las necesidades puntuales de un público determinado que consume dicha información. En el mundo de la empresa se encontrarían las bases de datos contables, diario, plan de cuentas, diario de ventas y compras, personal y nóminas, movimientos de almacén y sus correspondientes artículos, historiales de personal, médicos, pacientes, etc.

Por tanto, se define una base de datos como una serie de datos organizados y relacionados entre sí, los cuales se recolectan y explotan por los sistemas de información de una empresa, negocio en particular, entidad, etc.

1.2 CARACTERÍSTICAS DE LAS BASES DE DATOS

Entre las características más importantes de las bases de datos, podemos enumerar las siguientes:

• Independencia lógica y física de los datos

• Redundancia mínima

• Acceso concurrente por parte de múltiples usuarios

• Integridad de los datos

• Consultas complejas optimizadas

• Seguridad de acceso y auditoría

• Respaldo y recuperación

• Acceso a través de lenguajes de programación estándar

Y, de acuerdo con todo ello, las ventajas y desventajas de las bases de datos podrían ser las que se enumeran en los puntos siguientes.

1.2.1 Ventajas de las bases de datos

Control sobre la redundancia de datos. Los sistemas de ficheros pueden almacenar varias copias de los mismos datos en ficheros distintos. Si se produce esto, se desperdicia espacio de almacenamiento, además de provocar la falta de consistencia de datos. En los sistemas de bases de datos todos estos ficheros están integrados, por lo que no se almacenan varias copias de los mismos datos.

Consistencia de datos. Eliminando o controlando las redundancias de datos se reduce en gran medida el riesgo de que haya inconsistencias. Si un dato está almacenado una sola vez, cualquier actualización se debe realizar también solo una vez. Así estará disponible para todos los usuarios inmediatamente. Si un dato está duplicado y el sistema conoce esta redundancia, el propio sistema debe encargarse de garantizar que todas las copias se mantienen consistentes. Por desgracia, no siempre es así.

Compartir datos. En los sistemas de ficheros, estos pertenecen a las personas o a los departamentos que los utilizan. Pero, en los sistemas de bases de datos, estas pertenecen a la empresa y pueden ser compartidas por todos los usuarios que estén autorizados.

Mantenimiento de estándares. Gracias a la integración es más fácil respetar los estándares necesarios, tanto los establecidos a nivel de la empresa como los nacionales e internacionales. Estos estándares pueden establecerse sobre el formato de los datos para facilitar su intercambio; pueden ser estándares de documentación, procedimientos de actualización y también reglas de acceso.

Mejora en la integridad de datos. La integridad de la base de datos se refiere a la validez y la consistencia de los datos almacenados. Normalmente, la integridad se expresa mediante restricciones o reglas que no se pueden violar. Estas restricciones se pueden aplicar tanto a los datos como a sus relaciones, y es el SGBD, sistema de gestión de bases de datos, quien se debe encargar de mantenerlas.

Mejora en la seguridad. La seguridad de la base de datos es la protección de esta frente a usuarios no autorizados. Sin unas buenas medidas de seguridad, la integración de datos en los sistemas de bases de datos hace que estos sean más vulnerables que en los sistemas de ficheros.

Mejora en la accesibilidad a los datos. Muchos SGBD proporcionan lenguajes de consultas o generadores de informes que permiten al usuario hacer cualquier tipo de consulta sobre los datos, sin que sea necesario que un programador escriba una aplicación que realice tal tarea.

Mejora en la productividad. El SGBD proporciona muchas de las funciones estándar que el programador necesita escribir en un sistema de ficheros. A nivel básico, el SGBD proporciona todas las rutinas de manejo de ficheros típicas de los programas de aplicación. Al programador, el hecho de disponer de estas funciones le permite centrarse en la función específica requerida por los usuarios, sin tener que preocuparse de los detalles de implementación de bajo nivel.

Mejora en el mantenimiento. En los sistemas de ficheros, las descripciones de los datos se encuentran inmersas en los programas de aplicación que los manejan. Esto hace que los programas sean dependientes de los datos, de modo que un cambio en su estructura, o un cambio en el modo en que se almacena en disco, requiere cambios importantes en los programas cuyos datos se ven afectados. Sin embargo, los SGBD separan las descripciones de los datos de las aplicaciones. Esto es lo que se conoce como independencia de datos, gracias a la cual se simplifica el mantenimiento de las aplicaciones que acceden a la base de datos.

Aumento de la concurrencia. En algunos sistemas de ficheros, si hay varios usuarios que pueden acceder simultáneamente a un mismo fichero, es posible que el acceso interfiera entre ellos de modo que se pierda información o se pierda la integridad. La mayoría de los SGBD gestionan el acceso concurrente a la base de datos y garantizan que no ocurran problemas de este tipo.

Mejora en los servicios de copias de seguridad. Muchos sistemas de ficheros dejan que sea el usuario quien proporcione las medidas necesarias para proteger los datos ante fallos en el sistema o en las aplicaciones. Los usuarios tienen que hacer copias de seguridad cada día y, si se produce algún fallo, utilizar estas copias para restaurarlas. En este caso, todo el trabajo realizado sobre los datos desde que se hizo la última copia de seguridad se pierde y se tiene que volver a realizar. Sin embargo, los SGBD actuales funcionan de modo que se minimiza la cantidad de trabajo perdido cuando se produce un fallo.

1.2.2 Desventajas de las bases de datos

Complejidad. Los SGBD son conjuntos de programas que pueden llegar a ser complejos con una gran funcionalidad. Es preciso comprender muy bien esta funcionalidad para poder realizar un buen uso de ellos.

Coste del equipamiento adicional. Tanto el SGBD como la propia base de datos pueden hacer que sea necesario adquirir más espacio de almacenamiento. Además, para alcanzar las prestaciones deseadas, es posible que sea necesario adquirir una máquina más grande o que se dedique solamente al SGBD. Todo esto hará que la implantación de un sistema de bases de datos sea más cara.

Vulnerable a los fallos. El hecho de que todo esté centralizado en el SGBD hace que el sistema sea más vulnerable ante los fallos que puedan producirse. Por ello, deben tenerse copias de seguridad, llamadas backup.

1.3 TIPOS DE BASES DE DATOS

Entre los diferentes tipos de base de datos, podemos encontrar los siguientes:

MySql: Es una base de datos con licencia GPL (General Public License), aunque solo en parte, basada en un servidor. Se caracteriza por su rapidez. No es recomendable para grandes volúmenes de datos.

PostgreSql y Oracle: Son sistemas de base de datos poderosos. Administran muy bien grandes cantidades de datos, y suelen ser utilizadas en intranets y sistemas de gran calibre.

Access: Es una base de datos desarrollada por Microsoft. Esta base de datos debe ser creada bajo el programa Microsoft Access, el cual crea un archivo .mdb o .accdb.

Microsoft SQL Server: Es una base de datos más potente que Access desarrollada por Microsoft. Se utiliza para manejar grandes volúmenes de informaciones.

Estas bases de datos poseen muchos elementos en común, y todas ellas con el siguiente orden jerárquico:

1. Tablas

2. Campos

3. Registros

4. Lenguaje SQL

El lenguaje SQL es el más universal en los sistemas de base de datos. Este lenguaje permite realizar consultas a las bases de datos para mostrar, insertar, actualizar y/o borrar información.

Cada base de datos se compone de una o más tablas que guardan un conjunto de datos. Cada tabla se compone de una o más columnas, llamadas campos, y también de filas, que se denominan registros. Las columnas o campos guardan una parte de la información y el conjunto de campos conforman un registro, de acuerdo con el siguiente gráfico:


Los campos que se pueden ver en la figura anterior, cuyo nombre es DIARIO, son FECHA, SUBCTA, CONCEPTO, DEBE, HABER, MES y 3DIG.

El conjunto de estos campos conforma un registro. El registro carece de nombre; solo tiene un número de orden, que será el que tenga porque le toca, pero se podrán ordenar con base en distintos criterios.

En este caso se podría ordenar por FECHA o por SUBCTA, o por la combinación de varios campos, subordinados los posteriores a los anteriores. Sería el caso de ordenar por FECHA y luego por SUBCTA.

El lenguaje que sirve para realizar estas operaciones es el lenguaje SQL, que tiene variantes según las bases de datos. No es exactamente el mismo el que se utiliza en SQL Server del que se utiliza en MySql o Access, a pesar de que algunos programas o sistemas sean de un mismo fabricante. Aunque, frente a esta dificultad, la ventaja es que son muy parecidos. Sirva esto de consuelo.

Si se quiere enlazar datos de una tabla con otra, aparecen las CONSULTAS o QUERIES. Para ello debe haber un campo en cada tabla que sirva de nexo entre ellas. Sería el caso del campo SUBCTA en la figura vista anteriormente, con el campo CUENTA en una tabla del plan de cuentas. De esta manera, de una forma práctica se evitará la redundancia de datos.

Y otra ventaja de las consultas es que, establecido el nexo, se pueden seleccionar todos los campos de ambas tablas o los campos de una u otra que se necesiten. Y, además, se pueden crear nuevos campos que provengan de los existentes: podría ser el caso de un nuevo campo que podría llamarse AÑO, obtenido por la aplicación de la función YEAR sobre el campo FECHA.

El tratamiento de la consulta obtenida sería parecido al que se realiza en una tabla existente. Y la consulta, que tal y como se ha explicado se ha realizado vinculando dos tablas, se podría hacer con más tablas.

Y, en lugar de un solo nexo, puede haber varios:


En este caso, se relacionan dos tablas: CoDia y CoPla. Una es un diario contable que tiene el código de cuenta en DIACTA, al que le falta la descripción, que está en CoPla, para evitar redundancias. Si se modifica esta descripción en CoPla, quedará modificada en todas las consultas que se hagan porque en estas se relaciona la empresa con el código de cuenta.

La flecha indica que en el caso de que no se encuentre la correspondiente cuenta de CoDia en CoPla, se muestre la cuenta de CoDia sin descripción. Si no hubiese ninguna flecha, solo se mostrarían los campos coincidentes. Más adelante, en el capítulo dedicado a las consultas de Access o del Query de Excel, ya se verá cómo se indica esta condición.

La selección de los campos que aparecen en la consulta puede ser selectiva o hacer que aparezcan todos. Esto último suele ser pesado, a no ser que haya pocos campos en las tablas constitutivas de las consultas.


En este ejemplo, se han seleccionado diversos campos de la tabla CoDia; un campo, PLADES, de la tabla CoPla, y el campo DEBE, resultante de aplicar una función a un campo de CoDia.

Esta consulta se ha realizado con el programa Microsoft Access, que permite crearlas en un entorno gráfico en casi su totalidad. Y también permite obtener la sentencia SQL que la conforma. En este caso esta sentencia sería:


En el capítulo dedicado al lenguaje SQL se analizará cómo se elaboran estas instrucciones.

1.4 MICROSOFT EXCEL COMO BASE DE DATOS

Una vez vistas las características principales de las bases de datos, ¿se puede decir que Microsoft Excel es un SGBD?


No, Microsoft Excel no es un sistema de gestión de bases de datos. Aunque hay muchas personas que utilizan Excel para almacenar información, no lo convierte en un SGBD, o sistema de gestión de bases de datos.

Excel no tiene un servicio que controle la inserción o eliminación de los datos, sino que es el mismo usuario quien puede o debe hacerlo directamente en la aplicación.

Otras desventajas de utilizar Excel para almacenar nuestros datos son:

• Solo un usuario puede acceder a la información al mismo tiempo.

• Excel irá más lento a medida que la base de datos crezca.

• No es posible establecer un nivel de seguridad avanzado como para proteger ciertos datos de determinados usuarios.

Pero a pesar de ello, si se diseña y organiza adecuadamente la información dentro de un libro de Excel, se podrán tratar los datos de una manera fácil y eficiente.

A partir de aquí veremos las mejores técnicas para crear y trabajar con bases de datos en Excel que permitan organizar y estructurar adecuadamente la información, dentro de las técnicas del Self Service Business Intelligence.

1.4.1 Requisitos importantes que tener en cuenta

En el momento en el que se quiera construir una base de datos en Excel, habrá que tener en cuenta una serie de puntos para que dicha base de datos funcione:

• No puede haber columnas vacías entre un campo y otro.

• Todas las columnas deben tener un nombre, que será el que se asignará como nombre de campo. Este nombre estará en la primera fila de la base de datos.

• Si no se asignase nombre, habrá que decírselo a Excel ya que, de lo contrario, tomaría como nombre la primera fila de datos o lo asignaría por defecto.

• Tampoco puede haber filas vacías entre un registro y el siguiente, ya que Excel puede tomar la fila vacía como un registro vacío o finalizar la base de datos en el registro anterior a la fila vacía.

Todos estos puntos hay que tenerlos muy en cuenta tanto si se trabaja con las instrucciones propias de bases de datos como cuando se trabaje con SQL.

1.4.2 Las funciones de Excel para bases de datos

Las funciones que se pueden utilizar en Excel para la manipulación de bases de datos son básicamente las siguientes:


BDCONTAR Cuenta el número de celdas que contienen números en la base de datos
BDCONTARA Cuenta el número de celdas no vacías de la base de datos
BDDESVEST Calcula la desviación estándar a partir de una muestra de entradas seleccionadas en la base de datos
BDDESVESTP Calcula la desviación estándar en función de la población total de las entradas seleccionadas de la base de datos
BDEXTRAER Extrae de la base de datos un único registro que cumple los criterios especificados
BDMAX Devuelve el valor máximo de las entradas seleccionadas de la base de datos
BDMIN Devuelve el valor mínimo de las entradas seleccionadas de la base de datos
BDPRODUCTO Multiplica los valores de un campo concreto de registros de la base de datos que cumplen los criterios especificados
BDPROMEDIO Devuelve el promedio de las entradas seleccionadas en la base de datos
BDSUMA Agrega los números de la columna de campo de los registros de la base de datos que cumplen los criterios
BDVAR Calcula la varianza a partir de una muestra de entradas seleccionadas de la base de datos
BDVARP Calcula la varianza a partir de la población total de entradas seleccionadas de la base de datos

Independientemente de estas funciones propias del tratamiento de bases de datos, se podrán utilizar también las funciones de la hoja como:


BUSCARH Busca en la fila superior de una matriz y devuelve el valor de la celda indicada
BUSCARV Busca en la primera columna de una matriz y se mueve en horizontal por la fila para devolver el valor de una celda
COINCIDIR Busca valores de una referencia o matriz
COLUMNA Devuelve el número de columna de una referencia
FILA Devuelve el número de fila de una referencia
COLUMNAS Devuelve el número de columnas de una referencia
FILAS Devuelve el número de filas de una referencia
DIRECCION Devuelve una referencia como texto a una sola celda de una hoja de cálculo
ELEGIR Elige un valor de una lista de valores
INDICE Utiliza un índice para elegir un valor de una referencia o matriz
INDIRECTO Devuelve una referencia indicada por un valor de texto
TRANSPONER Devuelve la trasposición de una matriz

1.4.3 Ejemplos de las funciones de Excel para bases de datos

La mejor manera de entender el funcionamiento de las funciones de bases de datos vistas en el punto anterior es con ejemplos. A continuación, partiendo de una tabla de Excel se va a ver la construcción y funcionamiento de estas funciones sobre una hoja.

La tabla con la que se va a trabajar es la siguiente, situada en las celdas A1 a D7, que consta de cuatro campos y seis filas, más la que sirve de cabecera.


Las condiciones se pueden ver en la columna F y la utilización de las distintas funciones en la columna G. Las fórmulas que están en la columna H son solo la transcripción de las fórmulas de la columna G.


Las funciones indicadas en las celdas G2, G3 y G4 son equivalentes, para poder demostrar las maneras que se pueden implementar. Así, si BDCONTAR tiene tres argumentos, siendo el primero el correspondiente a la constitución de la base de datos, el segundo al nombre del campo y el tercero a la condición, la forma de indicar la base de datos es válida de estas dos maneras:

funciones!$A$1:$D$7 A1:D7

Incluso con un nombre de la tabla, de tenerlo como, por ejemplo, Tabla4[#Todo]

El propio Excel, al realizar la selección de una base de datos en forma de tabla, señala que se ha seleccionado toda con la indicación entre corchetes de [#Todo] después del nombre de la misma.


Se indica así, sin necesidad de ninguna otra intervención del usuario, al señalar la tabla entera.

Todas las otras funciones de base de datos que comienzan con BD se pueden ver en el siguiente gráfico:


Todas estas funciones se han mostrado con una condición única. Pero pueden construirse también con varias condiciones.

Y estas condiciones tanto pueden ser con la condición Y como con la condición O. Bastará con colocarlas en la misma fila o en filas distintas.

Gráficamente sería:


Las condiciones son las que utiliza normalmente Excel:


Todas las funciones de bases de datos tienen la misma estructura en cuanto a los argumentos:

- Dirección de la base de datos: mediante rango directo o mediante nombre de rango o tabla.

- Nombre del campo sobre el que se va a hacer la consulta, filtro, etc. Si hay varios, habrá que indicar solamente el primero. Se puede tomar de donde se quiera o indicarlo directamente.

- Dirección de la condición.


Las condiciones pueden estar establecidas de varias maneras siendo todas ellas válidas, tal como puede verse en el gráfico anterior. No hace falta que en las condiciones estén todos los campos, sino solamente los estrictamente necesarios.

CAPÍTULO 2.
SQL: el lenguaje de las bases de datos

Debido a la diversidad de lenguajes y de bases de datos existentes, la manera de comunicarse entre unos y otras sería realmente complicada de gestionar si no fuese por la existencia de estándares que permiten realizar las operaciones básicas de una forma universal.

De eso es lo que trata el SQL, Structured Query Language, que no es más que un lenguaje estándar de comunicación con bases de datos.

Hablamos, por tanto, de un lenguaje normalizado que permite trabajar con cualquier tipo de lenguaje, sea ASP.NET o PHP para entornos web, en combinación con cualquier tipo de base de datos: MS Access, Excel, SQL Server o MySQL.

En el caso que nos ocupa, acceder a bases de datos desde Excel para recuperar información de manera muy rápida y eficiente de las bases de datos indicadas en el punto anterior se hará con Visual Basic, así como también exportar a ficheros de texto, csv o txt, o dBASE. El lector lo encontrará en los próximos capítulos.

El hecho de que sea estándar no quiere decir que sea idéntico para cada base de datos. Determinadas bases de datos implementan funciones específicas que no tienen necesariamente que funcionar en otras.

Aparte de esta universalidad, el SQL posee otras dos características muy apreciadas. Por una parte, presenta una gran potencia y notable versatilidad que ciertamente contrasta, por otra, con su facilidad de aprendizaje.

2.1. CATEGORÍAS DE DATOS

Como ya se ha dicho en el capítulo anterior, una base de datos está compuesta de tablas donde se almacenan registros con información homogénea, compuestos por distintos campos.

Por tanto, previamente habrá que considerar la naturaleza de los valores que se introducen en estos campos. Dado que una base de datos trabaja con todo tipo de información, es importante especificar qué tipo de valor se introducirá, de manera que, por un parte, se facilite su búsqueda en cualquier momento y, por otra, se optimicen los recursos de memoria.

Cada base de datos trabaja con tipos de valores de campo que no necesariamente están presentes en otras. Sin embargo, existen unas categorías o tipos que están representados en la totalidad de estas bases.

Los más comunes son los siguientes:


Alfanuméricos Contienen cifras y letras Tienen una longitud limitada: 255 caracteres
Numéricos Existen varios tipos, aunque los más comunes son los enteros, sin decimales y los reales, con decimales
Booleanos Poseen dos formas: Verdadero y Falso, Sí o No
Fechas Almacenan fechas facilitando su explotación, ya que almacenar fechas posibilita la ordenación de registros cronológicamente o el cálculo de días entre una y otra
Memos Son campos alfanuméricos de longitud ilimitada. Presentan el inconveniente de no poder ser indexados
Autoincrementables Son campos numéricos enteros que incrementan en una unidad su valor para cada registro incorporado. Por tanto, sirven de identificador, ya que resultan exclusivos de un registro

2.2. TIPOS DE DATOS

Si en el punto anterior se ha visto el tipo de campos que puede haber en una base de datos, aquí se van a enumerar los tipos de datos en SQL Server, en el bien entendido que son los más comunes, pero no por ello compatibles al cien por cien y con una correspondencia exacta en Excel o en otras bases de datos.


Grupo Tipo Intervalo
Numéricos exactos bigint De -263 a 263
int De -231 a 231
smallint De -215 a 215
tinyint De 0 a 255
bit Tipo de datos entero que puede aceptar los valores 1, 0 o NULL
decimal, numeric, decimal (p, s) p (precisión): el número total máximo de dígitos decimales que se puede almacenar, tanto a la izquierda como a la derecha del separador decimal. La precisión debe ser un valor comprendido entre 1 y la precisión máxima de 38. La precisión predeterminada es 18 s (escala): el número máximo de dígitos decimales que se puede almacenar a la derecha del separador decimal. La escala debe ser un valor comprendido entre 0 y p. Solo es posible especificar la escala si se ha especificado la precisión. La escala predeterminada es 0. Con precisión máxima de -1038 y 1038
money Tipos de datos que representan valores monetarios o de moneda: de -922 337 203 685.4775808 a 922 337 203 685.4775807
smallmoney De -214.7483648 a 214.7483647
Numéricos aproximados float De -2.23E-308, 0 a de 2.23E-308
real De -3.40E a 3.40E + 38
Fecha y hora datetime Del 1 de enero de 1753 hasta el 31 de diciembre de 9999
smalldatetime Del 1 de enero de 1900 hasta el 6 de junio de 2079
Cadenas de caracteres char (n) Caracteres no Unicode de longitud fija, con una longitud de n bytes, y n debe ser un valor entre 1 y 8000
varchar (n) Caracteres no Unicode de longitud variable. n indica que el tamaño de almacenamiento máximo es de 231 bytes
text En desuso y sustituido por varchar
Cadenas de caracteres unicode nchar (n) Datos de carácter Unicode de longitud fija, con n caracteres. n debe estar comprendido entre 1 y 4000
nvarchar (n) Datos de carácter Unicode de longitud variable. n indica que el tamaño máximo de almacenamiento es 231 bytes
ntext (n) En desuso, sustituido por nvarchar
Cadenas binarias binary (n) Datos binarios de longitud fija con una longitud de n bytes, donde n es un valor que oscila entre 1 y 8000
varbinary (n) Datos binarios de longitud variable. n indica que el tamaño de almacenamiento máximo es de 231 bytes
image En desuso, sustituido por varbinary
Otros tipos de datos cursor Tipo de datos para las variables o para los parámetros de resultado de los procedimientos almacenados que contiene una referencia a un cursor. Las variables creadas con el tipo de datos cursor aceptan NULL
timestamp Tipo de datos que expone números binarios únicos generados automáticamente en una base de datos El tipo de datos timestamp es simplemente un número que se incrementa y no conserva una fecha o una hora
sql_variant Tipo de datos que almacena valores de varios tipos de datos aceptados en SQL Server, excepto text, ntext, image, timestamp y sql_variant
uniqueidentifier Es un GUID (Globally Unique Identifier, Identificador Único Global)
table Es un tipo de datos especial que se puede utilizar para almacenar un conjunto de resultados para su procesamiento posterior: table se utiliza principalmente para el almacenamiento temporal de un conjunto de filas devuelto como el conjunto de resultados de una función con valores de tabla
xml Almacena datos de XML. Puede almacenar instancias de xml en una columna o una variable de tipo xml

Valga la pena repetir que, si se importa una tabla o una consulta de SQL Server a Excel, en la hoja de cálculo habrá la precisión propia de esta. Recordemos que en Excel los valores numéricos tienen una precisión de hasta 15 dígitos. Por tanto, si en una celda se introduce el valor 123456789012345, Excel lo guardará con la precisión indicada, ya que el número consta exactamente de 15 dígitos, pero si se agrega un 6 al final del número anterior para tener el valor numérico 1234567890123456, Excel guardará dicho número con el valor 1234567890123450.


Aunque este tema podría parecer preocupante, la realidad es que muy pocos usuarios de Excel tienen problemas con esta limitación porque nunca se llegan a manejar valores numéricos que requieran más de 15 dígitos.

Darmowy fragment się skończył.

Gatunki i tagi

Ograniczenie wiekowe:
0+
Objętość:
285 str. 259 ilustracji
ISBN:
9788426733412
Wydawca:
Właściciel praw:
Bookwire
Format pobierania:

Podobne książki