Excel Dax 简明教程

Excel DAX - Updating Data in the Data Model

DAX 用于对 Excel Power Pivot 中数据模型中的数据进行计算。DAX 使数据建模和报告活动得到有效处理。但是,这需要时不时更新数据模型中的数据,以便反映当前数据。

您可以通过建立数据连接,从外部数据源将数据导入到工作簿的数据模型中。您可以随时从源更新数据。如果您要获取来自包含实时销售信息或每天更新多次的数据源的关系数据库中的数据,那么此选项非常方便。

Different Ways of Updating Data in the Data Model

您可以通过以下方式更新数据模型中的数据 -

  1. 不时刷新数据模型中的数据。

  2. 对数据源进行更改,例如连接属性。

  3. 在源数据更改后更新数据模型中的数据。

  4. 筛选数据以选择性地加载数据源中表中的行。

Refreshing Data in the Data Model

除了从现有源获取更新的数据外,每当您对源数据的架构进行更改时,您还需刷新工作簿中的数据。这些更改可包括添加列或表,或更改导入的行。

请注意,添加数据、更改数据或编辑筛选器始终会触发依赖于该数据源的 DAX 公式的重新计算。有关详细信息,请参阅章节 - 重新计算 DAX 公式。

数据模型中有两种类型的数据刷新 -

Manual Refresh

如果您选择手动刷新选项,则可以随时手动刷新数据模型中的数据。您可以刷新所有数据(这是默认设置),或者可以手动选择要为各个数据源刷新的表和列。

Automatic or Scheduled Refresh

如果您已将工作簿发布到 PowerPivot 库或支持 PowerPivot 的 SharePoint 网站,那么您或 SharePoint 管理员可以创建用于自动更新工作簿中数据的计划。在这种情况下,您可以在服务器上计划无人值守的数据刷新。

Manually Refreshing an Existing Data Source

如果需要更新来自现有数据源的数据或获取用于设计新 DAX 公式的最新数据,你可以随时手动刷新你的数据。你可以刷新单个表格、共享相同数据连接的所有表格或数据模型中的所有表格。

如果你从关系数据源(如 SQL Server 和 Oracle)导入了数据,你可以在一次操作中更新所有相关表格。将新数据或更新的数据加载到数据模型的操作通常会触发 DAX 公式的重新计算,而这两项操作都可能需要一些时间才能完成。因此,你应该在更改数据源或刷新从数据源获取的数据之前意识到潜在的影响。

若要刷新数据模型中单个表格或所有表格的数据,请执行以下操作:

  1. 单击 Power Pivot 窗口功能区上的“主页”选项卡。

  2. Click Refresh.

  3. 在用于刷新所选表格的下拉列表中,单击“刷新”。

  4. 在用于刷新所有表格的下拉列表中,单击“全部刷新”。

manually resfreshing

若要刷新数据模型中使用相同连接的所有表格的数据,请执行以下操作:

  1. 单击 Power Pivot 窗口功能区上的“主页”选项卡。

  2. 单击“获取外部数据”组中的“现有连接”。

出现“现有连接”对话框。

  1. Select a connection.

  2. Click the Refresh button.

existing connections

出现“数据刷新”对话框,并且将显示数据刷新进度信息,因为 PowerPivot 引擎正在从所选表格或数据源中的所有表格重新加载数据。

有三种可能的结果:

  1. Success − 报告导入到每个表格中的行数。

  2. Error − 如果数据库处于脱机状态,你不再具有权限,则可能会产生错误。在源中删除或重命名表格或列。

  3. Cancelled − 这表示 Excel 未发出刷新请求,可能是因为禁用了连接上的刷新。

possible outcomes

单击“关闭”按钮。

Changing a Data Source

若要更改数据模型中的数据,你可以在 Power Pivot 窗口中编辑连接信息或更新数据模型中所用表格和列的定义。

你可以对现有数据源进行以下更改:

Connections

  1. 编辑数据库名称或服务器名称。

  2. 更改源文本文件、电子表格或数据源的名称。

  3. 更改数据源的位置。

  4. 对于关系数据源,更改默认目录或初始目录。

  5. 更改访问数据的身份验证方法或凭证。

  6. 编辑数据源上的高级属性。

Tables

  1. 添加或删除数据上的筛选器。

  2. Change the filter criteria.

  3. Add or remove tables.

  4. Change the table names.

  5. 编辑数据源中的表格和数据模型中的表格之间的映射。

  6. 从数据源中选择不同的列。

Columns

  1. Change the column names.

  2. Add new columns.

  3. 从数据模型中删除列(不会影响数据源)。

可通过以下方式编辑现有数据源的属性:

  1. 可以更改连接信息,包括用作源的文件、馈送或数据库,其属性或其他供应商特定的连接选项。

  2. 可以更改表格和列映射,并删除对不再使用的列的引用。

  3. 可以更改从外部数据源获取的表格、视图或列。

Modifying a Connection to an Existing Data Source

可以通过更改当前连接所用的外部数据源,来修改到外部数据源中创建的连接。但是,需要遵循的过程取决于数据源类型。

  1. 单击 PowerPivot 窗口中功能区的“主页”选项卡。

  2. 单击“获取外部数据”组中的“现有连接”。

modifying connection

出现“现有连接”对话框。选择要修改的连接。

根据所更改数据源的类型,供应商可能不同。另外,可用的属性可能需要更改。考虑一个连接到包含数据的 Excel 工作簿的简单示例。

