ORDENAR VALORES UTILIZANDO FÓRMULAS

Hola a todos:

Estos días he recibido multitud de consultas y hoy me gustaría escribir un post muy sencillo sobre la posibilidad de ordenar valores utilizando únicamente fórmulas.

En la consulta inicial me preguntan cómo se pueden ordenar una serie de valores siempre numéricos tanto de menor a mayor como a la inversa, de mayor a menor.

Bien, esto lo podemos hacer con una sencilla fórmula, veamos los datos:

ORDENAR VALORES UTILIZANDO FORMULAS

En este caso es una relación de personas con una cifra que ha alcanzado (de lo que sea, nos vale como ejemplo).

La cuestión es ahora cómo ordenar esos números sin utilizar el filtro o el comando de ordenar de la cinta de opciones.

Pues bien, podemos utilizar la siguiente función:

=K.ESIMO.MAYOR($B$2:B10;FILAS($B$2:B2))

Con  K.esimo.Mayor vamos a obtener el número mayor de un rango, en este caso, al mover la fórmula nos va a ir mostrando el mayor según el rango seleccionado.

Y el resultado será el siguiente:

ORDENAR VALORES UTILIZANDO FORMULAS_1

Como podéis ver, conseguir ordenar el rango de Mayor a Menor. Si necesitamos invertirlo y hacerlo de Menor a Mayor, utilizaremos K.esimo.Menor.

Pero el lector me solicitó si también podía conseguir que se mostrase en otra columna los nombres relacionados con los números ordenados. Y en efecto, sí podemos obtenerlos, y lo vamos a hacer con la siguiente fórmula:

=INDIRECTO(DIRECCION(COINCIDIR(K.ESIMO.MAYOR($B$2:B10;FILAS($B$2:B2));$B$2:B10;0)+1;1))

Dado que con la fórmula inicial podemos ordenar los números en relación a la lista inicial, con la función Coincidir podemos obtener la fila en la que se encuentra nuestro número antes de ordenarlo, y  si sabemos la fila, con la función Dirección podemos obtener la celda que nos interesa de la columna A para obtener el nombre.

Así:

ORDENAR VALORES UTILIZANDO FORMULAS_3

He indicado con flechas en rojo la dirección con la que obtenemos las celdas de referencia que nos interesa.

Ahora, para obtener el nombre, utilizaremos la función indirecto:

ORDENAR VALORES UTILIZANDO FORMULAS_4

Y así, finalmente obtenemos toda la información que necesitamos.

Bien!!

Pero a los pocos días el mismo lector me solicitó si de alguna manera podría incluir rangos dinámicos en ambas fórmulas para no tener que ir actualizando los rangos a mano cada vez que el listado se fuese incrementando.

Pues eso también se puede realizar, la manera es incluyendo la función Desref en las dos fórmulas, y lo haremos sustituyendo en ambas fórmulas la parte que hace referencia a los rangos por:

DESREF($B$2; 0; 0; CONTARA(B:B))

Y así ya podemos obtener la misma información, pero con rangos dinámicos:

Para ordenar:

=K.ESIMO.MAYOR(DESREF($B$2; 0; 0; CONTARA(B:B));FILAS($B$2:B2))

Para obtener los nombres:

=INDIRECTO(DIRECCION(COINCIDIR(K.ESIMO.MAYOR(DESREF($B$2; 0; 0; CONTARA($B:$B));FILAS($B$2:B2));DESREF($B$2; 0; 0; CONTARA($B:$B));0)+1;1);1)

En resumen:

ORDENAR VALORES UTILIZANDO FORMULAS_5

Y eso es todo!. Como podéis observar, lo hemos conseguido.

Es importante comentar que está fórmula es solo válida para datos numéricos y en los que no existen duplicados. Si contamos con duplicados tendríamos que trabajar con una columna auxiliar en la que introducir algún elemento para “desempatar” esos datos, por ejemplo añadiendo una cifra muy pequeña a los números originales.

Descarga el archivo de ejemplo pulsando en: ORDENAR VALORES UTILIZANDO FÓRMULAS

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡Muchas gracias!!

Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies

Anuncios

OBTENER EL VALOR DE UNA CELDA SEGÚN EL VALOR MÁXIMO DE UNA MATRIZ CON VARIAS CONDICIONES (PARTE II)

Hola a todos:

