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 |