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