Excel: ¿Cómo mostrar los 3 "ganadores" principales por edad y sexo?

Excel: ¿Cómo mostrar los 3 "ganadores" principales por edad y sexo?

Me gustaría usar Excel para administrar los datos de un maratón. El maratón agrupa a los ganadores por agey genderen categoryy otorga premios del primero al tercer lugar en cada uno category.

¿Se puede utilizar Excel para determinar los ganadores de forma dinámica, ingresando los datos en una sola hoja de cálculo y haciendo que los resultados se calculen y muestren automáticamente en otra hoja de cálculo de alguna manera?

Tengo una única hoja de trabajo que contiene los siguientes datos para cada fila:

name, age, gender, age category, overall rank

Estoy abierto a enfoques basados ​​en funciones de VBA y Excel. ¡Gracias!

Respuesta1

Si desea actualizar la hoja de trabajo2 cuando se modifican los datos de la hoja de trabajo1, puede usar VBA para crear una página resultante que se actualice dinámicamente.

  • En la pestaña de desarrollador, haga clic en Visual Basic.
  • Expanda la carpeta Objetos de Microsoft Excel y vea el código de la Hoja1
  • Crea una nueva función llamada:

    Private Sub Worksheet_ChangeByVal Target As Range)
    EndSub
    

Esta función se llama cada vez que se modifican los datos de la hoja de trabajo1.

Para actualizar los datos basándose en la columna de clasificación y haciendo estas suposiciones:
Los datos están dentro de estas columnas Nombre: columna A, Edad: columna B, Género: columna C, Categoría: columna D, Clasificación general: columna E

Dentro de la subcomparación Worksheet_Change el valor en la columna E, la columna de clasificación y transferir el contenido de la fila si el competidor se ha ubicado entre las cuatro primeras posiciones.

'If data is changed within column 5 (ranking column), repopulate worksheet2
If Target.Column = 5 Then
    'Remove all of the old rows except the header
    Sheets(2).Rows("2:" & CStr(Sheets(2).UsedRange.Rows.Count)).EntireRow.Delete

    'For each row on worksheet1 check if the value in column "E", if the ranking column is less than 4, if it is copy the row onto worksheet2
    Dim rowCounter As Integer: rowCounter = 1
    For i = 1 To Sheets(1).UsedRange.Rows.Count Step 1
        If (Sheets(1).Range("E" & CStr(i)).Value < 4 And Sheets(1).Range("E" & CStr(i)).Value <> "") Then
            Sheets(2).Range("A" & CStr(rowCounter + 1)).Value = Sheets(1).Range("A" & CStr(i)).Value
            Sheets(2).Range("B" & CStr(rowCounter + 1)).Value = Sheets(1).Range("B" & CStr(i)).Value
            Sheets(2).Range("C" & CStr(rowCounter + 1)).Value = Sheets(1).Range("C" & CStr(i)).Value
            Sheets(2).Range("D" & CStr(rowCounter + 1)).Value = Sheets(1).Range("D" & CStr(i)).Value
            Sheets(2).Range("E" & CStr(rowCounter + 1)).Value = Sheets(1).Range("E" & CStr(i)).Value
            rowCounter = rowCounter + 1
        End If
    Next i
End If

Inserte aquí un algoritmo de clasificación si es necesario, después de que se hayan migrado los datos.

Si necesita más detalles o ayuda con la clasificación, hágamelo saber.

Respuesta2

Sí. Lo que usted describe es una tabla dinámica. Haga clic en una celda en la pestaña de datos de origen, inserte una tabla dinámica y presione Aceptar. Por defecto se creará en una hoja nueva. Arrastre el grupo de edad, el género y el nombre al área de la fila y clasifique al área de valor.

Haga clic derecho en cualquiera de los nombres en el pivote y use Filtro > 10 principales. Suponiendo que la clasificación superior es 1, cambie "Superior" a "Inferior", 10 a 3 y terminará con algo similar a esto. :

ingrese la descripción de la imagen aquí

Si basa la tabla dinámica en una tabla de Excel (que se creó con Insertar > Tabla), puede agregar datos a la tabla de origen, actualizar la tabla dinámica (en la cinta de herramientas Pivote) y se mostrarán los resultados actuales.

Una copia del archivo esaquí.

Respuesta3

para la categoría de edad, puedes intentar agruparlos usando

=IF(*ConditionForCatI*,CatI,IF(*ConditionForCatII*,CatII,...)))

hasta llenar toda la categoría. Después de eso, elija filtrar en datos. Esto le permitirá ordenarlos por grupo de edad o sexo. (por ejemplo, si desea ordenar por género):

  1. haga clic en la flecha hacia abajo al lado del encabezado de género
  2. seleccione solo hombre o solo mujer
  3. haga clic en la flecha hacia abajo al lado del título de tiempo (supongo que tendrá el título de tiempo para decidir el ganador)
  4. Ordene de la A a la Z, ya que mostrará del más pequeño al más grande y el ganador del premio será el tiempo más pequeño

Haga lo mismo con otras categorías y podrá encontrar los ganadores de sus premios.

Salud

información relacionada