Hola a todos!
El post de hoy surge como respuesta a una consulta de un lector, dice así:
Tengo el siguiente cuadro de inventario:
Columna A códigos que se repiten en varias oportunidades, podrían estar ordenados o no.
Columna B cantidad de unidades que trae una caja de ese producto.
Columna C cantidad de cajas del producto.
Necesitaría obtener el valor de B, pero del valor mas alto de C.
O sea:
A1 = 11809 ; B1 = 10 ; C1 = 2
A2 = 11809 ; B2 = 5 ; C2 = 5
A3 = 11809 ; B3 = 30 ; C3 = 1
El resultado debería ser igual a 11809 = 5
Este ejercicio se puede resolver con código o con fórmulas, para este caso la solución se la envié en forma de función, en realidad una combinación de varias.
Pues bien, para obtener la solución vamos a comenzar con una fórmula matricial que nos va a permitir detectar el valor máximo de la columna C en función de un ID concreto, por ejemplo el 1321 y cuyo resultado será: 777. La fórmula utilizada es la siguiente (recordad que es matricial):
{=MAX(SI(A:A=F1;C:C))}
Ahora que ya conocemos el número más alto, debemos obtener la fila en la que se encuentra, que es la 6. Para ello vamos a utilizar la siguiente fórmula, COINCIDIR:
{=COINCIDIR(MAX(SI(A:A=F1;C:C));C:C;0)}
Una vez que tenemos este dado, debemos obtener las coordenadas de la celda a la izquierda (B6 o $B$6), para ello debemos añadir la función dirección en la que especificaremos que queremos la dirección de la celda 6 en la columna 2, es decir B6:
{=DIRECCION(COINCIDIR(MAX(SI(A:A=F1;C:C));C:C;0);2)}
Finalmente, debemos obtener el valor de esta celda (62), para ello solo nos queda una última función, INDIRECTO:
{=INDIRECTO(DIRECCION(COINCIDIR(MAX(SI(A:A=F1;C:C));C:C;0);2))}
El resultado final es el siguiente:
Y finalmente lo hemos conseguido, el resultado es el que el lector ha indicado y funciona perfectamente. Hemos combinado 5 funciones para crear una que resuelve nuestra necesidad.
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 VALOR DE UNA CELDA SEGÚN EL VALOR MÁXIMO DE UNA MATRIZ
¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.
¡¡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
Hola,
Tengo una pregunta, cómo sería si quisiera que fuera al revés? Es decir, en el primero ejemplo, se busque el valor máximo que sería 99, entonces el resultado sea 1320
Solo tienes que modificar la fórmula, y aplicarla matricialmente
=INDIRECTO(DIRECCION(COINCIDIR(MAX(SI(B:B=F1;C:C));C:C;0);1))
Saludos.
Tengo una matriz de datos y quisiera saber como puedo obtener el encabezado de un dato.
LA CABECERA SON HORAS DE 00 A 24
Por medio de excel se cual es el valor máximo de la matriz (tanto de filas como columnas)
Sabiendo el dato, pero ignorando posición de fila y columna, como me devuelve el encabezado de donde esta ese dato.
Espero me hayas comprendido, si el dato es 25 quiero que excel mediga en que hora ha sido, y eso esta en el encabezado.
Gracias
Teniendo en cuenta que la cabecera va de A1 a Z1 y en B1 a Z2 los números, entre ellos el 25: Escribe en una celda
=INDICE(A1:Z1;1;COINCIDIR(25;A2:Z2;0))
Saludos.