Страницы: 1
RSS
PQ. Функция подмены части строки в одном поле по условиям из другой таблицы
 
Добрый день!
Подскажите направление мысли, уважаемые друзья.
Есть запрос, в нем столбец. В столбце нужно сделать замены текста по условиям, которые содержатся в другом запросе.
Если строка содержит текст из второго запроса, то заменяем его на  текст из такого-то столбца второго запроса.

Это вообще возможно?
 
ManagerKrr, без примера сложно ответить, но скорее всего возможно.
 
Цитата
lostandleft написал:
без примера сложно ответить,
Политика не дает прикрепить файл. Ну хотя бы порядок мысли какой? Создать параметр?  
 
За что люблю Power Query так это за то, что даже файл прикреплять не надо. Табличку можно легко генерить кодом:
Код
Table.FromColumns({{"Дядя Вася", "Тётя Петя"}, {"Все нормально", "Щас так модно"}})
Вот горшок пустой, он предмет простой...
 
Доброе время суток
Цитата
PooHkrd написал:
Табличку можно легко генерить кодом:
Ну, тогда вариант такого примера. Алексей, вы уверены, что ТС будет пальцы гнуть для примера? У любого есть смартфон, на который можно поставить любой понравившийся или не очень офис, но ведь проще же написать, что безы танцевать мешают :)
Код
let
    Source = Table.FromRows({
        {"торт вкусный", "пирог вкусный"},
        {"два торта", "два торта"},
        {"забор деревянный", "забор деревянный"},
        {"бор сосновый", "лес состновый"}
    }, {"Было", "Стало"}),
    ReplacePairs = Table.FromRows({
        {"торт", "пирог"},
        {"бор", "лес"}
    }, {"Что", "На что"})
in
    ReplacePairs
Как, используя таблицу ReplaceParis, получить для в таблице Source из столбца Было столбец Стало? :)
Изменено: Андрей VG - 17.03.2020 11:28:53
 
Цитата
Андрей VG написал:
получить в таблице Source из столбца Было столбец Стало?
Пример ваш. И решение тоже, по моему, ваше :)  Я только переделал под пример
Код
= Table.TransformColumns(Source,{{"Было", each [
i=ReplacePairs,
a=Text.Split(_," "), 
b=List.Transform(a, each try i[На что]{List.PositionOf(i[Что], _)} otherwise _),
c=Text.Combine(b," ")
][c]}})
 
Михаил Л, ну зачем так сложно :)
Код
= Table.TransformColumns(
    Source,
    {{"Было", each  Text.Combine(
        List.ReplaceMatchingItems(
            Text.Split(_," "), 
            Table.ToRows(ReplacePairs)
            ),
        " ")
        }}
    )
Изменено: Максим Зеленский - 20.03.2020 11:10:16
F1 творит чудеса
Страницы: 1
Наверх