Страницы: 1
RSS
PQ.Импорт типов для столбцов
 
Здравствуйте, уважаемые знатоки!
Есть 2 таблицы:
1-исходная,
2-справочник типов столбцов для таблицы 1. (название столбца - тип)
Пытаюсь изменить типы в таблице 1 с помощью импортируемой таблицы 2, но пока не получается
Подскажите, пожалуйста, как правильно написать функцию ?
так не работает:
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица"]}[Content],
    types = List.Zip( { Excel.CurrentWorkbook(){[Name="types"]}[Content][ColName], Excel.CurrentWorkbook(){[Name="types"]}[Content][Type] } ),
    TrTypes = Table.TransformColumnTypes(Источник, types )
in
    TrTypes
 
у вас не получится так просто из текста сделать тип, используйте доп функцию, типа такой :
Код
 (txt)=> Record.Field(
    [ 
    number =Number.Type,
    integer = Int64.Type,
    time = Time.Type, 
    date = Date.Type, 
    datetime = DateTime.Type, 
    duration = Duration.Type,
    text = Text.Type,
    currency = Currency.Type
    ],txt)
тогда код будет
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица"]}[Content],
    types = List.Zip( { Excel.CurrentWorkbook(){[Name="types"]}[Content][ColName], List.Transform(Excel.CurrentWorkbook(){[Name="types"]}[Content][Type],TypeFromText)} ),
    TrTypes = Table.TransformColumnTypes(Источник, types )
in
    TrTypes
Изменено: buchlotnik - 31.05.2020 23:40:55
Соблюдение правил форума не освобождает от модераторского произвола
 
buchlotnik, большое спасибо!!
неожиданно, думал это простое действие)
 
А чего неожиданного? Обычное преобразование типов это из типа в тип (число в текст, текст в дату); а вы хотите получить тип как вещь в себе, причем из текста, это  немножко нетривиально  ;)
Соблюдение правил форума не освобождает от модераторского произвола
 
Доброе время суток.
Вариант.
Код
let
    typeDef = Table.ToRows(Table.TransformColumns(Excel.CurrentWorkbook(){[Name="types"]}[Content], {"Type", each Expression.Evaluate(_, #shared)})),
    typed = Table.TransformColumnTypes(Excel.CurrentWorkbook(){[Name="Таблица"]}[Content], typeDef)
in
    typed
 
Андрей VG, очень круто! спасибо!!!
Страницы: 1
Наверх