Es posible que en ocasiones quiera ordenar los datos no por orden alfabético o numérico, sino por orden definido por el usuario (también denominado orden personalizado o lógico). Por ejemplo, ordenar los días de la semana para que el lunes aparezca primero tiene más sentido que ordenar por orden alfabético, en el que el viernes aparece primero. Puede ordenar datos en la vista Hoja de datos de una tabla o consulta, o en la vista Formulario de un formulario.
¿Qué desea hacer?
- Ordenar un número pequeño y finito de valores de campo únicos
- Ordenar un gran número de valores de campos únicos
Ordenar un número pequeño y finito de valores de campo únicos
En este procedimiento, escribirá una expresión que use la función SiInm para clasificar los puestos de los empleados.
En primer lugar, cree una tabla que contenga tres campos: Título, Nombre y Apellidos. En el campo Título, escriba los siguientes valores para cuatro registros nuevos:
- Coordinador de ventas internas
- Jefe de ventas
- Representante comercial
- Vicepresidente, Ventas
En los campos Nombre y Apellidos de los cuatro registros, escriba los nombres que quiera.
- Ahora, abra la tabla en la vista Hoja de datos.
- En la pestaña Inicio , en el grupo Ordenar & filtrar , haga clic en Opciones avanzadas y después en Filtrado/Ordenar avanzado en el menú contextual.
- Agregue los campos que desee, como Nombre, Apellido y Título, a la cuadrícula.
- Haga clic con el botón derecho en la fila Campo de la primera columna en blanco, haga clic en Zoom y escriba la siguiente expresión:
IIf([Title] = "Vicepresidente, Ventas", 1,IIf([Title] = "Gerente de ventas", 2,IIf([Title] = "Representante de ventas", 3,IIf([Title] = "Coordinador de ventas internas", 4, 5))))
Título es el nombre del campo que contiene los valores que se van a clasificar. Los valores entre comillas son los valores individuales almacenados en el campo. El valor numérico que sigue es la jerarquía que se le asigna. La expresión anterior asigna los rangos del 1 al 4 a cuatro títulos diferentes, y asigna el rango 5 a todos los demás. Al realizar la ordenación, a los títulos no mencionados en esta expresión se les asigna el mismo rango (5). - En la fila Ordenar de la columna que contiene la expresión, haga clic en Ascendente.
- En la pestaña Inicio , en el grupo Ordenar & filtrar , haga clic en Alternar filtro.
La función SiInm devuelve el valor numérico que corresponde al valor del campo Título. Por ejemplo, si el valor del campo Título es Administrador de ventas, el número asignado es 2. Si hay un valor en el campo Título que no aparece como argumento en la función (por ejemplo, Coordinador de distrito ), se le asigna el número 5. A continuación, la consulta ordena estos números en orden ascendente.
Ordenar un gran número de valores de campos únicos
Si tiene un gran número de valores que clasificar, una mejor manera de ordenar los datos es creando una tabla de búsqueda.
Supongamos que la tabla Empleados hace referencia a más de 50 títulos diferentes. Primero deberá crear una tabla de búsqueda y preparar la tabla existente para buscar la nueva tabla. A continuación, relaciona las dos tablas y crea una consulta.
Crear una tabla de búsqueda y modificar la tabla existente
Cree una nueva tabla de búsqueda que almacenará los títulos. Asigne a la tabla el nombre tblTitles y establezca los campos en los tipos de datos indicados entre paréntesis, como se muestra en la tabla siguiente:
Id. de título
(Autonumeración)Título
(Texto)1 Vicepresidente, Ventas 2 Jefe de ventas 3 Representante comercial 4 Coordinador de ventas internas Establezca el campo Id. de título como clave principal.
Modifique la tabla Empleado para que busque la tabla tblTitles.
- En la vista Diseño, cambie el nombre del campo Título a TitleID.
- En la columna Tipo de datos , cambie el Tipo de datos a Número.
En la pestaña General , en Propiedades de campo, cambie Tamaño del campo a Entero largo.
Guarde la tabla e ignore la advertencia sobre la pérdida de datos.
Cambiar a vista Hoja de datos.
Rellene la columna Títulos con el valor TitleID correspondiente al valor del título.
Por ejemplo, para los registros en los que el valor de Título sea Administrador de ventas, escriba 2. Para representante de ventas, tipo 3.Guarde y cierre la tabla.
Relacionar las dos tablas
- En la pestaña Herramientas de base de datos, en el grupo Relaciones, haga clic en Relaciones.
- En la pestaña Diseño , en el grupo Relaciones , haga clic en Agregar tablas (o Mostrar tablas en Access).
- Seleccione tblTitles y Employees y, después, haga clic en Agregar para agregarlos a la ventana Relaciones. Cierre el cuadro de diálogo Mostrar tabla.
- Arrastre el campo IdDeTítulo de la tabla tblTitles al campo TitleID de la tabla Empleados.
Se abrirá el cuadro de diálogo Modificar relaciones . - Asegúrese de que los nombres de campo mostrados en las dos columnas sean TitleID y también de que el cuadro Tipo de relación muestre Uno a varios. Si es necesario, puede cambiar los nombres de campo.
- Active la casilla Exigir integridad referencial.
- Haga clic en Crear para crear la relación.
El cuadro de diálogo Modificar relaciones se cierra y guarda los cambios. - Cierre la pestaña Relaciones .
Crear una consulta
- En el grupo Consultas de la pestaña Crear, haga clic en Diseño de la consulta.
- En el cuadro de diálogo Agregar tablas (Mostrar tabla en Access), haga clic en la pestaña Tablas , haga doble clic en Empleados y, a continuación, haga doble clic en tblTítulos.
- Agregue los campos IdEmpleado, Apellidos y Nombre de la tabla Empleados y el campo Título de la tabla tblTitles a la cuadrícula de diseño de la consulta.
- Cambiar a vista Hoja de datos.