Excel: Como mostrar os 3 principais “vencedores” por idade e sexo?

Excel: Como mostrar os 3 principais “vencedores” por idade e sexo?

Gostaria de usar o Excel para gerenciar os dados de uma maratona. A maratona agrupa os vencedores em ageuma gendere categorypremia o primeiro ao terceiro lugar em cada uma category.

O Excel pode ser usado para determinar os vencedores de forma dinâmica, inserindo os dados em uma única planilha e tendo os resultados calculados automaticamente e mostrados de alguma forma em outra planilha?

Eu tenho uma única planilha que contém os seguintes dados para cada linha:

name, age, gender, age category, overall rank

Estou aberto a abordagens baseadas em funções VBA e Excel. Obrigado!

Responder1

Se desejar atualizar a planilha2 quando os dados da planilha1 forem modificados, você poderá usar o VBA para criar uma página resultante que seja atualizada dinamicamente.

  • Na guia do desenvolvedor, clique em visual basic.
  • Expanda a pasta Objetos do Microsoft Excel e visualize o código da Planilha1
  • Crie uma nova função chamada:

    Private Sub Worksheet_ChangeByVal Target As Range)
    EndSub
    

Esta função é chamada sempre que os dados da planilha1 são modificados.

Para atualizar os dados com base na coluna de classificação e fazer estas suposições:
Os dados estão nestas colunas Nome: coluna A, Idade: coluna B, Gênero: coluna C, Categoria: coluna D, Classificação geral: coluna E

Na subcomparação Worksheet_Change o valor na coluna E, a coluna de classificação e transfere o conteúdo da linha se o competidor estiver entre as quatro primeiras posições.

'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

Insira um algoritmo de classificação aqui, se necessário, após a migração dos dados.

Se precisar de mais detalhes ou ajuda com a classificação, por favor me avise.

Responder2

Sim. O que você descreve é ​​uma tabela dinâmica. Clique em uma célula na guia de dados de origem, insira uma tabela dinâmica e clique em OK. Por padrão, ele será criado em uma nova planilha. Arraste Faixa etária, sexo e nome para a área de linha e classifique na área de valor.

Clique com o botão direito em qualquer um dos nomes no pivô e use Filtro> 10 principais. Supondo que a classificação superior seja 1, altere "Top" para "Inferior", 10 para 3 e você terminará com algo semelhante a isto :

insira a descrição da imagem aqui

Se você basear a tabela dinâmica em uma tabela do Excel (criada em Inserir > Tabela), poderá adicionar dados à tabela de origem, atualizar a tabela dinâmica (na faixa de ferramentas dinâmicas) e os resultados atuais serão exibidos.

Uma cópia do arquivo éaqui.

Responder3

para a categoria de idade, você pode tentar agrupá-los usando

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

até que toda a categoria seja preenchida. Depois disso, escolha filtrar em dados. Isso permitirá que você os classifique por faixa etária ou sexo. (por exemplo, se você quiser classificar por gênero):

  1. clique na seta para baixo ao lado do título de gênero
  2. selecione apenas masculino ou apenas feminino
  3. clique na seta para baixo ao lado do título de tempo (presumo que você terá um título de tempo para decidir o vencedor)
  4. Classifique de A a Z, pois mostrará o menor ao maior e o vencedor do prêmio será o menor tempo

Faça o mesmo para outras categorias e você poderá encontrar os vencedores dos prêmios.

Saúde

informação relacionada