Divida os dados ao meio uniformemente adicionando coluna com valor: 1 ou 2 com base no valor da célula específica - Excel

Divida os dados ao meio uniformemente adicionando coluna com valor: 1 ou 2 com base no valor da célula específica - Excel

Tenho uma consulta que retirei de um banco de dados com informações de alunos. A tabela possui as seguintes colunas: StudentID, CourseID, CourseGrade.

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

Existem 2 conselheiros que serão designados a esses alunos para aconselhamento/tutoria.

Observação:Um aluno pode estar matriculado em apenas um curso ou em vários cursos

Cada orientador precisa ser atribuído ao mesmo número de alunos (toda a lista de alunos deve ser dividida ao meio, a menos que haja um número ímpar de StudentIDs exclusivos, neste caso um orientador teria mais um aluno). Independentemente do número de cursos em que o aluno esteja matriculado, ele deverá receber apenas 1 orientador.


Isso é o que eu gostaria de realizar:

Gostaria de adicionar uma quarta coluna à tabela chamada ConselheiroNbr 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 deverão obter o mesmo número nesta 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 de duas cores. Se isso for mais fácil.

Os únicos programas disponíveis para uso são Microsoft Excel e Access. Em última análise, eu preferiria poder executar uma macro para realizar esta 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ária para percorrer uma lista como esta e adicione os valores (ou cores das células) conforme descrevi acima.

Eu apreciaria muito quaisquer sugestões úteis ou lugares para começar.

Responder1

Defina D1como 1, defina D2como

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

e arraste/preencha. Isto diz: se o StudentID na linha anterior for igual ao StudentID na linha atual, então esta é uma linha secundária para este Aluno (ou seja, faz parte de um cluster de dados de várias linhas para um Aluno e não é a primeira linha). Nesse caso, o CounselorNbr desta linha deve ser igual ao CounselorNbr 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, portanto, queremos atribuir o outro ConselheiroNbr daquele da linha anterior. Existem várias maneiras de fazer isso, mas a mais simples é a aritmética: subtraia de 3. 3−1=2 e 3−2=1.

Se você tiver mais de 2 conselheiros no futuro (digamos, cinco), você pode substituir o 3-D1da fórmula acima pelo um tanto simplório

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

que diz: “se o aluno anterior obteve o último (5º) orientador, este recebe o primeiro, caso contrário, basta passar para o próximo orientador”, ou o um 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 resto 1
  • 2÷5 é 0 com resto 2
  • 3÷5 é 0 com resto 3
  • 4÷5 é 0 com resto de 4
  • 5÷5 é 1 com resto 0

então funciona exatamente da mesma forma que a outra fórmula; adicione um, a menos que estejamos no último; nesse caso, voltaremos ao primeiro.

informação relacionada