【问题标题】:Power Query merge distinct lists into tablePower Query 将不同的列表合并到表中
【发布时间】:2020-12-11 12:19:27
【问题描述】:

我有一个包含多列数据的 Excel 表。 我正在尝试创建另一个表,该表将用于只有唯一值的单元格下拉列表。 我需要在每列之间独立获取唯一值。

源表

geo   product   type
g1    p1        t1
g1    p2        t1
g1    p3        t2
g1    p4        t1
g2    p1        t2
g2    p2        t1
g2    p3        t2
g2    p4        t1

预期结果:

geo   product   type
g1    p1        t1
g2    p2        t2
null  p3        null
null  p4        null

我可以获得唯一的列作为列表

geo_list = List.Distinct(Table.Column(Source, "geo"))
product_list = List.Distinct(Table.Column(Source, "product"))
type_list = List.Distinct(Table.Column(Source, "type"))

但是找不到一种方法如何在没有任何连接的情况下将其合并到一个表中。

【问题讨论】:

    标签: excel powerquery m


    【解决方案1】:

    类似于this post,您可以使用Table.FromColumns 从您的列表中组装一个表格。

    Table.FromColumns(
        {
            List.Distinct(Source[geo]),
            List.Distinct(Source[product]),
            List.Distinct(Source[type])
        },
        {"geo","product","type"}
    )
    

    【讨论】:

    • 谢谢。这太棒了。我已经在创建我的自定义巨大函数了。
    • 无论列的数量和名称,您是否也有一些快速的方法可以将其应用于表格?
    • 这与我链接的帖子的编辑部分相同,除了List.Distinct 而不是List.RemoveNulls 和Source 而不是Pivot。
    【解决方案2】:

    使用 Office 365,您甚至不需要 Power Query,UNIQUE 更容易:

    =UNIQUE(Table1[geo])

    但是找不到一种方法如何在没有任何连接的情况下将其合并到一个表中。

    我认为您不应该尝试将它们放在一张桌子上,而是分开放置。表格背后的想法是,每一行都包含彼此相关的信息,这显然不是您的数据的情况。

    【讨论】:

    • 这是真的,我知道这一点,但是如果你想在数据验证列表中使用它,你会得到错误(如果你直接在那里使用 Unique fx)或者你需要创建非常复杂的公式来捕捉动态调整大小的范围。如果我把它放在 excel 表中,我所要做的就是把命名范围放在那里并忽略空白值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    相关资源
    最近更新 更多