“不包含”文本filterfilter太多

通过使用Power Query,我从地址字段中创build了一个地址列表。 15000个单独的excel文件。

我现在有一个15143行的列表,但我遇到了“不包含”文本filter的问题。

我想保留在特定列中不包含search词“foo”的行。

当我第一次使用“包含”“foo”文本filter时,它返回一个150行的列表

但是,当我使用“ 包含”“富”文本filter,而不是列表缩短为只有3218行。

有点意外的结果…

如果我记得我的math课15143-150 = 14993,而不是3218。

这让我疯狂!

我做错了什么或是全能的微软Bug又一次袭击了我?

此行为与预期的Sql逻辑有关:如果行字段为空,则不包含“foo”,但也不包含“foo”。 换言之,WHEREfilter会跳过评估为空的行,而not null也是空的。

你可以在Power Query中看到:

 let Source = Table.FromColumns({{null, "foo", "bar"}}), FilteredRows = Table.SelectRows(Source, each not Text.Contains([Column1], "foo") or Text.Contains([Column1], "foo")) in FilteredRows 

…只返回最后两行。

在Power Query中,如果你想避免这种奇怪的逻辑,你可以用空stringreplacenull,然后你得到更好的行为:

 = Table.ReplaceValue(Source,null,"",Replacer.ReplaceValue,{"Column1"})