GetObjectField - 圖表函數
GetObjectField() 傳回維度的 欄位運算式。Index 是選用整數,表示應傳回的維度。
您無法在下列位置的圖表中使用此功能:標題、子標題、頁尾、參考線運算式和最小/最大運算式。
您無法在使用 Object ID 的另一個物件中參考維度或量值名稱。
語法:
GetObjectField ([index])
傳回的資料類型: 字串
範例 | 結果 |
---|---|
GetObjectField ()
GetObjectField (0) |
傳回圖表中第一個維度的欄位運算式。 |
GetObjectField (1) | 傳回圖表中第二個維度的欄位運算式。 |
若您想要傳回量值名稱,請改用 GetObjectMeasure 函數。
範例 - GetObjectField 基礎事項
概述
開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。
載入指令碼包含:
-
載入到稱為 Example 之資料表格的資料集。
-
資料表格中的欄位如下:
-
TransactionDate
-
CustomerID
-
TransactionQuantity
-
載入指令碼
Example:
LOAD * INLINE [
TransactionDate, CustomerID, TransactionQuantity
2018/08/30, 049681, 13
2018/08/30, 203521, 6
2018/08/30, 203521, 21
];
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
-
TransactionDate
-
CustomerID
-
TransactionQuantity
建立下列量值:
- =GetObjectField(),用來尋找表格中的第一個維度。
- =GetObjectField(0),用來尋找表格中的第一個維度。
- =GetObjectField(1),用來尋找表格中的第二個維度。
TransactionDate | CustomerID | TransactionQuantity | GetObjectField () | GetObjectField (0) | GetObjectField (1) |
---|---|---|---|---|---|
2018/08/30 | 049681 | 13 | TransactionDate | TransactionDate | CustomerID |
2018/08/30 | 203521 | 6 | TransactionDate | TransactionDate | CustomerID |
2018/08/30 | 203521 | 21 | TransactionDate | TransactionDate | CustomerID |
查看結果,您可以看到 GetObjectField 函數如何傳回函數參數中指示的欄位名稱。
範例 - GetObjectField 進階使用情境
概述
此範例將 GetObjectField 函數與篩選選項組合使用。圖表物件中顯示的維度和量值計算會根據您選取的篩選條件而變更。
開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。
載入指令碼包含:
-
載入到兩個內嵌資料表格 Sales 和 Filter 的資料集:第一個表格 Sales 包含銷售資料。第二個表格 Filter 包含將作為維度切換使用的欄位名稱清單。切換讓您可以在圖表中的維度之間切換,並自訂根據所選維度顯示的量值計算。
-
Sales 表格中的下列欄位:
-
Country
-
Salesperson
-
SalesValue
-
-
Filter 表格中的下列欄位:FilterField。
載入指令碼
Sales:
LOAD * INLINE [
Country, SalesPerson, SalesValue
USA, John, 500
USA, Alice, 700
Canada, Bob, 300
Canada, Carol, 400
Mexico, Dave, 200
];
Filter:
LOAD * INLINE [
FilterField
Country
SalesPerson
];
結果
-
載入資料並開啟工作表。建立新的篩選窗格並將此欄位新增為維度:
-
FilterField
-
-
在資產面板中,於欄位之下,用滑鼠右鍵按一下 FilterField 並選取欄位設定。選取永遠是單選值核取方塊,然後按一下儲存。
-
建立表格,然後輸入下列運算式以新增維度:
-
=$(= FilterField)
-
在標籤之下,輸入下列運算式,以定義維度的欄名稱:='$(= FilterField)'。
-
-
建立下列量值:
-
=If(GetObjectField() = 'Country', Sum(SalesValue), Avg(SalesValue)),如果所選的維度是 Country,則用來加總銷售值,否則若所選的維度是 SalesPerson,則用來傳回平均銷售值。
-
在 Label 之下,輸入下列運算式,以根據篩選選項定義將顯示量值的欄名稱:=If(GetObjectField() = 'Country', 'Sum(SalesValue)', 'Avg(SalesValue)')。例如,如果在篩選條件中選取了 Country,則量值的名稱將傳回值 Sum(SalesValue)。
-
在分析模式下,若您在 FieldFilter 篩選條件中的 SalesPerson 和 Country 之間切換,表格會變更,以納入所選維度以及該維度的對應量值計算。例如,如果您在篩選條件中選取 Country,則表格會在第一欄顯示 Country 作為維度。然後,量值會使用 GetObjectField 函數,將其等同於 Country,並傳回 Sum(SalesValue)。
Country 的篩選窗格和表格結果

下表顯示了在 FilterField 篩選條件中選取 Country 時的結果。
Country | Sum(SalesValue) |
---|---|
Canada | 700 |
Mexico | 200 |
USA | 1200 |
下表顯示了在 FilterField 篩選條件中選取 SalesPerson 時的結果。
SalesPerson | Avg(SalesValue) |
---|---|
Alice | 700 |
Bob | 300 |
Carol | 400 |
Dave | 200 |
John | 500 |