Power Query объединяет отдельные списки в таблицу

У меня есть таблица 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"))

Но не могу найти способ объединить его в одну таблицу без какого-либо соединения.

Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
0
1 219
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

С Office 365 для этого даже не нужен Power Query, с UNIQUE это намного проще:

=UNIQUE(Table1[geo])

Но не могу найти способ объединить его в одну таблицу без какого-либо соединения.

Я думаю, что вам не стоит пытаться свести их в одну таблицу, а держать отдельно. Идея таблиц заключается в том, что каждая строка содержит информацию, связанную друг с другом, что, по-видимому, не относится к вашим данным.

Это правда, и я знаю об этом, однако, если вы хотите использовать его в списке проверки данных, вы получите ошибку (если вы используете непосредственно уникальные эффекты непосредственно там) или вам нужно создать довольно сложную формулу, чтобы поймать динамически изменяемый диапазон. Если бы у меня было это в таблице Excel, все, что мне нужно было сделать, это поместить туда именованный диапазон и игнорировать пустые значения.

Michal Palko 11.12.2020 13:54
Ответ принят как подходящий

Подобно этому посту , вы можете использовать Table.FromColumns, чтобы собрать таблицу из ваших списков.

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

Спасибо. Это замечательно. Я уже был в середине создания своей собственной гигантской функции.

Michal Palko 11.12.2020 15:14

Есть ли у вас также быстрый выигрыш, чтобы применить его к таблице независимо от количества и имен столбцов?

Michal Palko 11.12.2020 15:24

Это будет то же самое, что и в части редактирования сообщения, на которое я ссылаюсь, за исключением List.Distinct вместо List.RemoveNulls и Source вместо Pivot.

Alexis Olson 11.12.2020 15:26

Другие вопросы по теме