Forum Discussion

jaryszek's avatar
jaryszek
Super User
4 years ago
Solved

Change column types based on rows and function created

Hi Guys,   I have 2 tables, one with ColumnTypes: TableNameColumnTypes TableTest {"Col1",type text}, {"Col2",Int64.Type}, {"Col3",type logical} Table3 {"Col1",type text}, {"Col2",t...
  • jaryszek's avatar
    jaryszek
    4 years ago

    thank you for taking the topic. 

    I managed to solve the issue using

     

     

    let
    InputTable = "TableTest",
    Source = Excel.CurrentWorkbook(){[Name=InputTable]}[Content],
    TableType = Table.SelectRows(Excel.CurrentWorkbook(){[Name="TableType"]}[Content], each [TableName] = InputTable),
    TableTypeList = Table.AddColumn(TableType, "Custom", each fnGetListOfOccurences([ColumnTypes],"{","}")),
    Transformation = List.Accumulate(List.Numbers(0,Table.ColumnCount(Source)), Source, (state, index) => Table.TransformColumns(state,{{Table.ColumnNames(Source){index}, each if TableTypeList[Custom]{0}{index}{1}="Int64.Type" or TableTypeList[Custom]{0}{index}{1}="type number" then try Int64.From(_) otherwise _ else _}})),
    
    in 
    
    Transformation