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 窗口中单击包含要修改的表的选项卡。
单击功能区上的"设计"选项卡。
单击表属性。
出现编辑表格属性对话框。
可以观察到以下情况 −
数据模型中所选表的名称显示在"表名称"框中。
外部数据源中对应表的名称显示在"源名称"框中。
列名有两个选项 – 来源和模态。
如果列在数据源和数据模型中的命名不同,您可以通过选择这些选项在两组列名称之间切换。
所选表格的预览出现在对话框中。
您可以编辑以下内容 −
要更改用作数据源的表,请选择与源名称下拉列表中所选表不同的表。
如果需要,更改列映射 −
要添加源中存在但数据模型中不存在的列,请选中列名称旁边的复选框。 对要添加的所有列重复此操作。 下次刷新时,实际数据将加载到数据模型中。
如果数据模型中的某些列在当前数据源中不再可用,通知区域中会出现一条消息,列出无效的列。 您无需执行任何操作。
单击"保存"按钮。
当您保存当前的表属性集时,您会收到一条消息 – 请稍候。 然后将显示检索到的行数。
在数据模型的表中,任何无效的列都会被自动删除并添加新列。
更改列名和数据类型
您可以按如下所示更改数据模型中表中列的名称 −
双击列的标题。 标题中列的名称将突出显示。
键入新列名称,覆盖旧名称。 或者,您可以更改数据模型中表中列的名称,如下所示:
通过单击标题选择该列。
右键单击该列。
点击下拉列表中的重命名列。
标题中列的名称将突出显示。 键入新列名称,覆盖旧名称。
如您所知,数据模型中一个表的列中的所有值必须属于相同的数据类型。
要更改列的数据类型,请执行以下操作 −
通过单击标题选择您要更改的列。
单击功能区上的主页选项卡。
单击格式组中的控件以修改列的数据类型和格式。
向数据源添加/更改过滤器
您可以在导入数据时向数据源添加过滤器,以限制数据模型中表格中的行数。 稍后,您可以通过更改之前定义的过滤器在数据模型中的表中添加更多行或减少行数。
在导入期间向数据源添加过滤器
要在数据导入期间向数据源添加新过滤器,请执行以下操作 −
- 单击 Power Pivot 窗口中功能区上的主页选项卡。
- 单击"获取外部数据"组中的一个数据源。
出现表导入向导对话框。
- 继续执行步骤 – 选择表和视图。
- 选择一个表,然后单击预览 & 筛选。
出现预览选定表对话框。
- 点击要应用过滤器的列。
- 点击列标题右侧的向下箭头。
要添加过滤器,请执行以下操作之一 −
在列值列表中,选择或清除一个或多个值作为筛选依据,然后单击"确定"。
但是,如果值的数量非常大,列表中可能不会显示个别项目。 相反,您会看到消息 - "要显示的项目太多。"
点击数字过滤器或文本过滤器(取决于列的数据类型)。
然后,单击其中一个比较运算符命令(例如等于),或单击自定义过滤器。 在"自定义过滤器"对话框中,创建过滤器,然后单击"确定"。
注意 − 如果您在任何阶段出现错误,请单击"清除行过滤器"按钮并重新开始。
- 点击确定。 您将返回到表导入向导的选择表和视图页面。
如您所见,在"过滤器详细信息"列中,为您定义过滤器的列显示了一个应用过滤器链接。
您可以单击链接查看向导构建的过滤器表达式。 但是,每个过滤器表达式的语法取决于提供者,您无法对其进行编辑。
- 单击"完成"以导入应用了过滤器的数据。
- 关闭表导入向导。
将过滤器更改为现有数据源
导入数据后,您可能需要不时更新它,方法是添加更多行或限制表中的现有行。 在这种情况下,您可以更改表中的现有过滤器或添加新过滤器。
单击 Power Pivot 窗口中功能区上的主页选项卡。
单击获取外部数据组中的现有连接。 出现现有连接对话框。
单击包含您必须更改过滤器的表的连接。
单击"打开"按钮。
您将进入表导入向导对话框。 重复上一节中的步骤以过滤列。