2016-07-25 74 views
0

How to search multiple strings in a string?這個頁面上使用的答案串電源查詢選擇記錄我設法寫下面的查詢 -由多個字符串或通過在不同的領域

let 

Source = Csv.Document(File.Contents("P:\DMWORK\all_donations_for_last_10_years.txt"),[Delimiter=" ", Encoding=1252]), 

#"Promoted Headers" = Table.PromoteHeaders(Source), 

#"Defined Table" = Table.TransformColumnTypes(#"Promoted Headers", 
{{"Donation Date", type date}, {"Amount", type number}, {"Company", type text}, {"Extra Codes", type text}}), 

Text.ContainsAny = (string as text, list as list) as logical => 
    List.AnyTrue(List.Transform(list, (substring) => Text.Contains(string, substring))), 

FirstFilter = Table.SelectRows(#"Defined Table", each Text.ContainsAny([Company], {"Assoc","Band","Baseball"})), 

SecondFilter = Table.SelectRows(#"Defined Table", each [Extra Codes] = "FUNDRAIS"), 

FinalResult = FirstFilter or SecondFilter 

in 

FinalResult 

那麼我現在要做的,是SelectRows匹配FirstFilter或SecondFilter。然而它給了我一個「Expression.Error:該值不是單個字符的字符串。詳細信息:Value =」error。

如果有人可以讓我在正確的方向來解決這個問題,我會非常感激。

在此先感謝。

回答

1

我會使用祕密的「或」運算符來簡化它。我不是諷刺 - 它實際上是祕密的,因爲它們的文檔中完全模糊不清。嘗試搜索它...

無論如何,我會從FirstFilter下來的東西替換代碼,如:

Filter = Table.SelectRows(#"Defined Table", each Text.ContainsAny([Company], {"Assoc","Band","Baseball"}) or [Extra Codes] = "FUNDRAIS"), 

in 

Filter 
+0

麥克,那工作 - 謝謝! –