Страницы: 1
RSS
PQ. Преобразовать список списков в таблицу
 
Добрый день.
Прошу помочь в преобразовании списка списков в таблицу
Код
let
    Источник =     {
        {{"Тверь", "Тула", 50},
        {"Москва", "Сибирь", 90},
        {"Ростов", "Самара", 60}}
    }
in
    Источник

Пример во вложении
спасибо.
 
Так?
Код
let
    Источник = Table.FromList({
        [Откуда = "Тверь", Куда = "Тула", Сколько = 50],
        [Откуда = "Москва", Куда = "Сибирь", Сколько = 90],
        [Откуда = "Ростов", Куда = "Самара", Сколько = 60]
        },Record.FieldValues, {"Откуда", "Куда", "Сколько"})
in
    Источник
 
Цитата
написал:
Так?
Цитата
написал:
Так?
К сожалению нет. Мой пример - это то что возвращает  list.generate.  
 
Так?
Код
let
    Источник =  {   
        {{"Тверь", "Тула", 50},
        {"Москва", "Сибирь", 90},
        {"Ростов", "Самара", 60}}
    },
    res = Table.FromRows(List.Combine(Источник),{"Откуда","Куда","Сколько"})
in
    res
Изменено: Msi2102 - 30.08.2022 15:13:47
 
да, то что нужно.
спасибо
 
Neostt, вообще не понял в чем проблема. Просто смотрите справку по Table.FromRows. Задать тип сразу в этой функции - может не поймёте как, а остальное тривиально.
Код
Table.FromRows ( Источник, type table [ Откуда = text, Куда = text, Сколько = number ] )

P.S. В примере лишние внешние фигурные скобки. Список списков - это {{},{}..{}}.
Изменено: surkenny - 30.08.2022 15:32:37
 
Может так?
Код
let
    Источник =     {
        {{"Тверь", "Тула", 50},
        {"Москва", "Сибирь", 90},
        {"Ростов", "Самара", 60}}
    },
    Источник1 = Источник{0},
    #"Converted to Table" = Table.FromList(Источник1, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Extracted Values" = Table.TransformColumns(#"Converted to Table", {"Column1", each Text.Combine(List.Transform(_, Text.From), " "), type text}),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Extracted Values", "Column1", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Column1.1", "Column1.2", "Column1.3"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Column1.1", type text}, {"Column1.2", type text}, {"Column1.3", Int64.Type}})
in
    #"Changed Type"
 
Цитата
написал:
Neostt , вообще не понял в чем проблема. Просто смотрите справку по Table.FromRows. Задать тип сразу в этой функции - может не поймёте как, а остальное тривиально.
Поясню:                                            
Код
 gen = List.Generate(()=>[i=0,   
                                                                        ...........
                                             это возвращает генератор.                                              
Код
   (x)=>{t{x[index_ist]}[ЦС],t{x[index_potr]}[ЦС],x[kol]}),    

Я не сообразил, что внутри List.Combine  "gen" должен быть в фигурных скобках!!!
(До сих пор не могу понять, почему??? List.Generate - возвращает список )
Ниже рабочий вариант                                                
Код
res = Table.FromRows(List.Combine({gen}),{"Источник","Потребитель","Кол-во"})
                                                ][res]
Изменено: Neostt - 30.08.2022 15:52:53
 
Neostt, а конструкцию List.Combine({gen}) на просто gen не пробовали заменить? :) Вам Msi2102 Table.Combine в код добавлял именно из-за того, что у Вас был список списков списков. А не список списков.
 
Цитата
surkenny: из-за того, что у Вас был список списков списков. А не список списков.
Если быстро читать, то забавно :D
Изменено: Jack Famous - 30.08.2022 17:10:08
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
surkenny,
Заменил, работает.
Спасибо.
Страницы: 1
Наверх