Embora não seja mencionado no doco, o Csv.Document aceita uma lista como o argumento "delimitador opcional", especificando a posição inicial (baseada em zero) de cada coluna. Você pode ver isso abaixo na Consulta gerada por PQ quando eu a apontei para esse arquivo (por exemplo, usando o Excel 2016: Faixa de dados / Nova consulta / Do arquivo / Do texto). O argumento "delimitador opcional" é: {0,10,20}
let
Source = Csv.Document(File.Contents("C:\csv.txt"),null,{0,10,20},null,1252),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type text}, {"Column3", Int64.Type}})
in
#"Changed Type"