excel workbook contains data
  1. 单击“编辑”按钮。出现“编辑连接”对话框。

  2. 单击“浏览”按钮以定位同一类型的其他数据库(此示例中为 Excel 工作簿),但名称或位置不同。

  3. Click the Open button.

新文件将被选中。会出现一条消息,说明您已修改连接信息,并且需要保存并刷新表以验证连接。

message
  1. 单击“保存”按钮。您将返回“现有连接”对话框。

  2. 单击“刷新”按钮。“刷新数据”对话框出现,显示刷新数据的进度。将显示刷新数据的状态。有关详细信息,请参阅部分 Manually Refreshing an Existing Data Source

  3. 一旦数据刷新成功,请单击“关闭”。

  4. 在“现有连接”对话框中单击“关闭”。

Editing Table and Column Mappings (Bindings)

要在数据源更改时编辑列映射,请执行以下操作:

  1. 在 Power Pivot 窗口中单击包含您要修改的表的选项卡。

  2. 在功能区上点击“设计”选项卡。

  3. Click the Table Properties.

editing table

将出现“编辑表属性”对话框。

edit table properties

您可以观察到以下内容 −

  1. 数据模型中选定表的名称显示在“表名称”框中。

  2. 外部数据源中相应表的名称显示在“源名称”框中。

  3. 源名称和模型名称中的列名称有两个选项。

  4. 如果数据源和数据模型中的列的名称不同,您可以通过选择这两组列名在两者之间切换。

  5. 所选表的预览出现在对话框中。

您可以编辑以下内容:

  1. 要更改用作数据源的表,请在“源名称”下拉列表中选择一个与选定的表不同的表。

  2. 如有需要,更改列映射:- 要添加源中存在但在数据模型中不存在的列,请选中列名称旁边的复选框。对要添加的所有列重复此操作。您下次刷新时,实际数据将加载到数据模型中。如果数据模型中的某些列在当前数据源中不再可用,则通知区域中会显示一条消息,其中列出无效的列。您无需进行任何操作。

  3. Click the Save button.

当您保存当前表属性集时,您将收到一条消息 - 请稍候。然后将显示检索到的行数。

在数据模型中的表中,任何无效列将自动删除,并将添加新列。

Changing a Column Name and Data Type

您可以按如下方式更改数据模型中表中的列名称:

  1. 双击列标题。标题中列标题的名称将被高亮显示。

  2. 输入新的列名称,覆盖旧名称。或者,您可以按照如下方式更改数据模型中表中列的名称:

  3. 单击其标题选择该列。

  4. Right-click the column.

  5. 单击下拉列表中的“重命名列”。

changing column name

标题中列标题的名称将被高亮显示。输入新的列名称,覆盖旧名称。

正如您所了解的,数据模型中表中列中的所有值必须具有相同的数据类型。

若要更改列的数据类型,请执行以下操作:

  1. 单击其标题选择您要更改的列。

  2. 单击功能区上的“主页”选项卡。

  3. 单击“格式”组中的控件以修改列的数据类型和格式。

check the controls

Adding / Changing a Filter to a Data Source

您可以向数据源添加筛选器,当您导入数据时,可以限制数据模型中表中的行数。在以后,可以通过更改您之前定义的筛选器向数据模型中的表中添加更多行,或减少行数。

Adding a Filter to a Data Source During Import

若要在数据导入期间向数据源添加新筛选器,请执行以下操作:

  1. 单击 Power Pivot 窗口功能区上的“主页”选项卡。

  2. 在“获取外部数据”组中单击一个数据源。

表导入向导对话框出现。

  1. 转到步骤-选择表和视图。

  2. 选择一个表,然后单击“预览与筛选”。

adding a filter to data source

预览选定表对话框将出现。

  1. 单击您想对其应用筛选器的列。

  2. 单击列标题右侧的下箭头。

preview selected table

若要添加筛选器,请执行以下操作之一:

  1. 在列值列表中,选择或清除一个或多个要按其进行筛选的值,然后单击“确定”。但是,如果值的数量特别多,则列表中可能不会显示各个项。相反,您将看到消息 - “有太多项目可显示”。

  2. 单击“数字筛选器”或“文本筛选器”(取决于列的数据类型)。然后,单击其中一个比较运算符命令(如“等于”),或单击“自定义筛选器”。在“自定义筛选器”对话框中,创建筛选器,然后单击“确定”。

@{s0} − 如果您在任何阶段出错,请单击“清除行筛选器”按钮并重新开始。

  1. 单击“确定”。您将返回到表导入向导的“选择表和视图”页面。

view page

您可以看到,在列“筛选器详细信息”中,应用筛选器链接出现在您定义筛选器的列中。

您可以单击链接以查看由向导建立的筛选器表达式。但是,每个筛选器表达式的语法取决于提供程序,您无法编辑它。

link to view
  1. 单击“完成”导入应用筛选器的文本。

  2. 关闭表导入向导。

Changing a Filter to an Existing Data Source

在导入数据后,您可能必须定期更新它,方法是添加更多行或通过限制表中的现有行。在这种情况下,您可以更改表上的现有筛选器或添加新筛选器。

  1. 单击 Power Pivot 窗口功能区上的“主页”选项卡。

  2. 单击“获取外部数据”组中的“现有连接”。将出现“现有连接”对话框。

  3. 单击包含您需要更改筛选器的表的连接。

  4. Click the Open button.

changing a filter

您将进入表导入向导对话框。重复上一部分中的步骤以筛选列。