如果为空则跳过一条记录

Skip a record if empty

我创建了一个函数来清除我的数据中具有空值的额外列。在这之后应该总是有 15 列,但偶尔会有或多或少,当这种情况发生时,那些 tables 应该被删除。

我试过跳过所有这些行并返回一个空的 table 但是当我尝试扩展那些 table 时我得到一个错误 "Cannot convert the value false to type Number."

(tbl as table) =>
    let
        ColumnNames = Table.ColumnNames(tbl),
        RemoveNullColumns = Table.SelectColumns(tbl, List.Select(ColumnNames, each List.MatchesAny(Table.Column(tbl, _), each _ <> null))),
        CheckColumns = Table.Skip(RemoveNullColumns, Table.ColumnCount(RemoveNullColumns) <> 15)
    in
        CheckColumns

看看这是否适合您。仅当还有 15 个剩余列时,才删除包含 null 和 returns tbl 的任何列

(tbl as table) =>
let ColumnNames = Table.ColumnNames(tbl),
ReplacedValue = Table.ReplaceValue(tbl,null,"imanull",Replacer.ReplaceValue,ColumnNames ),
UnpivotedColumns = Table.UnpivotOtherColumns(ReplacedValue, {}, "Attribute", "Value"),
FilteredRows = Table.SelectRows(UnpivotedColumns, each ([Value] = "imanull")),
NonNullColumns= List.Difference(ColumnNames,List.Distinct(FilteredRows[Attribute])),
Results = if List.Count (NonNullColumns) <> 15 then null else Table.SelectColumns(tbl,NonNullColumns)
in Results