2009-12-10 99 views
7

我儘量避免使用Excel太多,但是當我喜歡使用結構化引用時,因爲它們似乎更清晰易於編寫。Excel結構化參考表語法

如果我用列「col1」和「col2」創建一個名爲「table1」的表格,我將如何使用另一個表格中的結構化引用來引用「col1」中的第一行?我試過語法=table1[[#this row],[col1]],只是出現錯誤。有沒有類似=table1[1,1] or =table1[1,[col1]]的語法?當然,這也行不通,但是什麼是相同的?

這非常煩人,因爲它看起來應該很簡單。

回答

12

Table1[[#This Row][Column1]]確實工作,但公式必須與您希望參考的表格行相同。

要引用的第一行,在其他地方,使用COUNTIFS(criteria_range1, criteria1 [, criteria_rangen, criterian])還是稍微複雜SUMIFS(),如果你需要的數值,而不是數量的下降,由studgeek提到:

SUMIFS(sum_range1, criteria_range1, criteria1 [, criteria_rangen, criterian]) 

你當然需要一個唯一的行通過其選擇行的標準。因此,例如:

Table1 
ID Value Name 
1 2  Two 
2 4  Four 
3 8  Eight 

SUMIF(Table1[Value], Table1[ID], 2) ...返回值4(或者零,如果ID = 2未找到)。如果你的值不是數字,那麼顯然你不能使用這個方法。但是,akuhn幾乎達到了真正的答案,但他在他的解釋/例子IMO中並沒有走得太遠。

INDEX(Table1[Name], 2)返回「四」 INDEX(Table1, 1, 1)返回1

2

嘗試

=INDEX(col1,1) 

,你甚至可以解決細胞在2維度表,使用

=INDEX(reference,row_num,column_num) 
0

似乎沒有要使用結構化引用到特定行的明確方式表。正如Adrian所說,你可以使用INDEX。

或者你也可以使用隱路口引用同一行: 如果table1的是5:10的行和表2也於5:10排然後使用與列名的結構化引用將隱含相交同一行。

或者您可以在不同的行中輸入結構化引用作爲多行數組公式(選擇多個單元格,輸入公式並使用Ctrl-shift-Enter),它將起作用。

0

而不是INDEX我會建議SUMIF。它會讓你使用表值而不是明確的行號(如果你開始過濾或排序,它可能會中斷)。例如(從下面的鏈接),這個總結金額列,只包括其中Type等於檢查和其中帳戶等於公用設施的那些行: =SUMIFS(Table1[Amount],Table1[Type],「Check」,Table1[Account], 「Utilities」)

看到這個鏈接的詳細信息:http://office.microsoft.com/en-us/excel-help/using-structured-references-with-excel-tables-HA010155686.aspx

0

這將是很好如果表可以具有指定作爲主鍵(其可以是數字的或字符串)的柱,然後以結構化REF可以包括通過它的主鍵引用行的方式。

這將是VLOOKUP附近的語法糖,但表可以知道它是否在主鍵上排序,並且僅在這種情況下才進行高效查找。似乎VLOOKUP嵌入邪惡,如果你依賴排序,發現錯誤的行,尤其是當表有一個方便的方法來排序行。

0

在這種情況下,關鍵是要使用Excel OFFSET函數:

  • 訪問同一表命名列1列第1行:OFFSET([Column1],0,0,1)
  • 訪問第二排OFFSET([Column1],1,0,1)

等。

當然,您可以使用此參數來使其他表和列加前綴,只需在表名前添加它即可。例如OFFSET(Table2[Column3],4,0,1)將訪問'Table2'列'Column3'的第4行