簡體   English   中英

Excel結構化參考表語法

[英]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函數:

  • 在同一個表中訪問名為Column1的第一行: 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM