Как выполнить поиск по всей таблице для фразы в Powerquery - PullRequest
1 голос
/ 22 мая 2019

Как проверить в powerquery, если вся таблица содержит значение поиска в каком-либо столбце или какой-либо строке. Скажем, у нас есть таблица:

+------------+-----------+---------+
|  column1   |  column2  | column3 |
+------------+-----------+---------+
| apple      | banana    | cherry  |
| damson     | entawak   | fig     |
| watermelon | wolfberry | plum    |
+------------+-----------+---------+

Я хочу найти, в каком столбце и строке есть wolfberry? Это с = 2 и г = 3. Я хотел бы использовать координаты для дальнейшей обработки данных.

Вот код примера таблицы для вашего удобства:

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"

1 Ответ

2 голосов
/ 22 мая 2019

Вы можете использовать следующую технику:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...