Divida os dados pela metade uniformemente adicionando coluna com valor: 1 ou 2 com base no valor da célula específica - excel

0

Eu tenho uma consulta que tirei de um banco de dados com informações sobre os alunos. A tabela tem as seguintes colunas: StudentID, CourseID, CourseGrade.

A coluna CourseGrade pode conter qualquer um dos seguintes valores: "Satisfatório", "Acima da média", "Média", "Razoável", "Ruim" e por último "Retirado".

Existem 2 conselheiros que devem ser designados para esses alunos para aconselhamento / tutoria.

Nota: Um aluno pode estar matriculado em apenas 1 curso ou vários cursos

Cada conselheiro precisa ser atribuído ao mesmo número de alunos (a lista completa de alunos deve ser dividida ao meio, a menos que haja um número ímpar de IDs de alunos únicos; nesse caso, um conselheiro teria mais um aluno). Independentemente do número de cursos em que um aluno está matriculado, ele deve ser designado apenas a 1 conselheiro.

Isso é o que eu gostaria de realizar:

Eu gostaria de adicionar uma quarta coluna à tabela chamada CounsellorNbr e percorrer todas as linhas da tabela e alternar entre adicionar o valor '1' e '2' ao registro de cada aluno. Novamente, se o mesmo StudentID aparecer em linhas adjacentes em vários cursos, ambos devem obter o mesmo número nessa nova coluna.

Uma alternativa aceitável para adicionar uma coluna com um número 1 ou 2, a coluna StudentID pode ser destacada em uma das duas cores. Se isso é mais fácil.

Os únicos programas disponíveis para uso são o Microsoft Excel e Access. Em última análise, eu preferiria ser capaz de executar uma macro para realizar essa tarefa, pois é algo que precisa ser feito frequentemente por indivíduos não técnicos, no entanto estou tendo problemas para determinar que tipo de função seria necessário para percorrer uma lista como essa e adicione os valores (ou cores das células) como descrevi acima.

Eu apreciaria muito sugestões de sugestões ou lugares para começar.

    
por 1337475 18.05.2015 / 01:11

1 resposta

2

Defina D1 como 1, defina D2 como

=IF(A1=A2, D1, 3-D1)

e arraste / preencha. Isso diz: se o StudentID na linha anterior for igual ao StudentID na linha atual, então esta é uma linha secundária para este aluno (isto é, faz parte de um cluster de dados de várias linhas para um aluno, e não é a primeira linha). Nesse caso, o CounsellorNbr para esta linha deve ser o mesmo como o CounsellorNbr da linha anterior (porque ambas as linhas são para o mesmo aluno). Caso contrário ( A1A2 ), esta é a primeira linha de um aluno, e por isso queremos atribuir o outro CounsellorNbr daquele da linha anterior. Existem várias maneiras de fazer isso, mas a mais simples é a aritmética: subtrair de 3. 3−1 = 2 e 3−2 = 1.

Se você tiver mais de dois conselheiros no futuro (digamos, cinco), poderá substituir o 3-D1 na fórmula acima por um pouco simplista

IF(D1=5, 1, D1+1)

que diz: "se o aluno precedente recebeu o último (5) conselheiro, este recebe o primeiro, senão vai para o próximo conselheiro ” ou o pouco mais artístico

MOD(D1,5)+1

que diz: "pegue o número do conselheiro anterior, divida por 5, pegue o restante, e adicione 1. ”Isso parece mais complicado do que é:

  • 1 ÷ 5 é 0 com um resto de 1
  • 2 ÷ 5 é 0 com um resto de 2
  • 3 ÷ 5 é 0 com um resto de 3
  • 4 ÷ 5 é 0 com um resto de 4
  • 5 ÷ 5 é 1 com um resto de 0

então funciona exatamente da mesma forma que a outra fórmula; adicione um, a menos que este seja o último, e nesse caso voltamos para o primeiro.

    
por 18.05.2015 / 04:48