2015-07-01 4 views
0

Как выплескивать записи, отображаться в области запросов к книге как записи ошибок?Power query Error.Record

Например, если [AcctClass] <> [_checkAcctClass] столбцы не совпадают, отклонить эту запись как ошибку

let 
    source = AccountIDsWithDuplicates, 
    grouped = Table.Group(source, {"AcctID"}, {{"AcctClass", each List.Max([AcctClass]), type logical}, {"_checkAcctClass", each List.Min([AcctClass]), type logical}, {"Sum_Bal", each List.Sum([#"Bal_EUR"]), type number}}), 
    // Make sure accounts only have one AcctClass 
    ErrorRecords = Table.SelectRows(grouped, each([AcctClass] <> [_checkAcctClass]) 
in 
    grouped 

ответ

1

слагающих Table.TransformRows создавать ошибки, а затем положить их обратно в таблицу с Table.FromRecords может делать то, что вы хотите?

= Table.FromRecords(Table.TransformRows(grouped, each if [AcctClass] <> [_checkAcctClass] then error "didn't match" else _), Value.Type(grouped)) 

Если первая строка является ошибка, то Table.FromRecords будет полностью разорвать, но вы можете обойти, что, говоря это, какой тип таблицы ожидать.

Пример Mashup:

let 
    Source = Csv.Document("AcctID,AcctClass 
     1,false 
     1,true 
     2,true 
     2,true"), 
    #"Promoted Headers" = Table.PromoteHeaders(Source), 
    AccountIDsWithDuplicates = Table.TransformColumnTypes(#"Promoted Headers",{{"AcctID", Int64.Type}, {"AcctClass", type logical}}), 
    grouped = Table.Group(AccountIDsWithDuplicates, {"AcctID"}, {{"AcctClass", each List.Max([AcctClass]), type logical}, {"_checkAcctClass", each List.Min([AcctClass]), type logical}}), 
    ErrorRecords = Table.FromRecords(Table.TransformRows(grouped, each if [AcctClass] <> [_checkAcctClass] then error "didn't match" else _), Value.Type(grouped)) 
in 
    ErrorRecords 
Смежные вопросы