Índice de coincidencia con valores duplicados y celdas en blanco

0

Estoy tratando de hacer referencia a una sola fila, un estado diferente y su fecha correspondiente. Cada uno de estos valores se almacena en columnas con referencias afiliadas (= duplicadas) y debajo de cada estado hay celdas en blanco. Lo único bueno es que los valores se afirman de mayor a menor en cada estado correspondiente. Por lo tanto, necesito hacer coincidir una condición específica para recuperar el enésimo (más pequeño o más grande) valor en lugar de la primera coincidencia.

Imagen

John12341
fuente
1
¿Puede editar su pregunta con más información? Quizás también quieras leer esto . Tal como están las cosas, ni siquiera sabemos si la captura de pantalla que proporciona son datos existentes o resultados esperados. También sería útil saber qué ha intentado hasta ahora y cómo difiere del resultado esperado.
cybernetic.nomad
1
Esto podría aplicarse: superuser.com/questions/1356819/…
Rey Juna
Hola, gracias a los dos, soy un poco novato. Bueno, la captura de pantalla es una simplificación de los datos que tengo (> 10'000 filas), por lo que son datos existentes y la tabla de la izquierda es la Salida que me gustaría obtener. Usando una fórmula de Índice (Igualar; Igualar) enumere el primer resultado que está en blanco para un estado diferente del aprobado (debido a la forma en que los datos se enumeran en la tabla de la izquierda). Sin embargo, me gustaría extraer la fecha de inicio MÁS PEQUEÑA y la fecha de Retiro MÁS GRANDE, pero no sé exactamente cómo ingresarla en la fórmula de índice (coincidencia; coincidencia). Saludos por cualquier
pista

Respuestas:

0

Aquí hay una forma de usar fórmulas de matriz. En lugar de usar los valores de encabezado (iniciado, retirado, etc.) creé fórmulas separadas para cada columna. Esto simplifica el enfoque y no debería ser una carga a menos que tenga muchas columnas de estado. También supongo que desearía que estas fórmulas comenzaran en la fila 3.

Muestra

Nota: Ambas son fórmulas de matriz y deberá ingresar como Ctrl+ Shft+ Enter(CSE).

Póngalos en la celda designada, CSE, y luego arrástrelos hacia abajo.

K3:

{=IFERROR(INDEX($E$2:$E$14,MATCH(1,(I3=$C$2:$C$14)*(MIN((IF($E$2:$E$14="",1000000,$E$2:$E$14))*(IF(I3=$C$2:$C$14,1,1000000)))=$E$2:$E$14),0),0),"")}

Para MINque funcione correctamente en una fórmula de matriz, tuve que usar IFdeclaraciones que regresan 1,000,000cuando no coincide con su referencia o está en blanco. Ese valor es solo un número arbitrario y solo debe ser mayor que cualquier valor de fecha. (¡Recuerde, las fechas se almacenan como números y 1,000,000serían una fecha en algún momento del año 4637!) Sin esto, la MINfunción encuentra el valor más bajo en la matriz, que será 0.

L3:

{=INDEX($F$2:$F$14,MATCH(1,(I3=$C$2:$C$14)*(MAX(($F$2:$F$14)*(I3=$C$2:$C$14))=$F$2:$F$14),0),0)}

Observe que la fórmula en la columna L regresará 0si no se encuentra nada. En lugar de complicar la fórmula, puede configurar el formato para que sea dd.mm.yy;;;@, lo que ocultará el valor cero. La fórmula en la columna K devolverá un error si no se encuentra nada, así que lo envolví en una IFERRORdeclaración.

Rey Juna
fuente
0

ingrese la descripción de la imagen aquí

Cómo funciona:

  1. Escriba esta fórmula en la celda G2y complete.

    {=IFERROR(INDEX($A$2:$F$11, MATCH(0,COUNTIF($G$1:G1, $A$2:$A$11), 0)),"")}
    

NB Esta es una fórmula de matriz y debe confirmarse con Ctrl+Shift+Enter.

  1. En Cell H2escriba esta fórmula de matriz, confirme con Ctrl + Shift + Enter y complete.

     {=Text(MIN(IF(($A$2:$A$11=G2)*($C$2:$C$11>0),$C$2:$C$11," ")),"dd.mm.yy;;;@")}
    
  2. Escriba esta fórmula de matriz en el I2 acabado de celda con Ctrl + Shift + Enter y rellene.

     {=Text(MAX(IF(($A$2:$A$11=G2)*($D$2:$D$11>0),$D$2:$D$11,"")),"dd.mm.yy;;;@")}
    
  3. La fórmula de matriz en la celda se J2debe terminar con Ctrl + Shift + Enter y rellenar.

    {=IFERROR(INDEX($E$2:$E$11, MATCH(0,COUNTIF($J$1:J1, $E$2:$E$11), 0)),"")}
    

Nota:

  1. Ajuste las referencias de celda en la Fórmula según sea necesario.
Rajesh S
fuente
0

Queridos, gracias por sus respuestas, he descubierto una forma más fácil de unir y extraer estos datos.

Fórmula para recuperar el valor más pequeño: = IFERROR (LOOKUP (1000000; 1 / (($ A $ 2: $ A $ 3169 = G2) * ($ B $ 2: $ B $ 3169 <> "")); $ B $ 2: $ B $ 3169); "")

Fórmula para recuperar el valor más grande = IFERROR (INDEX (D $ 2: D $ 3149; MATCH (1; - ($ A $ 2: $ A $ 3149 = $ G2) * - (D $ 2: D $ 3149 <> ""); 0); 1); "")

Saludos, Solución

John12341
fuente