Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
PQ замена разделителя, для преобразования текстовых значений в числовые
 
Коллеги, добрый день! Прошу помочь в решении очередной задачи на Power Query. Стоит задача собирать данные из нескольких файлов, в которых есть ошибки. В числах в качестве разделителя вместо запятой иногда стоят точки, поэтому значение становится текстовым. При попытке заменить все точки на запятые с помощью Table.ReplaceValue чудо не происходит. Данную замену необходимо произвести во всех столбцах начиная с 3. Подскажите как правильно это сделать?
 
Вроде получилось, но выглядит колхозно
Код
= Table.ReplaceValue(source,0,",",(a,b,c)=>Number.FromText(Text.Replace(Text.From(a), ".", c)),List.RemoveFirstN(Table.ColumnNames(source), 2))

может кто предложит более красивое решение

 
Доброе время суток.
Такой же колхозный вариант :)
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    toNumber = (item as any) as nullable number =>
        if item is text then
            try Number.From(Text.Replace(Text.Trim(item), ",", "."), "en-US") otherwise null
        else
            item,
    transformCols = List.Transform(List.Range(Table.ColumnNames(Source), 2), each {_, toNumber, Number.Type}),
    result = Table.TransformColumns(Source, transformCols)

in
    result
 
Андрей VG, спасибо)

а я то думал сейчас все точки на запятые в столбцах тупо заменю и тип данных изменю  :D  
 
Код
= Table.TransformColumns(Source, List.Transform(List.Skip(Table.ColumnNames(Source),2), each {_, (q) as number=>try Number.From(q, "ru-RU") otherwise Number.From(q, "en-US")}))
F1 творит чудеса
 
Максим Зеленский,  спасибо.
Изменено: Андрей VG - 17 Апр 2020 14:22:17
 
Максим Зеленский, спасибо!
Страницы: 1
Читают тему (гостей: 1)
Наверх