Страницы: 1
RSS
Добавление знаков в Power Query
 
Уважаемые форумчане, доброго времени суток!

Прошу помочь со следующим вопросом:
в запросе PQ есть столбец с числами, нужно создать доп.столбец , который будет дописывать 00 если 1 сивмол - 5 и 005; 0, если 2 символа 50 и 050; и если символов больше, то ничего не дописывать, брать как есть без изменений.
В Excel формулу сделал, но не получается переделать для PQ.
При использовании функции Text.Length выдает ошибку
"Expression.Error: Не удается применить доступ к полям в типе Function.
Сведения:
   Value=Function
   Key=Имеющиеся данные"

Пример во вложении.
Windows 10, Office 2016.
С уважением, Lari.
Изменено: Lari - 26.06.2018 09:31:54
 
нужно аргумент фунции в скобках прописывать
Код
Text.Length([Имеющиеся данные])
Изменено: sanych09 - 26.06.2018 10:13:02
Опыт и практика - великое дело! Век живи, Век учись!
 
Доброе время суток.
Цитата
sanych09 написал:
нужно аргумент фунции в скобках прописывать
И чем это поможет, если значение число, а не текст? Power Query не занимается автоматическим приведением типов.
Lari, проверяете, раз у вас смесь чисел и текста в столбце на число [Имеющиеся данные] is number
и используете функцию преобразования числа в текст с форматированием Number.ToText

P. S. Lari, может всё же стоит начать изучать справочник по функциям Power Query?
 
Андрей VG, добрый день
это поможет автору поста. Задачу он своим методом решил в Excel путем написания формулы типа: если Длина текста > 1 (символа), то "00"& Столбец. (опеределние двузначных и т.д чисел)
я лишь помог с синтаксисом, а дальше я так понимаю, Lari, сделает по аналогии.
Цитата
Lari написал:
При использовании функции Text.Length выдает ошибку
Какие типы данных в столбце, это другой вопрос, как Вы правильно заметили
Опыт и практика - великое дело! Век живи, Век учись!
 
Доброго времени суток!
sanych09, спасибо за помощь, Ваш совет помог мне.
Андрей VG, спасибо за функцию, о ней не знал, переводил числа в текст на этапе загрузки в PQ через "Преобразование" - Тип данных -Текст.
Цитата
Андрей VG написал:
P. S.  Lari , может всё же стоит начать изучать справочник по функциям Power Query?
Прежде чем написать сюда я в нем собственно нашел первую часть моей формулы, правда не смог использовать пока sanych09, не помог.

Вторую часть формулы тоже попытался разобрать combiner-functions, но как-то не смог адаптировать под свою задачу, в итоге воспользовался амперсандом.
Итоговая формула получилась
Код
if([Имеющиеся данные]) is null then"" 
else if([Пользовательская])>2 then [Имеющиеся данные] 
else if([Пользовательская])>1 then "0"&[Имеющиеся данные] 
else "00"&[Имеющиеся данные])
С уважением, Lari.
 
А еще, можно вашу формулу записать значительно короче:
Код
=Text.End("00"&Text.From([Имеющиеся данные]),3)
Изменено: PooHkrd - 27.06.2018 09:27:50 (слегка подправил формулу)
Вот горшок пустой, он предмет простой...
 
PooHkrd, шикарно!  
Опыт и практика - великое дело! Век живи, Век учись!
 
PooHkrd, как  элегантно и функционально.
Круто, спасибо!
Андрей VG, вот даже сейчас прочитав про использованную PooHkrd, формулу text-from в справочнике не особо становится понятнее.

С уважением, Lari.
 
А что конкретно не понятно? Функцию нужна для преобразования типов значений в тип Текст. Ибо, в отличие от Excel и Power Pivot, PQ не делает неявных преобразований типов, и если вы попытаетесь сцепить
Код
[число] & [дата]
, то PQ выдаст сообщение об ошибке, а вот если оба аргумента заключить в функцию
Код
Text.From([число]) & Text.From([дата])
, то такая формула сработает корректно.
Изменено: PooHkrd - 27.06.2018 09:51:29
Вот горшок пустой, он предмет простой...
 
PooHkrd, теперь понятно, сначала корректно соединяет, а потом по принципу формулы excel ПРАВСИМВ оставляет необходимую часть.
Спасибо за разъяснение.
С уважением Lari.
Страницы: 1
Наверх