Divida los datos por la mitad de manera uniforme agregando una columna con valor: 1 o 2 según el valor de celda específico - Excel

Divida los datos por la mitad de manera uniforme agregando una columna con valor: 1 o 2 según el valor de celda específico - Excel

Tengo una consulta que saqué de una base de datos con información de estudiantes. La tabla tiene las siguientes columnas: StudentID, CourseID, CourseGrade.

La columna CourseGrade puede contener cualquiera de los siguientes valores: "Satisfactorio", "Por encima del promedio", "Promedio", "Aceptable", "Deficiente" y, por último, "Retirado".

Hay 2 consejeros que serán asignados a estos estudiantes para asesoramiento/tutoría.

Nota:Un estudiante puede estar matriculado en solo 1 curso o en varios cursos.

Cada consejero debe ser asignado a la misma cantidad de estudiantes (la lista completa de estudiantes debe dividirse por la mitad, a menos que haya un número impar de StudentID únicos, en este caso un consejero tendría un estudiante más). Independientemente de la cantidad de cursos en los que esté matriculado un estudiante, solo se le debe asignar 1 consejero.


Esto es lo que me gustaría lograr:

Me gustaría agregar una cuarta columna a la tabla llamada CounsellorNbr y recorrer todas las filas de la tabla y alternar entre agregar el valor '1' y '2' al registro de cada estudiante. Nuevamente, si el mismo StudentID aparece en líneas adyacentes en varios cursos, ambos deberían obtener el mismo número en esta nueva columna.

Una alternativa aceptable a agregar una columna con un número 1 o 2 es la columna StudentID que podría resaltarse en uno de dos colores. Si eso es más fácil.

Los únicos programas disponibles para mi uso son Microsoft Excel y Access. En última instancia, preferiría poder ejecutar una macro para realizar esta tarea, ya que es algo que a menudo deben realizar personas sin conocimientos técnicos. Sin embargo, tengo problemas para determinar qué tipo de función se necesitaría para recorrer una lista como esta. agregue los valores (o colores de celda) como lo he descrito anteriormente.

Agradecería mucho cualquier sugerencia útil o lugares para comenzar.

Respuesta1

Establecer D1en 1, establecer D2en

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

y arrastrar/rellenar hacia abajo. Esto dice: si el StudentID de la fila anterior es igual al StudentID de la fila actual, entonces esta es una fila secundaria para este Estudiante (es decir, es parte de un grupo de datos de varias filas para un Estudiante y no es la primera). línea). En ese caso, el CounsellorNbr para esta fila debe ser el mismo que el CounsellorNbr de la fila anterior (porque ambas filas son para el mismo estudiante). De lo contrario ( A1A2), esta es la primera fila para un estudiante, por lo que queremos asignar el otro número de consejero del de la fila anterior. Hay varias formas de hacer esto, pero la más simple es la aritmética: restar de 3. 3−1=2 y 3−2=1.

Si tiene más de 2 consejeros en el futuro (digamos, cinco), puede reemplazar el 3-D1de la fórmula anterior con el algo ingenuo

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

que dice, “si el estudiante anterior obtuvo el último (quinto) consejero, este obtiene el primero; de lo contrario, simplemente pasa al siguiente consejero”, o algo más artístico.

MOD(D1,5)+1

que dice: "tome el número de consejero anterior, divídalo por 5, tome el resto y sume 1". Esto parece más complicado de lo que es:

  • 1÷5 es 0 con un resto de 1
  • 2÷5 es 0 con un resto de 2
  • 3÷5 es 0 con un resto de 3
  • 4÷5 es 0 con un resto de 4
  • 5÷5 es 1 con un resto de 0

entonces funciona exactamente igual que la otra fórmula; agregue uno a menos que estemos en el último, en cuyo caso volvemos al primero.

información relacionada