Power Query - 根据特定模式填充缺失数据

PowerQuery - Fill missing data according to specific pattern

我正在尝试清理从 Excel 文件接收到的数据,并使用 PowerQuery(在 PowerBI 中)将其转换为可用格式。 下面是示例 table,以及我正在尝试做的事情:

| Country   | Type of location  |
|---------  |------------------ |
| A         | 1                 |
|           | 2                 |
|           | 3                 |
| B         | 1                 |
|           | 2                 |
|           | 3                 |
| C         | 1                 |
|           | 2                 |
|           | 3                 |

如您所见,我有每个国家/地区的位置类型列表(始终不变,每个国家/地区的数量始终相同,即每个国家/地区有 3 行对应 3 种位置类型)

我想做的是看看是否有办法用适当的国家/地区名称填充“国家/地区”列中的空单元格,这会给出如下内容:

| Country   | Type of location  |
|---------  |------------------ |
| A         | 1                 |
| A         | 2                 |
| A         | 3                 |
| B         | 1                 |
| B         | 2                 |
| B         | 3                 |
| C         | 1                 |
| C         | 2                 |
| C         | 3                 |

现在我考虑使用一系列 if/else if 条件,但由于有 100 多个国家/地区,这似乎不是正确的解决方案。

有什么方法可以更有效地做到这一点?

是的,就像您在Excel中所做的那样,您可以填写。

来自文档 - Table.FillDown

我相信您首先需要对数据进行正确排序。

Table.FillDown(
    Table.FromRecords({
        [Place = 1, Name = "Bob"],
        [Place = null, Name = "John"],
        [Place = 2, Name = "Brad"],
        [Place = 3, Name = "Mark"],
        [Place = null, Name = "Tom"],
        [Place = null, Name = "Adam"]
    }),
    {"Place"}
)

正如 Murray 提到的那样,Table.FillDown 函数非常有用,它内置于 GUI 中查询编辑器的“转换”选项卡下:

请注意,它只会向下填充以替换空值,因此如果这些行中有空字符串而不是空值,则需要先进行替换。该按钮就在 GUI 中的“填充”按钮上方,您可以像这样使用对话框

或者只使用它生成的 M 代码而不是 GUI:

= Table.ReplaceValue(#"Previous Step","",null,Replacer.ReplaceValue,{"Country"})