2015-10-15 50 views
0

我有64名學生根據他們的GPA分配給19個不同的學生。學生們也表示了他們對溪流的偏好。只有5名學生可以分配前三名(A-C),4名學生可以分配到D組,其餘15名學生各得3名學生。我已經將數據添加到Excel表格中,但不知道如何處理以獲得上述結果。 The data is organized like this。我很高興分享原始文件,但無法找到上傳的方式。Excel:根據GPA和選擇偏好將學生分配給學生

+0

請嘗試[this](http://www.sensefulsolutions.com/2010/2010/format-text-as-table.html)上傳數據數組以解決問題(也適用於解析回tab或逗號-delimited) –

+0

如果這是一個關閉,我會按GPA排序並手工分配流。如果您正在爲挑戰做好準備,或者您需要使用大型數據集或許多數據集,希望其他人有時間提供實際的技術解決方案。 – Sammy

+0

感謝您建議手動執行此操作,但在某些情況下,學生人數優先於某個特定的流,而不是可用的職位,因此需要考慮他們的第2,3甚至第7個優先級,這對於手動分配來說變得複雜。 – Rob

回答

0

這可以在一個vba宏中自動解決,但稍微快一點的版本會使用公式來快速和骯髒。它開始像你已經,按gpa排名。

爲每個學生插入2行。在這一行中,您將計算流的「填充」。如果你有一個bazillion學生,你應該寫一個小宏來複制粘貼,這樣你就可以得到其他所有的行。令人遺憾的是,excel不接受將空值粘貼爲不變值。

要麼通過搜索/替換來更改排名,要麼創建一個新表,其中「所需的分配」值對於最熱門的流爲「最高」。 小區C2應該是這樣的:

=20-'originalsheet'!C2 

我們現在正在研究新的工作表

所以,你有這些行:(學生 - 分配 - 可用性 - 學生 - 分配 - 可用性)

在分配線中,您將填寫上面學生的分配情況,在可用性行中填寫當前可用空間。

第一個學生被分配給他或她的選擇。

分配行獲取調查當前單元格是否具有最低可能值的公式。所以。行2:第一個學生,ROW3:分配,ROW4:新的可用性,ROW5:學生願望,第6列:我們在小區C6使用這個公式

=if(sumproduct(max(($C5:$U5)*(($C4:$U4)>0)))=C6;1;0) 

然後下一行,新的可用性簡直是

=C4-C6 

向下複製粘貼公式。您可能會遇到與完全類似GPA的學生相關的問題,但您的排名從上到下是該計劃的優先考慮因素。我沒有原始文件,我沒有時間從圖像中構建它,但它看起來像是用於我的小測試設置。

稍微比手工做起來容易,但是再次;如果你有一個bazillion學生,並且經常進行這種分配 - 請在vba部分詢問。

摘要:

  1. 通過GPA排名
  2. 改變,因此最高願望是最高數字
  3. 插入2行對每個學生
  4. 計算手動第一個學生,應該不是難事......
  5. 使用公式並確保單元格引用不被篡改。