繁体   English   中英

Excel Power Query错误

[英]Excel Power Query Errors

在Excel Power Query中,我尝试向查询中添加一列(Table.AddColumn),其中每一行的值检查整行,以查看是否有任何字段具有“错误”记录,但我不知所措我该怎么做。 我知道如何使用“尝试...否则”检查单个字段,但是我不确定如何输入整个行。 基本上,我的目标是要有一个字段,该字段指示记录(即行)中的任何其他字段是否有错误,而无需将每一列硬键到检查每个错误的函数中。

任何帮助表示赞赏!

我确定您可以通过加入Table.SelectRowsWithErrorsTable.SelectRowsWithErrors一些棘手的Table.SelectRowsWithErrors

不幸的是,我没有时间弄清楚现在到底是什么样子,但是希望我可以稍后再进行更新,否则其他人会弄清楚并提供更好的答案。

增加了Jeff的方法。 如果您需要所有带有某些指示器列的行,例如“错误”,“精细”

创建一个函数,该函数将返回上一步之前的表,并在两个单独的查询中对其进行引用。 在一个查询中,仅保留错误并添加自定义列“ Errored”;在第二个查询中,删除错误并添加自定义列“ Fine”

追加2个以上的查询即可得出最终结果。

如果您只需要错误记录,则可以修改原始查询并仅保留错误记录。

如果严格希望有这样的列,则可以执行以下步骤:

let
    Source = Table.ExpandListColumn(Table.FromRecords({[Name= {"Bob", "Jim", "Paul"}, Discount = .15] }), "Name"),
    AddedErrClmn = Table.AddColumn(Source, "ErrClmn", each if [Name] = "Jim" then [Name]-[Discount] else [Discount]),
    AddedIndexClmn = Table.AddIndexColumn(AddedErrClmn, "Index", 1, 1),
    ErrorlessIndexes = Table.RemoveRowsWithErrors(AddedIndexClmn)[Index],
    AddedCheckClmn = Table.AddColumn(AddedIndexClmn, "Validation", each if List.Contains(ErrorlessIndexes, [Index]) then "ok" else "Error")
in
   AddedCheckClmn

因此,您可以添加索引,清除错误表并将结果索引保存在列表ErrorlessIndexes中 然后添加带有公式的列:在列表中搜索每一行的索引,如果找到,则行确定。 如果不是,则包含错误。

考虑一下

let
    Source = #table({"a","b","c"},{{1,2,3},{2,[3],4},{3,4,5}}),
    #"Added Index" = Table.AddIndexColumn(Source, "Index", 0, 1),
    Nested = Table.AddColumn(#"Added Index", "Has Error", each Table.RowCount(Table.SelectRowsWithErrors(Record.ToTable(#"Added Index"{[Index]})))>0)
in
    Nested

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM