Power BI 查询问题

时间:2021-04-26 11:26:35

标签: powerbi-desktop

我对 BI 非常陌生,并且在添加具有特定单元格值的列时遇到了令人恼火的问题。 我有一列包含文本、整数、十进制数等。我只对 5 个特定的单元格感兴趣。这些位置永远不会改变,但值每天都会使用最新的刷新数据进行更新。 任何人都可以帮助我创建一个仅显示这 5 个特定单元格值的新列吗? Example

任何帮助将不胜感激。

问候 佛朗哥

1 个答案:

答案 0 :(得分:0)

首先,您必须清楚地了解,Power BI 与 Excel 不同 - 它不适用于可以放置随机值的单元格,但适用于行。如果向现有表中添加一列,则不能只是向上或向下移动该列中的值。因此,在 Power BI 术语中,您要么想过滤掉(删除)除 12、24、48 等之外的行中的值(为什么跳过 36?我假设您想要每个第 12 行的值),或者保留源表并创建一个只有一列和来自感兴趣行的值的新表。

您拥有的数据格式不是最佳的,因此提取重要值需要几个步骤。一种方法是添加索引列来定义行的排序顺序并添加某种形式的唯一标识符。单击功能区中的 Transform data 按钮,然后单击 Add Column -> Index Column -> From 1

,打开 Power Query 编辑器

enter image description here

然后点击 Index 列标题中的按钮并仅选择您想要保留的行(12、24、48、60 和 72):

enter image description here

这会给你一个只有感兴趣的行的表格:

enter image description here

如果要保留包含所有行的源表,请在过滤表之前,在 Queries 面板中右键单击它并进行复制:

enter image description here

如果没有有限(且简短)的行列表,但您希望保留每 12 行,请点击 Add Column -> Custom Column 并添加以下内容:

Row of interest = if Number.Mod([Index], 12) = 0 then 1 else 0

enter image description here

然后对该列进行过滤以仅保留 Row of interest = 1 所在的行。

另一种更“Power BI”的方法是复制表并在第一个副本中添加 Index Column From 1,在第二个副本中添加 Index Column From 0。然后单击 Merge Queries 的下拉菜单并选择 Merge Queries as new。选择两个表中的 Index 列作为键:

enter image description here

单击新列标题中的按钮以展开表格并仅保留值列:

enter image description here

这将为您提供以前在标题下的值,现在位于同一行,因此现在您可以按标题名称过滤:

enter image description here

你会得到这个(如果你想重命名列):

enter image description here