- обрабатываю данные.
Мне нужно заменить значения ячеек в столбце. Как заменить значения по одному - понятно - жмем "замена значений" и там пишем что на что заменить.
Вопрос такой. Как заменить значения массово? Мне нужно заменить несколько десятков значений. Полагаю, нужно как-то воспользоваться Table.ReplaceValue отлично от ее стандартного функционала.
Подскажите решение, пожалуйста )
Решение: ничего не жмем, ReplaceValue не используем, вместо этого - создаем список замен, подсовываем его в List.Accumulate и третьим аргументом Text.Replace в зависимости от того что на что меняем - возможны варианты, но без примера обсуждать тут нечего
Спасибо. Попробую сперва сам изучить List.Accumulate. Подскажите, на будущее, в каком виде необходимо предоставить пример?
ну xls* или pbix - в чём уж работаете
https://youtu.be/oFK5ZBkq8gc
Большое спасибо!
обращаю внимание - там справочник на записях; на списках оно шустрее
Ну аккумулирует не список списков {{найти, заменить},{...}}, а список записей{[найти=,заменить=],[...]}; Т. е. первоначально таблица подстановки и её Table.ToRecords, а не Table.ToRows
Медленнее получается? Вот интересно....
ну понятное дело от объема зависит
Список записей всё же не рационально совсем. Я думал одна запись... [найти1=заменить1, найти2=заменить2, ....]
В этом сообщении вы объяснили как сделать замены, не могли бы вы на примере показать?
и к чему в этом примере применять замены?
Столбец со старыми значениями, допустим там больше строк, заменить списком значений которые соответствуют во втором столбце
Вот первый пример
let f=(x)=>Excel.CurrentWorkbook(){[Name=x]}[Content], g=(y)=>(x)=>Record.FieldOrDefault(y,x,x), dict = List.Accumulate(Table.ToRows(f("Таблица1")),[],(s,c)=>Record.AddField(s,c{0},c{1})), to = Table.TransformColumns(f("Таблица2"),{"Город",g(dict)}) in to
Большое спасибо! Круто работает.
Обсуждают сегодня