1)產生課程名稱的標題行

1)產生課程名稱的標題行

我有幾個學生在第一張紙上選擇了他們想要參加的課程。在第二張表上,我想為每個班級產生一個列表,其中包含該班級學生的姓名(根據他們的選擇)。有沒有辦法做到這一點?

在此輸入影像描述

答案1

1)產生課程名稱的標題行

首先,在sheet2中您需要產生一個水平的類別清單。您可以手動執行此操作,也可以使用下列公式根據學生對班級 1-3 的選擇產生已使用的唯一班級名稱的排序清單。它甚至應該可以忽略空白類別條目。我能想到的唯一兩個警告是,您需要將清單左側的儲存格等於清單中的任何名稱。另一個要注意的是,這是一個陣列公式,需要CONTROL+ SHIFT+ENTER而不是僅ENTER在確認公式時才需要。當公式周圍出現 { } 時,您就知道自己做對了。請注意,可能無法手動新增 { }。

在範例中,我將以下公式貼上到 Sheet2!B2 並複製到右側,直到出現空白儲存格。

=IFERROR(INDEX(Sheet1!$B$2:$D$9,SMALL(IF(SMALL(IF(COUNTIF($A$2:A2,Sheet1!$B$2:$D$9)+ISBLANK(Sheet1!$B$2:$D$9)=0,COUNTIF(Sheet1!$B$2:$D$9,"<"&Sheet1!$B$2:$D$9)+1,""),1)=IF(ISBLANK(Sheet1!$B$2:$D$9),"",COUNTIF(Sheet1!$B$2:$D$9,"<"&Sheet1!$B$2:$D$9)+1),ROW(Sheet1!$B$2:$D$9)-MIN(ROW(Sheet1!$B$2:$D$9))+1),1),MATCH(MIN(IF(COUNTIF($A$2:A2,Sheet1!$B$2:$D$9)+ISBLANK(Sheet1!$B$2:$D$9)>0,"",COUNTIF(Sheet1!$B$2:$D$9,"<"&Sheet1!$B$2:$D$9)+1)),INDEX(IF(ISBLANK(Sheet1!$B$2:$D$9),"",COUNTIF(Sheet1!$B$2:$D$9,"<"&Sheet1!$B$2:$D$9)+1),SMALL(IF(SMALL(IF(COUNTIF($A$2:A2,Sheet1!$B$2:$D$9)+ISBLANK(Sheet1!$B$2:$D$9)=0,COUNTIF(Sheet1!$B$2:$D$9,"<"&Sheet1!$B$2:$D$9)+1,""),1)=IF(ISBLANK(Sheet1!$B$2:$D$9),"",COUNTIF(Sheet1!$B$2:$D$9,"<"&Sheet1!$B$2:$D$9)+1),ROW(Sheet1!$B$2:$D$9)-MIN(ROW(Sheet1!$B$2:$D$9))+1),1),,1),0),1),"")

作為陣列公式,請勿使用完整的行/列引用,例如 A:A 或 3:3,因為這會導致執行過多的計算。

2)產生姓名列表

為了產生選擇標題行中的課程作為其 3 個選擇之一的名稱列,可以使用下列公式。在下面的範例中,此公式位於 Sheet2!B3 中,並複製到右側以匹配課程名稱列表,然後向下複製,直到只剩下空白行。

=IFERROR(INDEX(Sheet1!$A:$A,AGGREGATE(14,6,ROW(Sheet1!$B$2:$D$9)/(Sheet1!$B$2:$D$9=B$2),ROW(A1))),"")

AGGREGATE 函數可以根據所選的公式編號執行類似陣列的運算。當第一個參數號為 14 或 15 以及其他一些參數時,將執行類似陣列的操作。第二個數字參數告訴 AGGREGATE 忽略錯誤結果、隱藏行以及我認為的其他一些事情。由於類似數組的計算,再次避免在 AGGREGATE 函數中使用完整列參考。

資料來源:表1

在此輸入影像描述

輸出:表2

在此輸入影像描述

如果學生多次選擇同一課程,他們的名字將多次出現在清單中。

相關內容