2016-06-10 48 views
1

我有一個Excel 2013表,名爲'student_courses',其列:stu_id,stu_major,stu_course和一個名爲validated_crs的計算列。如何使用結構化引用來標識列並將所標識的列中的行值用作條件?

我想創建爲計算列命名validated_crs對每個記錄的公式。

在此計算出的列中,我需要引用的值在stu_major列在第二表中查找一個柱,「qualified_courses」。 'qualified_courses'表中的標題與stu_major值相關聯。

我需要檢查'qualified_courses'中相關列中的任何值是否與'student_courses'表中正在評估的記錄中的'stu_course'值相匹配。

如果任何在相關列中的值的匹配用於在第一表格中的任何給定的記錄的stu_course值,那麼它應該在所計算出的列中返回的「驗證」的值。

到目前爲止,我已經發現如何使用=INDIRECT("qualified_courses"&"["&[@[stu_major]]&"]")返回第二個表列值,但我不確定如何使用返回的值集合來檢查stu_course值以查看是否存在匹配。

非常感謝,

林賽羅

student_courses表:

stu_id  stu_major  stu_course  validated_crs 
5432  MULTE   BIOL1102  validated 
5432  MULTE   MUSC1303  NULL 
5432  MULTE   ENGL2303  validated 
6737  MULTM   HIST1104  validated 
6737  MULTM   BIOL1222  NULL 
6737  MULTM   EDUC2303  validated 
6737  MULTM   EDUC1302  validated 

qualified_courses表:

MULTA  MULTB   MULTE   MULTM 
ART1301 HIST1301  BIOL1102  HIST1104 
BIOL1322 POLS2210  ENGL2303  EDUC2303 
ENGL1440 IS3340  ART3303  EDUC1302 
      BIOL2302  BIOL1222  MUSC1303 
+0

我會嘗試。我以前沒有這樣做,所以請給我幾分鐘的時間來弄明白。 –

+0

謝謝你解決它:) –

回答

2

此公式基礎上你的:

=IF(ISNUMBER(MATCH([@[stu_course]],INDIRECT("qualified_courses"&"["&[@[stu_major]]&"]"),0)),"Validated","") 

我們使用MATCH函數來搜索課程的返回列。如果有一個,那麼它會返回一個數字,否則就會報錯。

ISNUMBER會返回TRUE/FALSE,IF將使用該值來確定哪個結果。

,但我不喜歡INDIRECT()公式,因爲它是一個VOLATILE公式。我更喜歡INDEX公式:

=IF(ISNUMBER(MATCH([@[stu_course]],INDEX(qualified_courses,0,MATCH([@[stu_major]],qualified_courses[#Headers],0)),0)),"Validated","") 

哪個會返回相同的。

代替INDIRECT找到正確的列,我們使用INDEX/MATCH。 MATCH再次返回一個數字,這次是第二張表中的列。

指數()使用此2-14在那個位置返回整列。在第二個標準0指出,我們想要全列。

然後它就像第一個。

VOLATILE公式是那些重新計算每一個Excel的重新計算數據是否與它捆綁改變或沒有時間。

非易失性公式僅在它們引用的數據發生變化時纔會重新計算。

圖中的validated_cs列是頂式和下一列是底部:

enter image description here

+0

謝謝你斯科特。我無法獲得任何工作。我正在使用Ctrl + Shift + Enter進行數組索引匹配。這兩個表格在同一工作簿中的不同工作表上有什麼不同? –

+0

不應該因爲表格綁定到工作簿而導致它們位於不同的工作表上。不要使用Ctrl-Shift-Enter,這些都不是數組公式,它們只是看起來很嚇人。檢查空間和其他非打印字符的數據,並檢查以確保列和表名稱在公式和表格中拼寫相同。 @LindsayPatterson –

+0

當我複製模擬數據並使用索引匹配時,它的工作效果很好,所以我剛剛做了一些調整以弄清楚如何使它在真實數據集上工作。 –