Страницы: 1
RSS
Ошибка формата данных при обновлении в Power Query
 
Добрый день!
Прошу помочь с проблемой.

Во время написания последовательности действий все работает без ошибок. При обновлении, не смотря на то что формат колонки преобразовывался в числовой  ( и "-" менялся перед этим на "0") выдает ошибку  "DataFormat.Error Не удалось преобразовать в число.

Подскажите в чем проблема ?
Отчет имеет структуру как во вложении. Код:
Код
let
    Источник = Excel.Workbook(File.Contents("C:\Users\...........\АБС.xls"), null, true),
    #"Развернутый элемент Data" = Table.ExpandTableColumn(Источник, "Data", {"Column1", "Column2", "Column3", "Column9", "Column10", "Column11", "Column12", "Column13", "Column15", "Column17", "Column18", "Column19", "Column20", "Column22", "Column23", "Column24", "Column25"}, {"Data.Column1", "Data.Column2", "Data.Column3", "Data.Column9", "Data.Column10", "Data.Column11", "Data.Column12", "Data.Column13", "Data.Column15", "Data.Column17", "Data.Column18", "Data.Column19", "Data.Column20", "Data.Column22", "Data.Column23", "Data.Column24", "Data.Column25"}),
    #"Строки с примененным фильтром" = Table.SelectRows(#"Развернутый элемент Data", each ([Data.Column2] <> null)),
    #"Повышенные заголовки" = Table.PromoteHeaders(#"Строки с примененным фильтром", [PromoteAllScalars=true]),
    #"Измененный тип" = Table.TransformColumnTypes(#"Повышенные заголовки",{{"Sheet1", type text}, {"№", Int64.Type}, {"Артикул", Int64.Type}, {"Назва товару", type text}, {"Зал. поч.кіл.", type text}, {"Прихід, кіл.", type text}, {"Розхід, кіл.", type any}, {"Зал. кін, кіл.", type number}, {"Розхід в ц.з.", type any}, {"Розхід в  ц.р.", type any}, {"Вага в реаліз", type any}, {"Націнка, %", type any}, {"Маржа, %", type any}, {"Залишок кін, ", type number}, {"Т. з., дні", type number}, {"Група", type text}, {"укр імп", type text}, {"Постачальник *", type text}}),
    #"Замененное значение" = Table.ReplaceValue(#"Измененный тип","-",0,Replacer.ReplaceValue,{"Зал. поч.кіл.", "Прихід, кіл.", "Розхід, кіл.", "Зал. кін, кіл.", "Розхід в ц.з.", "Розхід в  ц.р.", "Вага в реаліз", "Націнка, %", "Маржа, %", "Залишок кін, ", "Т. з., дні"}),
    #"Измененный тип1" = Table.TransformColumnTypes(#"Замененное значение",{{"Зал. поч.кіл.", type number}, {"Прихід, кіл.", type number}, {"Розхід, кіл.", type number}, {"Зал. кін, кіл.", type number}, {"Розхід в ц.з.", type number}, {"Розхід в  ц.р.", type number}, {"Вага в реаліз", type number}, {"Націнка, %", type number}, {"Маржа, %", type number}, {"Залишок кін, ", type number}, {"Т. з., дні", type number}}),
    #"Добавлен пользовательский объект" = Table.AddColumn(#"Измененный тип1", "Пользовательская", each if [#"Розхід, кіл."]=0 then "0" else if [#"Зал. кін, кіл."]<= 0 then "0" else [#"Зал. кін, кіл."]/[#"Розхід, кіл."]*6),
    #"Измененный тип2" = Table.TransformColumnTypes(#"Добавлен пользовательский объект",{{"Пользовательская", type number}}),
    #"Строки с примененным фильтром1" = Table.SelectRows(#"Измененный тип2", each [Пользовательская] >= 6)
in
    #"Строки с примененным фильтром1"
 
У меня нет ошибки. В каком столбце то у вас? Еще может быть разница в разделителе дробной части "." и "," зависит от локали.
 
Поддерживаю предыдущего оратора, на файле-примере код отрабатывает без ошибок.
Если в редакторе код отрабатывает нормально, а при выводе на лист выдает ошибку, то последним шагом выделите все столбцы и в меню "Сохранить строки" выберите пункт "Сохранить ошибки". он вам покажет строки где беда.
Вот горшок пустой, он предмет простой...
 
Спасибо за ответы!
Попробовал сохранить ошибку, выдает :
Как-то можно понять в каком столбце ошибка?
 
Изменено: Luc - 29.01.2019 12:10:00
 
Luc, не нужно вставлять картинки в сообщение, лучше сохраните их на диск и прикрепляйте к сообщению.
Цитата
Luc написал:
Как-то можно понять в каком столбце ошибка?
Нет.
Изменено: PooHkrd - 29.01.2019 12:19:02
Вот горшок пустой, он предмет простой...
 
Цитата
Luc написал:
Как-то можно понять в каком столбце ошибка?
можно, посмотрите каждый шаг, где начнется появляется данная ошибка, соответственно в этом шаге и смотрите что не так
 
Luc,

Немного видоизмените формулу по отлавливанию ошибок и перемещайте на один шаг вверх, пока ошибка не найдётся:
Код
= Table.SelectRowsWithErrors(#"Строки с примененным фильтром1", Table.ColumnNames(#"Строки с примененным фильтром1"))
На вскидку, у Вас один из двух вариантов:
1. В шаге с заменой "-" на 0 Вы не учли какой-то числовой столбец.
2. В каком-то столбце помимо дефиса присутствуют другие символы (пробелы, например), поэтому замены на 0 не происходит, и при изменении типа столбца на числовой в таких ячейках появляется ошибка.
Изменено: Aleksei_Zhigulin - 29.01.2019 18:33:47
 
Цитата
PooHkrd написал:
Поддерживаю предыдущего оратора, на файле-примере код отрабатывает без ошибок.Если в редакторе код отрабатывает нормально, а при выводе на лист выдает ошибку, то последним шагом выделите все столбцы и в меню "Сохранить строки" выберите пункт "Сохранить ошибки". он вам покажет строки где беда.
Спасибо, добрый человек! вы спасли мой вечер!  :)  
Страницы: 1
Наверх