空Power Query时上移值

问题描述

此刻,我在Excel中有一个大表,希望与动态下拉列表(级联选项)一起使用。根据您在第一个下拉菜单中所做的选择,然后在下一个单元格中,您应该具有过滤的下拉菜单。此外,对于所选的主要类别,任何选项都是唯一的。

要做的第一件事是拿起我需要的列并对其进行旋转,使其看起来与此类似(C是列名,V是值。由于任何选项对于任何类别都是唯一的,因此我遇到了问题空值,因为它有很多行):

C1   | C2   | C3
V1   | null | null
V2   | null | null
null | V3   | null
null | null | V4
null | null | V5

此格式不适用于动态下拉菜单,因为它首先显示所有空字段。 我的问题是,是否有任何方法可以通过幂查询删除空值,以便我可以将所有值都请求在第一行,例如:

C1   | C2   | C3
V1   | V3   | V4
V2   | null | V5
null | null | null
null | null | null
null | null | null

我尝试使用“填充”或“填充”选项,然后删除重复项,但由于重复相同的元素多次而无法使用,因此无法正常工作。

不确定是否有办法实现目标,因此我们将不胜感激任何帮助或建议。

谢谢!

解决方法

由于这些列是独立的,因此您可以将每个列变成一个列表,删除空值,然后将它们组合回到表中。

Table.FromColumns(
    {
        List.RemoveNulls(Pivot[C1]),List.RemoveNulls(Pivot[C2]),List.RemoveNulls(Pivot[C3])
    },{"C1","C2","C3"}
)

结果:

Result

如果列数不总是三列,但应该应用相同的想法,则可以使其更具动态性。


编辑:

实际上,它比我最初预期的要简单得多,它不受列数及其名称的影响而变得动态:

Table.FromColumns(
    List.Transform(Table.ToColumns(Pivot),List.RemoveNulls),Table.ColumnNames(Pivot)
)