Teilen Sie die Daten gleichmäßig in zwei Hälften, indem Sie eine Spalte mit dem Wert 1 oder 2 basierend auf einem bestimmten Zellenwert hinzufügen – Excel

Teilen Sie die Daten gleichmäßig in zwei Hälften, indem Sie eine Spalte mit dem Wert 1 oder 2 basierend auf einem bestimmten Zellenwert hinzufügen – Excel

Ich habe eine Abfrage aus einer Datenbank mit Studenteninformationen gezogen. Die Tabelle hat die folgenden Spalten: StudentID, CourseID, CourseGrade.

Die Spalte „CourseGrade“ kann die folgenden Werte enthalten: „Befriedigend“, „Überdurchschnittlich“, „Durchschnittlich“, „Befriedigend“, „Schlecht“ und „Zurückgezogen“.

Diesen Studierenden werden 2 Betreuer zur Beratung/Betreuung zugeteilt.

Notiz:Ein Student kann nur für einen Kurs oder für mehrere Kurse eingeschrieben sein

Jeder Berater muss der gleichen Anzahl von Studenten zugewiesen werden (die gesamte Studentenliste muss in zwei Hälften geteilt werden, es sei denn, es gibt eine ungerade Anzahl eindeutiger Studenten-IDs. In diesem Fall hätte ein Berater einen Studenten mehr). Unabhängig von der Anzahl der Kurse, für die ein Student eingeschrieben ist, sollte ihm nur ein Berater zugewiesen werden.


Dies ist, was ich erreichen möchte:

Ich möchte der Tabelle eine vierte Spalte mit dem Namen CounsellorNbr hinzufügen und alle Zeilen in der Tabelle durchlaufen und abwechselnd den Wert „1“ und „2“ zu jedem Studentendatensatz hinzufügen. Wenn dieselbe StudentID in mehreren Kursen in benachbarten Zeilen erscheint, sollten beide in dieser neuen Spalte dieselbe Nummer erhalten.

Eine akzeptable Alternative zum Hinzufügen einer Spalte mit einer Nummer 1 oder 2 könnte darin bestehen, die Spalte StudentID in einer von zwei Farben hervorzuheben. Falls das einfacher ist.

Die einzigen Programme, die mir zur Verfügung stehen, sind Microsoft Excel und Access. Letztendlich würde ich es vorziehen, ein Makro ausführen zu können, um diese Aufgabe zu erledigen, da dies häufig von nichttechnischen Personen durchgeführt werden muss. Ich habe jedoch Probleme herauszufinden, welche Art von Funktion erforderlich wäre, um eine Liste wie diese zu durchlaufen und die Werte (oder Zellenfarben) hinzuzufügen, wie ich oben beschrieben habe.

Ich würde mich über alle hilfreichen Hinweise, Vorschläge oder Ausgangspunkte sehr freuen.

Antwort1

D1Auf 1 setzen , D2auf setzen

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

und nach unten ziehen/ausfüllen. Das bedeutet: Wenn die StudentID in der vorherigen Zeile der StudentID in der aktuellen Zeile entspricht, dann ist dies eine sekundäre Zeile für diesen Studenten (d. h., dies ist Teil eines mehrzeiligen Datenclusters für einen Studenten und es ist nicht die erste Zeile). In diesem Fall sollte die CounsellorNbr für diese Zeile dieselbe sein wie die CounsellorNbr für die vorherige Zeile (weil beide Zeilen für denselben Studenten sind). Andernfalls ( A1A2) ist dies die erste Zeile für einen Studenten, und wir möchten daher die andere CounsellorNbr aus der vorherigen Zeile zuweisen. Es gibt verschiedene Möglichkeiten, dies zu tun, aber die einfachste ist arithmetisch: Subtrahieren Sie von 3. 3−1=2 und 3−2=1.

Wenn Sie in Zukunft mehr als zwei Betreuer haben (sagen wir fünf), können Sie 3-D1in der obigen Formel das durch das etwas einfältige ersetzen

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

die besagt: „Wenn der vorhergehende Schüler den letzten (fünften) Betreuer hatte, bekommt dieser den ersten, andernfalls geht es einfach weiter zum nächsten Betreuer“, oder die etwas künstlerischere

MOD(D1,5)+1

Dort heißt es: „Nimm die vorhergehende Beraternummer, dividiere durch 5, nimm den Rest und addiere 1.“ Das sieht komplizierter aus, als es ist:

  • 1÷5 ist 0 mit einem Rest von 1
  • 2÷5 ist 0 mit einem Rest von 2
  • 3÷5 ist 0 mit einem Rest von 3
  • 4÷5 ist 0 mit einem Rest von 4
  • 5÷5 ist 1 mit einem Rest von 0

es läuft also auf genau dasselbe hinaus wie die andere Formel; wir addieren eins, es sei denn, wir sind bei der letzten, in welchem ​​Fall wir zur ersten zurückspringen.

verwandte Informationen