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 D1
como 1, defina D2
como
=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 ( A1
≠ A2
), 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-D1
da 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.