如果为空则跳过记录

问题描述 投票:0回答:1

我创建了一个函数,该函数清除带有空值的多余列的数据。此后总是应该有15列,但是偶尔会有更多或更少,并且在发生这种情况时,应该删除这些表。

我已经尝试跳过所有这些行并返回一个空表,但是当我尝试扩展这些表时,出现错误“无法将值false转换为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
powerbi powerquery m
1个回答
0
投票

看看这是否适合您。删除任何包含null的列,仅在剩余15列时返回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
© www.soinside.com 2019 - 2024. All rights reserved.