高级过滤器是基于表达式的过滤器,可用于在数据集或卡片级别创建自定义过滤器,或作为数据工程工作流的一部分应用于数据。 高级过滤器包括以计算字段的方式对相同运算符(例如 +、÷、> 和 <>)和函数进行访问。
示例
如果查询比较复杂,或者一些信息未知或需要进行计算,则高级过滤器非常有用。 以下是如何使用高级过滤器的示例:
- 您有一个遍布美国各地学校的数据集,但您想对德克萨斯州达拉斯县的学校进行分析。 达拉斯县的常规过滤器会返回阿拉巴马州、爱荷华州和德克萨斯州的学校。 使用表达式 County="Dallas" AND State="Texas" 的高级过滤器将过滤数据集,以便仅返回德克萨斯州达拉斯县的学校。
- 您有一个包含商店位置、收入和费用的数据集,但您只想查看亏损的商店。 使用表达式 Revenue<Expenses 的高级过滤器将过滤数据集,以便仅返回收入低于支出的商店。
- 您拥有若干年以来消火栓位置、检查日期和检查状态的数据集,但是您只希望看到在 2018 年及以后对受损消火栓的检查情况。 使用表达式 InspectionDate>=DATE(2018,01,01)AND Status="Damaged" 的高级过滤器将过滤数据集,以便仅显示 2018 年 1 月 1 日之后的损坏消火栓评估情况。
注:
使用日期/时间字段的高级过滤器表达式比如使用诸如 DATE()、DATEVALUE() 或 NOW() 等日期函数。 输入为字符串值(例如 "01/01/2018" 表示 2018 年 1 月 1 日)的日期不会作为日期值读取,也不会返回结果。
在数据集级别应用高级过滤器
完成以下步骤以在数据集级别应用高级过滤器:
- 在数据窗格中找到要应用过滤器的数据集。
- 单击数据集旁的数据集选项按钮 。
- 在数据集选项菜单上,单击高级过滤器。
- 在自定义过滤器表达式框内单击以显示可用的字段和函数,然后开始编写表达式。
- 在自定义过滤器表达式框的底部,找到表示表达式有效的绿色复选标记 。
注:
表达式必须包含条件运算符(例如 <、= 或 <>)才能进行有效过滤(例如 Revenue-Expenses>100000)。
- 单击应用。
表达式将应用于整个数据集。 使用数据集创建的任何卡片都将刷新和更新。
在卡片级别应用高级过滤器
完成以下步骤以在卡片级别应用高级过滤器:
- 使用要过滤的数据集创建地图、图表或表。
- 单击卡片工具栏上的卡片过滤器按钮 。
- 在新过滤器窗格中,单击高级。
- 在自定义过滤器表达式框内单击以显示可用的字段和函数,然后开始编写表达式。
- 在自定义过滤器表达式框的底部,找到表示表达式有效的绿色复选标记 。
注:
表达式必须包含条件运算符(例如 <、= 或 <>)才能进行有效过滤(例如 Revenue-Expenses>100000)。
- 单击应用。
表达式仅应用于正在过滤的卡片。 使用相同数据集的其他卡片不会更新。
注:
活动卡片过滤器按钮 将显示卡片上的过滤器数量,其中包括高级过滤器。 创建高级卡片过滤器后,结果数据集 也将添加到数据窗格中,同时,还会在数据集级别向这一数据集应用相同的过滤器。 如果使用结果数据集创建新的卡片,则所有的卡片都将引用结果数据集中的数据集过滤器,并且卡片过滤器将从原始卡片中移除。 由于原始卡片也引用结果数据集,因此对于正在显示的数据而言并没有变化。
移除或更新高级过滤器
可以移除或更新高级数据集过滤器和高级卡片过滤器。
更新高级数据集过滤器
请完成以下步骤以更新高级数据集过滤器:
- 在已应用高级过滤器的数据集上单击数据集选项按钮 。
- 在数据集选项菜单中单击高级过滤器。
- 执行以下操作之一:
- 更改过滤器表达式,然后单击应用以更新过滤器。
- 单击移除过滤器按钮 删除您的过滤器。
更新高级卡片过滤器
请完成以下步骤以更新高级卡片过滤器:
- 单击活动卡片过滤器按钮 。
- 单击要更新的过滤器。
- 执行以下操作之一:
- 更改过滤器值,然后单击应用以更新过滤器。
- 单击移除过滤器按钮 删除您的过滤器。
使用数据工程应用高级过滤器
注:
Insights desktop 中提供了数据工程。 所有 Insights in ArcGIS Online 和 Insights in ArcGIS Enterprise 用户都可以访问 Insights desktop。 有关详细信息,请参阅 ArcGIS Insights 简介。
数据工程现在可以预览。
导入工具
添加数据集时运行的高级过滤器和其他导入工具会应用于样本和输出数据集,但不会添加到数据模型中。
请完成以下步骤以应用高级过滤器导入工具:
- 通过以下方式之一打开添加到页面窗口:
- 创建数据工作簿。 创建数据工作簿后,随即显示添加到页面窗口。
- 单击现有数据工作簿的数据窗格上方的添加到页面按钮。
- 选择要添加到数据工作簿的数据集。
- 单击导入选项按钮 。
- 从菜单中选择过滤器数据集。
所选列窗口随即出现,其中包含数据的预览。
- 单击高级。
- 键入并使用函数和列菜单在自定义过滤器表达式框中写入表达式。
- 在自定义过滤器表达式框的底部,找到表示表达式有效的绿色复选标记 。
注:
表达式必须包含条件运算符(例如 <、= 或 <>)才能进行有效过滤(例如 Revenue-Expenses>100000)。
- 单击应用。
- 单击完成。
随即应用过滤器。 您可以选择其他数据集或单击添加,以将所选数据集添加到工作簿。
数据集工具
作为数据集工具运行的高级过滤器会自动添加到数据模型中。
请完成以下步骤以应用高级过滤器数据集工具:
该过滤器将被添加到数据模型中。 数据预览将更新以显示已过滤数据。
表达式示例
下表提供了可在高级过滤器中使用的表达式类型的示例:
表达式 | 描述 |
---|---|
DATEDIF(date_field, NOW(), "D")<=28 | 将数据过滤为过去 28 天的条目。 |
number_field>AVG(number_field) | 将数据过滤为 number_field 值大于平均值的行。 |
number_field_1>number_field_2 | 将数据过滤为 number_field_1 值大于 number_field_2 值的行。 |
number_field<10 OR number_field>20 | 过滤数据,以便排除中间值(在本例中为 10 到 20 之间的数值) |
string_field IS NOT NULL | 将数据过滤为仅包括字段中具有非空值的行。 |
局限性
高级过滤器不适用于某些远程要素图层。 如果您的远程要素图层不支持高级过滤器,则可以将图层复制到您的工作簿,并对副本应用高级过滤器。
在同一表达式中使用从左到右和从右到左混合的字符时,高级过滤器表达式可能会出现错误。 例如,同时使用英语和阿拉伯语字段名称的表达式可能无法正确显示。 表达式的结果不受从左到右和从右到左混合的字符的影响。