Hoy toca un poco de formulación : )

Hace un tiempo ya desarrollé una matricial para obtener el valor de una celda según el valor máximo de otra celda en una matriz. Esto lo podéis encontrar en este post: OBTENER VALOR DE UNA CELDA SEGÚN EL VALOR MÁXIMO DE UNA MATRIZ

En ese ejemplo utilizábamos tan solo un criterio, el valor del ID y en base a eso encontrar el valor de la celda. Pues bien, imaginad que debemos tener en cuenta dos ID´s más (ID2 e ID3).

Esta es la base de cálculo:

OBTENER EL VALOR DE UNA CELDA SEGUN EL VALOR MAXIMO DE UNA MATRIZ CON VARIAS CONDICIONES (PARTE II)

Un ejemplo de lo que necesitaríamos buscar sería, ID1=1321, ID2=1 e ID3=B

Si usamos un filtro veremos los parámetros, y al igual que en el post anterior, según los criterios de los ID tenemos que obtener el valor de Cantidad1 en función del valor máximo de Cantidad2, es decir 27

OBTENER EL VALOR DE UNA CELDA SEGUN EL VALOR MAXIMO DE UNA MATRIZ CON VARIAS CONDICIONES (PARTE II)_1

Pues bien, para conseguir este resultado, utilizaremos la siguiente fórmula matricial:

{=INDIRECTO(DIRECCION(COINCIDIR(MAX(SI(A:A=H1;SI(B:B=H2;SI(C:C=H3;E:E))));E:E;0);4))}

Para comprender las funciones utilizadas y su funcionamiento os remito al post anterior. En este ejercicio, hemos ampliado únicamente la parte de la función que hace referencia a los criterios y con la que obtendremos el valor del campo Cantidad2: 830

{=MAX(SI(A:A=H1;SI(B:B=H2;SI(C:C=H3;E:E))))}

El resto de la matricial detectará la posición de la celda anterior.

El ejercicio quedaría así:

OBTENER EL VALOR DE UNA CELDA SEGUN EL VALOR MAXIMO DE UNA MATRIZ CON VARIAS CONDICIONES (PARTE II)_2

Como habéis podido ver se trata “anidar” varios condicionales dentro de la función MAX y ejecutar matricialmente la función.

Recordad que para introducir las fórmulas matriciales debemos seleccionar la fórmula y presionar: CTRL + MAYUS + ENTRAR

Y esto es todo, espero que os sea de utilidad : )

Descarga el archivo de ejemplo pulsando en: OBTENER EL VALOR DE UNA CELDA SEGÚN EL VALOR MÁXIMO DE UNA MATRIZ CON VARIAS CONDICIONES (PARTE II)

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡Muchas gracias!!

Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies

CONTAR REGISTROS ÚNICOS CON VARIOS REGISTROS II

Hola a todos:

Hace un tiempo escribí un post en el que, mediante fórmulas, contaba registros únicos teniendo en cuenta varios registros: CONTAR REGISTROS ÚNICOS CON VARIOS CRITERIOS.

Pero lo cierto es que en el post, solamente utilizaba un criterio activo en la fórmula. Por dicho motivo he recibido varias consultas solicitando una ampliación de fórmula con un nuevo criterio.

Pues bien, siguiendo el post anterior, he añadido un nuevo criterio al Excel (Criterio2):

contar registros unicos con varios registros ii

Pues bien, el objetivo es contar aquellas áreas donde el criterio y criterio2 sea >=1

La fórmula que voy a utilizar es la siguiente (matricial):

{=CONTAR(1/FRECUENCIA(SI(Hoja1!$A$2:$A$19=F1;SI(Hoja1!$D$2:$D$19>=1;SI(Hoja1!$B$2:$B$19>=1;COINCIDIR(Hoja1!$C$2:$C$19;Hoja1!$C$2:$C$19;0))));FILA($A$2:$A$19)-FILA(DESREF($A$2:$A$19;;;1;))+1))}

Esta fórmula la podemos aplicar para obtener los tres conceptos que necesitamos. Este es el resultado:

contar registros unicos con varios registros ii_

Efectivamente, para el primer caso, tenemos 3 únicos, lo podemos ver utilizando el filtro:

contar registros unicos con varios registros ii_1

Contariamos cada color como un registro único, recordando que los criterios son >=1 en la columna B y D. El registro en blanco no se tiene en cuenta dado que B es igual a 0.

