Enumerar valores según criterios

Enumerar valores según criterios

Tengo una tabla en una hoja de trabajo llamada "DealSetup" que se parece a esta versión simplificada:

   A           B
1  John Doe    1
2  Jane Doe    1
3  Mark Doe    2
4  Doug Doe    1
5  Mary Doe    2

Tengo una tabla en una hoja de trabajo llamada "Lista" en la que me gustaría extraer los nombres de la hoja de trabajo "DealSetup". Sin embargo, solo quiero enumerar los nombres según el valor de la columna B.

Por ejemplo, en la hoja de trabajo "Lista", me gustaría usar algún tipo de ÍNDICE o función de matriz de algún tipo para mirar la hoja "DealSetup" y extraer a todos los que el valor de la columna B es 1 y enumerarlos. Pero no quiero espacios en blanco. Debe tener un aspecto como este:

 EVERYONE WITH B COLUMN VALUE OF 1:  
   A  
1  John Doe
2  Jane Doe
3  Doug Doe

O así:

 EVERYONE WITH B COLUMN VALUE OF 2:  
   A  
1  Mark Doe
2  Mary Doe

He estado intentando algunas cosas sin suerte. ¡No estoy seguro de adónde ir desde aquí, por lo que agradeceríamos cualquier aportación!

Respuesta1

Asumiendo que sus datos están en DealSetup!A$2:B$6usted, puede usar esta fórmula enList!A2

=IFERROR(INDEX(DealSetup!A$2:A$6,SMALL(IF(DealSetup!B$2:B$6=C$1,ROW(DealSetup!A$2:A$6)-ROW(DealSetup!A$2)+1),ROWS(A$2:A2))),"")

confirme con CTRL+ SHIFT+ ENTERy copie hasta donde sea necesario y más. Cuando te quedas sin nombres, obtienes espacios en blanco.

Asume criterios (1,2, etc.) enC1

ver adjuntolibro de trabajo- intenta cambiar C1a 2

Si los nombres se repiten (dentro de los criterios especificados), los nombres se repetirán; la fórmula se puede modificar para mostrar cada nombre solo una vez, es decir, esta versión.

=IFERROR(INDEX(DealSetup!A$2:A$6,SMALL(IF(DealSetup!B$2:B$6=C$1,IF(COUNTIF(A$1:A1,DealSetup!A$2:A$6)=0,ROW(DealSetup!A$2:A$6)-ROW(DealSetup!A$2)+1)),1)),"")

Respuesta2

Si desea una solución con fórmulas, tendrá espacios en blanco en la parte inferior. No hay forma de que las celdas que contienen la fórmula crezcan y se reduzcan a medida que cambia la lista. Su tabla con fórmulas debe tener la misma altura que sus datos sin procesar para garantizar que no se pierda nada si, por ejemplo, todos tienen una 1columna de entrada B. Si sabe que ese nunca será el caso, puede reducir la cantidad de filas en la Listhoja de trabajo, pero es un riesgo. Aquí hay una fórmula que los devolverá todos en orden con espacios en blanco en la parte inferior. Es una fórmula matricial, así que ingrésala con Ctrl+ Shift+ Enter: (Barry Houdini ya envió una solución similar)

{=IFERROR(INDEX(DealSetup!$A:$A,SMALL(IF(DealSetup!$B:$B=1,ROW(DealSetup!$B:$B)),ROW())),"")}

Si no puede aceptar espacios en blanco en la parte inferior, tendrá que ser una solución de tabla dinámica o VBA. Esta pregunta es bastante antigua, por lo que desafortunadamente no espero ver a OP aquí pronto.

información relacionada