[英]Excel structured reference table syntax
我試圖避免過多使用Excel,但是當我這樣做時,我喜歡使用結構化引用,因為它們看起來更清晰。
如果我創建一個名為“table1”的表,其中列為“col1”和“col2”,我將如何使用另一個表中的結構化引用引用“col1”中的第一行? 我嘗試過syntax =table1[[#this row],[col1]]
,只是得到一個錯誤。 是否有類似=table1[1,1] or =table1[1,[col1]]
的語法? 當然,這也不起作用,但有什么相同的?
這很煩人,因為它看起來應該很簡單。
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,則返回零)。 如果您的值不是數字,那么顯然您不能使用此方法。
然而,奧庫幾乎達到了真正的答案,但他的解釋/例子,IMO並沒有走得太遠。
INDEX(Table1[Name], 2)
返回“Four” INDEX(Table1, 1, 1)
返回1
嘗試
=INDEX(col1,1)
您甚至可以使用2-Dim表中的單元格來尋址
=INDEX(reference,row_num,column_num)
在這種情況下的技巧是使用Excel OFFSET函數:
OFFSET([Column1],0,0,1)
OFFSET([Column1],1,0,1)
等等
當然,您只需在其前面加上表名,就可以使用它來獲取另一個表和列。 例如OFFSET(Table2[Column3],4,0,1)
將訪問'Table2'列'Column3'的第4行
似乎沒有明確的方法使用結構化引用到表中的特定行。 正如阿德里安所說,你可以使用INDEX。
或者您可以使用隱式交集來引用同一行:如果table1位於第5:10行,而表2也位於第5:10行,則使用帶有列名的結構化引用將隱式地與同一行相交。
或者您可以在不同的行中輸入結構化參考作為多行數組公式(選擇多個單元格,輸入公式並使用Ctrl-shift-Enter),它將起作用。
如果表可以將列指定為主鍵(可以是數字或字符串),那么結構化引用可以包括通過它的主鍵引用行的方法。
這將是VLOOKUP周圍的語法糖,但是表可以知道它是否在主鍵上排序,並且僅在這種情況下進行有效查找。 似乎VLOOKUP在其中嵌入了邪惡,如果你依賴於排序,它會找到錯誤的行,特別是當表有一個方便的排序行的方法時。
而不是INDEX我會建議SUMIF。 它將允許您使用表值而不是顯式行號(如果您開始過濾或排序,則可能會中斷)。 例如(來自以下鏈接),它將Amount列相加,並且僅包括Type等於Check的那些行以及Account等於Utilities的那些行: =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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.