Os recuerdo que las matrices se introducen: seleccionando la fórmula y luego presionando CTRL + MAYUS + ENTRAR.

Y esto es todo, espero que con esta ampliación sea de mayor utilidad.

Descarga el archivo de ejemplo pulsando en: CONTAR REGISTROS ÚNICOS CON VARIOS REGISTROS II

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡Muchas gracias!!

Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies

USO COMBINADO DE LA FUNCIÓN INDICE Y COINCIDIR

Hola a todos!

Hoy toca formulación!, No todo van a ser macros y programación : )

Hace unos días me enviaron una consulta en la que solicitaban una fórmula para mostrar cierta información.

Os mostraré un ejemplo de sencillo de lo que se buscaba y las fórmulas que utilicé. Primero veamos los datos y que se necesita buscar:

USO COMBINADO DE LA FUNCIÓN INDICE Y COINCIDIR

Como podéis observar, necesitamos mostrar en la columna “B” la fecha que aparece en fila 3, pero en función de la coincidencia del importe que aparece en la columna A. Es decir, en la celda B6 debe aparecer la fecha: “2015”, en la B7: “2016” y así en adelante.

Para hacer esto (se puede hacer de varias formas), os propongo utilizar las funciones COINCIDIR e INDICE.

Con la primera podemos extraer el número de columna en la que se encuentra el dato buscado:

=COINCIDIR(A6;C6:J6;0)

El resultado sería “5”

Con la segunda, vamos a ser capaces de localizar la fecha, debemos analizar su sintaxis para comprenderlo mejor:

Indice (matriz, número de fila, número de columna).

Matriz: sería C3:J3
Fila: la 1
Columna: COINCIDIR(A6;C6:J6;0)

Ambas funciones combinadas darían lugar a esta fórmula:

=INDICE($C$3:$J$3;1;COINCIDIR(A6;C6:J6;0))

Y el resultado es el esperado:

USO COMBINADO DE LA FUNCIÓN INDICE Y COINCIDIR1

Como podéis observar es una función bastante sencilla pero muy eficiente utilizando ambas fórmulas.

Os dejo el archivo para lo probéis : )

Descarga el archivo de ejemplo pulsando en: USO COMBINADO DE LA FUNCIÓN INDICE Y COINCIDIR

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡Muchas gracias!!

Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies

CONTAR REGISTROS ÚNICOS CON VARIOS CRITERIOS

Hola a todos:

Hoy voy a trabajar un poco con formulación clásica de Excel. En concreto vamos a contar registros únicos en función de varios criterios. Para ello he preparado una sencilla tabla con unos datos que nos van a servir de ejemplo:

CONTAR REGISTROS UNICOS CON VARIOS CRITERIOS

Imaginad que queremos contar los registros únicos de la columna C que dependan de “Dirección de Area 1 y que el criterio de la columna B sea mayor o igual a 1. Es decir:

CONTAR REGISTROS UNICOS CON VARIOS CRITERIOS1

Qué los registros únicos serán 3, las Subdirecciones Zona 1.1, 1.2 y 1.3

Para poder realizar esto con una fórmula vamos a utilizar la siguiente función matricial:

{=CONTAR(1/FRECUENCIA(SI(Hoja1!$A$2:$A$18="Dirección Area 1";SI(Hoja1!$B$2:$B$18>=1;COINCIDIR(Hoja1!$C$2:$C$18;Hoja1!$C$2:$C$18;0)));FILA($A$2:$A$18)-FILA(DESREF($A$2:$A$18;;;1;))+1))}

Como podéis ver, estamos usando varios fórmulas, CONTAR, FRECUENCIA, SI, COINCIDIR, FILA y DESREF.

El resultado es el siguiente:

CONTAR REGISTROS UNICOS CON VARIOS CRITERIOS2

Obviamente, la fórmula se puede modificar variando e incluyendo nuevos criterios, solo debéis realizar algunas pruebas.

Os recuerdo que las matrices se introducen: seleccionando la celda que contiene la fórmula, pulsando en F2 , seleccionamos la fórmula y luego presionamos CTRL + MAYUS + ENTRAR

Descarga el archivo de ejemplo pulsando en: CONTAR REGISTROS ÚNICOS CON VARIOS CRITERIOS

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡Muchas gracias!!