【问题标题】:Power Query / Power BI - How to move a cell value to a separate cell the easiest way?Power Query / Power BI - 如何以最简单的方式将单元格值移动到单独的单元格?
【发布时间】:2020-08-12 11:20:03
【问题描述】:

我想将单个值从 B 列移动到 A 列,如何在 Power Query / Query Editor (Power BI) 中以最简单的方式实现它?

请看附件图片。

我知道我可能需要声明一个变量,所以请赐教。顺便说一句,之后我将删除第 1 行,提升我的标题,并将第 2 列重命名为 PERIOD。

谢谢。

【问题讨论】:

  • 这些数据首先来自哪里?我认为在 Power BI 之外修复格式可能会更好
  • 我知道我可以简单地做到这一点,但我想在 Power BI 中修复它。也可以增加知识。
  • 您将需要编写自定义整形脚本(高级模式),而不是使用列公式。 docs.microsoft.com/en-us/powerquery-m/…
  • 您好 JeffUK,我了解 M 语言运行 Power Query,这可能会通过 M 语言编码来解决。但是,一些指导性操作方法会很有帮助,因为我不知道该怎么做使用 Let In 语句。无论如何,我仍然会继续尝试,直到有人发布完整的解决方案。
  • 如果我将您的第一张图片视为输入,您能否再添加一个包含您想要的输出的样本?

标签: powerbi powerquery powerpivot


【解决方案1】:

这可能与您想要做的事情一致。

如果我从这个名为 Table1 的表开始:

然后我点击编辑栏左侧的fx

然后在编辑栏中输入= Table.InsertRows(Source, Table.RowCount(Source), {[Column2 = Source[KP20 rate]{0}, KP20 rate = null, Column4 = null]})

我使用 Table.InsertRows 在 Table1 中创建了一个新行。 Source 是 Table1 被拉入 Power Query 之后和我执行此步骤之前的最新状态的名称。所以我实际上使用 Source 作为这一步的表名,而不是 Table1。 (每个应用的步骤基本上都会产生自己的表。您可能已经知道这一点,但其他人可能不知道。)因此,对于这一步,我使用 Source 作为 Table.InsertRows 语句中的表名。然后,由于我希望新行出现在 Source 的底部,所以我只需输入 Source 的 Table.RowCount 作为新行的行号位置。然后我输入要添加的每个列的名称和它们的值。对于 Column2,我输入了值“Source[KP20 rate]{0}”。 Source[KP20 rate]{0} 基本上将 KP20 rate 列视为一个列表,其中 {0} 用作指向列表中第一项的指针。要定位 Source[KP20 rate] 中的第二个项目,您可以使用 Source[KP20 rate]{1}。您可以看到我将其他两列(KP20 rate 和 Column4)的值设置为 null。

结果:

这里是 M 代码,如果你想看的话:

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    Custom1 = Table.InsertRows(Source, Table.RowCount(Source), {[Column2 = Source[KP20 rate]{0}, KP20 rate = null, Column4 = null]})
in
    Custom1

【讨论】:

  • 嗨,Marc Pincince,非常感谢。这正是我所需要的。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2021-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多