Excel DAX – 更新数据模型中的数据
Excel DAX – 更新数据模型中的数据
DAX 用于计算 Excel Power Pivot 中数据模型中的数据。DAX 支持以有效的方式处理数据建模和报告活动。但是,这需要不时更新数据模型中的数据以反映当前数据。
您可以通过建立数据连接将数据从外部数据源导入到工作簿的数据模型中。您可以随时选择更新源中的数据。如果您从包含实时销售信息或每天更新数次的数据馈送的关系数据库获取数据,则此选项非常方便。
数据模型中更新数据的不同方式
您可以通过以下方式更新数据模型中的数据 –
- 不时刷新数据模型中的数据。
- 更改数据源,例如连接属性。
- 在源数据更改后更新数据模型中的数据。
- 过滤数据以有选择地从数据源中的表加载行。
刷新数据模型中的数据
除了从现有源获取更新的数据之外,每当您对源数据的架构进行更改时,您都需要刷新工作簿中的数据。这些更改可以包括添加列或表,或更改导入的行。
请注意,添加数据、更改数据或编辑过滤器始终会触发依赖于该数据源的 DAX 公式的重新计算。有关详细信息,请参阅“重新计算 DAX 公式”一章。
您在数据模型中有两种类型的数据刷新 –
手动刷新
如果您选择手动刷新选项,您可以随时手动刷新数据模型中的数据。您可以刷新所有数据(这是默认设置),也可以手动选择要为各个数据源刷新的表和列。
自动或计划刷新
如果您已将工作簿发布到支持 PowerPivot 的 PowerPivot 库或 SharePoint 网站,则您或 SharePoint 管理员可以创建计划以自动更新工作簿中的数据。在这种情况下,您可以在服务器上安排无人值守的数据刷新。
手动刷新现有数据源
如果您需要更新现有数据源中的数据或获取最新数据以设计新的 DAX 公式,您可以随时手动刷新数据。您可以刷新单个表、共享相同数据连接的所有表或数据模型中的所有表。
如果您已从关系数据源(例如 SQL Server 和 Oracle)导入数据,则可以通过一次操作更新所有相关表。将新数据或更新数据加载到数据模型中的操作通常会触发 DAX 公式的重新计算,这两者都可能需要一些时间才能完成。因此,在更改数据源或刷新从数据源获取的数据之前,您应该了解潜在的影响。
要刷新数据模型中单个表或所有表的数据,请执行以下操作 –
- 单击 Power Pivot 窗口中功能区上的主页选项卡。
- 单击刷新。
- 单击下拉列表中的刷新以刷新所选表。
- 单击下拉列表中的全部刷新以刷新所有表。
要刷新数据模型中使用相同连接的所有表的数据,请执行以下操作 –
- 单击 Power Pivot 窗口中功能区上的主页选项卡。
- 单击获取外部数据组中的现有连接。
出现现有连接对话框。
- 选择一个连接。
- 单击刷新按钮。
当 PowerPivot 引擎从选定表或数据源的所有表重新加载数据时,将出现数据刷新对话框并显示数据刷新进度信息。
有三种可能的结果 –
-
成功– 报告导入每个表的行数。
-
错误– 如果数据库处于脱机状态,则可能会发生错误,您不再拥有权限。在源中删除或重命名表或列。
-
已取消– 这意味着 Excel 没有发出刷新请求,可能是因为连接上禁用了刷新。
单击关闭按钮。
更改数据源
要更改数据模型中的数据,您可以在 Power Pivot 窗口中编辑连接信息或更新数据模型中使用的表和列的定义。
您可以对现有数据源进行以下更改 –
连接
- 编辑数据库名称或服务器名称。
- 更改源文本文件、电子表格或数据馈送的名称。
- 更改数据源的位置。
- 对于关系数据源,更改默认目录或初始目录。
- 更改用于访问数据的身份验证方法或凭据。
- 编辑数据源的高级属性。
表
- 添加或删除数据过滤器。
- 更改过滤条件。
- 添加或删除表。
- 更改表名。
- 编辑数据源中的表与数据模型中的表之间的映射。
- 从数据源中选择不同的列。
列
- 更改列名称。
- 添加新列。
- 从数据模型中删除列(不影响数据源)。
您可以通过以下方式编辑现有数据源的属性 –
-
您可以更改连接信息,包括用作源的文件、提要或数据库、其属性或其他提供者特定的连接选项。
-
您可以更改表和列映射并删除对不再使用的列的引用。
-
您可以更改从外部数据源获取的表、视图或列。
修改与现有数据源的连接
您可以通过更改当前连接使用的外部数据源来修改已创建的与外部数据源的连接。但是,要遵循的过程取决于数据源类型。
- 单击 PowerPivot 窗口中功能区上的主页选项卡。
- 单击获取外部数据组中的现有连接。
出现现有连接对话框。选择要修改的连接。
根据您要更改的数据源的类型,提供程序可能会有所不同。此外,可用的属性可能需要更改。考虑一个连接到包含数据的 Excel 工作簿的简单示例。
-
单击编辑按钮。出现编辑连接对话框。
-
单击“浏览”按钮以定位另一个相同类型的数据库(本例中为 Excel 工作簿),但名称或位置不同。
-
单击打开按钮。
新文件将被选中。将出现一条消息,指出您已修改连接信息,您需要保存和刷新表以验证连接。
-
单击保存按钮。您将返回现有连接对话框。
-
单击刷新按钮。出现数据刷新对话框,显示数据刷新进度。将显示数据刷新的状态。有关详细信息,请参阅“手动刷新现有数据源”部分。
-
数据刷新成功后点击关闭。
-
单击“现有连接”对话框中的“关闭”。
编辑表和列映射(绑定)
要在数据源更改时编辑列映射,请执行以下操作 –
-
在 Power Pivot 窗口中单击包含要修改的表的选项卡。
-
单击功能区上的设计选项卡。
-
单击表属性。
出现编辑表属性对话框。
您可以观察以下内容 –
-
数据模型中所选表的名称显示在表名称框中。
-
外部数据源中对应表的名称显示在“源名称”框中。
-
列名有两个选项 – Source 和 Modal。
-
如果列在数据源和数据模型中的命名不同,您可以通过选择这些选项在两组列名称之间切换。
-
所选表格的预览出现在对话框中。
您可以编辑以下内容 –
-
要更改用作数据源的表,请选择与源名称下拉列表中所选表不同的表。
-
如果需要,更改列映射 –
-
要添加存在于源中但不在数据模型中的列,请选中列名称旁边的复选框。对要添加的所有列重复此操作。下次刷新时,实际数据将加载到数据模型中。
-
如果数据模型中的某些列在当前数据源中不再可用,则通知区域中会显示一条消息,其中列出了无效列。你不需要做任何事情。
-
-
单击保存按钮。
当您保存当前的表属性集时,您将收到一条消息 – 请稍候。然后将显示检索到的行数。
在数据模型的表中,任何无效的列都会被自动删除并添加新的列。
更改列名和数据类型
您可以更改数据模型中表中列的名称,如下所示 –
-
双击列的标题。标题中列的名称将突出显示。
-
键入新列名,覆盖旧名。或者,您可以更改数据模型中表中列的名称,如下所示:
-
通过单击其标题选择该列。
-
右键单击该列。
-
单击下拉列表中的重命名列。
标题中列的名称将突出显示。键入新列名,覆盖旧名。
正如您所了解的,数据模型中表中一列中的所有值都必须具有相同的数据类型。
要更改列的数据类型,请执行以下操作 –
-
通过单击标题选择要更改的列。
-
单击功能区上的“主页”选项卡。
-
单击格式组中的控件可修改列的数据类型和格式。
向数据源添加/更改过滤器
您可以在导入数据时向数据源添加过滤器,以限制数据模型中表中的行数。稍后,您可以通过更改您之前定义的过滤器在数据模型中的表中添加更多行或减少行数。
在导入期间向数据源添加过滤器
要在数据导入期间向数据源添加新过滤器,请执行以下操作 –
- 单击 Power Pivot 窗口中功能区上的主页选项卡。
- 单击获取外部数据组中的数据源之一。
出现表导入向导对话框。
- 继续步骤 – 选择表和视图。
- 选择一个表,然后单击预览和过滤器。
出现预览选定表对话框。
- 单击要应用过滤器的列。
- 单击列标题右侧的向下箭头。
要添加过滤器,请执行以下操作之一 –
-
在列值列表中,选择或清除一个或多个作为筛选依据的值,然后单击确定。
但是,如果值的数量非常多,则列表中可能不会显示单个项目。相反,您会看到消息 – “要显示的项目太多。”
-
单击数字过滤器或文本过滤器(取决于列的数据类型)。
-
然后,单击比较运算符命令之一(例如 Equals),或单击自定义过滤器。在“自定义过滤器”对话框中,创建过滤器,然后单击“确定”。
-
注意– 如果您在任何阶段犯了错误,请单击清除行过滤器按钮并重新开始。
- 单击确定。您将返回到表导入向导的选择表和视图页面。
如您所见,在列 – 过滤器详细信息中,您定义过滤器的列会出现一个已应用过滤器链接。
您可以单击该链接以查看由向导构建的过滤器表达式。但是,每个过滤器表达式的语法取决于提供程序,您无法对其进行编辑。
- 单击完成以导入应用了过滤器的数据。
- 关闭表导入向导。
将过滤器更改为现有数据源
导入数据后,您可能需要不时更新数据,方法是添加更多行或限制表中的现有行。在这种情况下,您可以更改表上的现有过滤器或添加新过滤器。
-
单击 Power Pivot 窗口中功能区上的主页选项卡。
-
单击获取外部数据组中的现有连接。出现现有连接对话框。
-
单击包含您必须更改过滤器的表的连接。
-
单击打开按钮。
您将进入表导入向导对话框。重复上一节中的步骤以过滤列。