透過新增具有值的欄位將資料平均分成兩半:根據特定儲存格值新增 1 或 2 - excel

透過新增具有值的欄位將資料平均分成兩半:根據特定儲存格值新增 1 或 2 - excel

我有一個從包含學生資訊的資料庫中提取的查詢。表格具有以下列:StudentID、CourseID、CourseGrade。

CourseGrade 欄位可以包含以下任意值:“Satisfactory”、“Above Average”、“Average”、“Fair”、“Poor”,最後是“Withdrawn”。

將指派 2 位輔導員為這些學生提供建議/輔導。

筆記:一名學生可以只選修一門課程或多門課程

每位輔導員需要分配給相同數量的學生(整個學生清單必須分成兩半,除非唯一學生 ID 的數量為奇數,在這種情況下,一名輔導員將再分配一名學生)。無論學生註冊了多少課程,都只能為他們分配 1 位輔導員。


這就是我想要實現的目標:

我想在名為 CounsellorNbr 的表格中添加第四列,並遍歷表中的所有行,並交替向每個學生記錄添加值「1」和「2」。同樣,如果相同的 StudentID 出現在多個課程的相鄰行中,則兩者都應在此新列中獲得相同的編號。

作為添加數字 1 或 2 的列的可接受的替代方案,StudentID 列可以用兩種顏色之一突出顯示。如果那更容易的話。

我唯一可以使用的程式是 Microsoft Excel 和 Access。最終,我希望能夠運行一個巨集來完成這項任務,因為這是非技術人員經常需要完成的事情,但是我無法確定需要什麼類型的函數來遍歷這樣的列表,按照我上面的描述添加值(或單元格顏色)。

我將非常感謝任何有用的指示建議或起點。

答案1

設定D1為1,設定D2

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

並向下拖曳/填充。這表示:如果前一行的 StudentID 等於目前行的 StudentID,則這是該學生的次要行(即,這是學生的多行資料簇的一部分,並且不是第一行)線)。在這種情況下,該行的 CounsellorNbr 應與上一行的 CounsellorNbr 相同(因為這兩行屬於同一學生)。否則 ( A1A2),這是學生的第一行,因此我們要從前一行中分配另一個 CounsellorNbr。有多種方法可以做到這一點,但最簡單的是算術:從 3 中減去。

如果你將來有超過 2 位輔導員(例如 5 位),你可以將3-D1上面公式中的 替換為有點簡單的

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

其中說,“如果前面的學生找到了最後(第五)個輔導員,那麼這個學生就得到了第一個輔導員,否則就繼續尋找下一個輔導員”,或者更藝術化

MOD(D1,5)+1

其中說:“將前面的輔導員編號除以 5,取餘數,然後加 1。”這看起來比實際上更複雜:

  • 1÷5 是 0 餘數 1
  • 2÷5 是 0 餘數 2
  • 3÷5 是 0 餘數 3
  • 4÷5 是 0 餘數是 4
  • 5÷5 是 1 餘數 0

所以它的計算結果與另一個公式完全相同;添加一個,除非我們在最後一個,在這種情況下我們循環回到第一個。

相關內容