Страницы: 1
RSS
Power query: сменить регистр внешних данных, используемых внутри запроса
 
Друзья, помогите, пожалуйста. Есть такая строка запроса:
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица14"]}[Content],
    #"Строки с примененным фильтром" = Table.SelectRows(Источник, each Text.StartsWith([Наименование], Excel.CurrentWorkbook(){[Name="Наименование"]}[Content]{0}[Column1]))

Но power query делает фильтр с учетом регистра введенных данных. А данные вводятся с листа пользователем, и как он их введет - одному богу известно. Поэтому мне нужно привести к единому регистру и столбец с данными и данные из ячейки для ввода на листе. Text.Lower в случае с данными из столбца в самом запросе понятно куда писать, а куда написать Text.Lower в случае с этим выражением Excel.CurrentWorkbook(){[Name="Наименование"]}[Content]{0}[Column1]???
 
Татьяна Агафонова, как вариант перед шагом с фильтром добавить шаг, в котором применить Text.Lower в нужном столбце. а потом уже шаг с фильтром
 
Код
let
   Источник = Excel.CurrentWorkbook(){[Name="Таблица14"]}[Content],
   #"Строки с примененным фильтром" = Table.SelectRows(Источник, each Text.StartsWith(Text.Lower([Наименование]), Text.Lower(Excel.CurrentWorkbook(){[Name="Наименование"]}[Content]{0}[Column1])))
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Татьяна Агафонова,
Я бы рекомендовал все же сделать так:
Код
let
   Источник = Excel.CurrentWorkbook(){[Name="Таблица14"]}[Content],
   фильтр = Text.Lower( Excel.CurrentWorkbook(){[Name="Наименование"]}[Content]{0}[Column1] ),
   #"Строки с примененным фильтром" = Table.SelectRows( Источник, each Text.StartsWith( Text.Lower( [Наименование] ), фильтр ) )

В вашем варианте для фильтрации каждой строки будет происходить обращение к ячейке в таблице на листе. В моем варианте произойдет одно обращение к ячейке, результат будет один раз пропущен через функцию снижения регистра и результат записан в память, далее при фильтрации для каждой строки таблицы аргумент будет забираться из памяти, а не с листа.
Да и читабельность кода будет гораздо лучше.
Вот горшок пустой, он предмет простой...
 
Дмитрий(The_Prist) Щербаков,
спасибо, работает!
 
PooHkrd, Спасибо большое, работает быстрее!
Страницы: 1
Наверх