如何在整个 table 中搜索 Powerquery 中的短语
How to search entire table for a phrase in Powerquery
如果整个 table 包含任何列或任何行中的搜索值,如何检查 powerquery。假设我们有一个 table:
+------------+-----------+---------+
| column1 | column2 | column3 |
+------------+-----------+---------+
| apple | banana | cherry |
| damson | entawak | fig |
| watermelon | wolfberry | plum |
+------------+-----------+---------+
我要查找哪一列哪一行有wolfberry
?它是c=2和r=3。我想使用坐标进行进一步的数据处理。
为了方便起见,这里是示例 table 的代码:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSiwoyElV0lFKSswDQiAjOSO1qKhSKVYnWiklMbc4Pw8olppXkliemH1oAZCdlpkOlixPLEktyk3NASsoz89JSwLr01EqyCnNVYqNBQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t, Column3 = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type text}, {"Column3", type text}})
in
#"Changed Type"
您可以使用以下技巧:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSiwoyElV0lFKSswDQiAjOSO1qKhSKVYnWiklMbc4Pw8olppXkliemH1oAZCdlpkOlixPLEktyk3NASsoz89JSwLr01EqyCnNVYqNBQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t, Column3 = _t]),
func = (word) =>
[r = Table.AddIndexColumn(Source, "r", 1, 1),
c = Table.AddIndexColumn(Table.Transpose(Source), "c", 1, 1),
coordinates = [r = Table.FindText(r, word)[r]{0}, c = Table.FindText(c, word)[c]{0}]
][coordinates],
search = func("wolfberry")
in
search
如果整个 table 包含任何列或任何行中的搜索值,如何检查 powerquery。假设我们有一个 table:
+------------+-----------+---------+
| column1 | column2 | column3 |
+------------+-----------+---------+
| apple | banana | cherry |
| damson | entawak | fig |
| watermelon | wolfberry | plum |
+------------+-----------+---------+
我要查找哪一列哪一行有wolfberry
?它是c=2和r=3。我想使用坐标进行进一步的数据处理。
为了方便起见,这里是示例 table 的代码:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSiwoyElV0lFKSswDQiAjOSO1qKhSKVYnWiklMbc4Pw8olppXkliemH1oAZCdlpkOlixPLEktyk3NASsoz89JSwLr01EqyCnNVYqNBQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t, Column3 = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type text}, {"Column3", type text}})
in
#"Changed Type"
您可以使用以下技巧:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSiwoyElV0lFKSswDQiAjOSO1qKhSKVYnWiklMbc4Pw8olppXkliemH1oAZCdlpkOlixPLEktyk3NASsoz89JSwLr01EqyCnNVYqNBQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t, Column3 = _t]),
func = (word) =>
[r = Table.AddIndexColumn(Source, "r", 1, 1),
c = Table.AddIndexColumn(Table.Transpose(Source), "c", 1, 1),
coordinates = [r = Table.FindText(r, word)[r]{0}, c = Table.FindText(c, word)[c]{0}]
][coordinates],
search = func("wolfberry")
in
search