Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 След.
PQ. Настраиваемый столбец. Проверка текстового формата в столбце, если в строке значение формата текста, то выдать 1, если формата число, то выдать 0
 
Или как-то так:
Код
= Table.AddColumn(Источник, "test", each let x = [Столбец А] in Number.From(not ((try Number.From(x) otherwise x) is number)))
PQ. Настраиваемый столбец. Проверка текстового формата в столбце, если в строке значение формата текста, то выдать 1, если формата число, то выдать 0
 
PooHkrd, в таком виде не сработает для чисел, надо через Number.From. Если я верно понял задачу, конечно.
Изменено: Aleksei_Zhigulin - 21 Янв 2020 18:36:13
Power querry задваивает данные после применения фильтра в источнике
 
fireinthehole, зачем Excel создаёт _xlnm._FilterDatabase научно я Вам не объясню. Да это и не сильно важно в данном контексте. Достаточно понимать, что PQ может забирать из файла Excel различные сущности (лист, таблица, имя). Как раз именем (скрытым) и является _xlnm._FilterDatabase в Вашем файле (см. столбец Kind в шаге Источник). Соответственно, если Вам нужны только данные с Листа1, то надёжнее будет забирать их таким образом:
Код
= Источник{[Item="Лист1",Kind="Sheet"]}[Data]
То есть если в книге Источник появятся имена, таблицы или другие листы - это не повлияет на результат запроса.
Изменено: Aleksei_Zhigulin - 21 Янв 2020 17:45:45
Power querry задваивает данные после применения фильтра в источнике
 
fireinthehole, правильно, что задваиваются - Вы не отфильтровали _xlnm._FilterDatabase.
Изменено: Aleksei_Zhigulin - 21 Янв 2020 12:01:11
Таблица дат в Power Pivot
 
vector1, или так:
PQ. Разделить текст на строки
 
artyrH, вот в этой теме публиковал картинку, которая позволяет понять, что такое a, b, c. А дальше просто описываем, что мы хотим сделать с каждым значением в столбце "РД" (т.е. a) - найти список чисел между разделителями и оставить между разделителями только по одному числу из списка.
PQ. Разделить текст на строки
 
Ещё вариант:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица4"]}[Content],
    replace = Table.ReplaceValue(Source,0,0,(a,b,c)=>let x = Text.BetweenDelimiters(a,"(", ")"), y = Text.Split(a, x) in List.Transform(Text.Split(x, ", "), each y{0}&_&y{1}),{"РД"}),
    expand = Table.ExpandListColumn(replace, "РД")
in
    expand
PQ как вытащить значение из другого запроса в текущий, функция для извлечения значения из другого запроса и подстановки его в текущий
 
saejin, т.к. файла примера нет - общие рекомендации. Вы можете получить данные промежуточных шагов запроса, например, используя метаданные. Т.е. в искомом запросе добавляете шаг вроде такого:
Код
result = ИмяПоследнегоШага meta [ЛюбоеГоворящееИмя = ИмяПромежуточногоШага]

Затем в другом запросе можете получить данные этого промежуточного шага следующим образом:

Код
 Source = Value.Metadata(ИмяЗапроса)[ЛюбоеГоворящееИмя]
Как разбить строки по признаку
 
Shantin, вариант в PQ:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    group = Table.Group(Source, {"Дата"}, {"temp", each #table({"Дата"},{{null}}) & _}),
    combine = Table.Skip(Table.Combine(group[temp]),1)
in
    combine
Преобразовать данные Power Query для сводной таблицы
 
Николай Савенко, функция Максима Зеленского Вам в помощь (для работы с уровнями группировок):

https://github.com/hohlick/Power-Query-Excel-Formats/blob/master/RowsOutline/ExcelWorksheetsRowOutlines.pq
Изменено: Aleksei_Zhigulin - 26 Ноя 2019 19:40:45
Как разбить данные одного столбца на два в Power Query
 
Андрей Лящук, спасибо за 3 аргумент Table.SplitColumn. Давно собирался с ним поковыряться, найти альтернативу дефолтным сплиттерам, так и не собрался. Свои 5 копеек:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    split = Table.SplitColumn(Source, "Производитель/код", (x)=>let a = try Number.From(x) otherwise null
                                                                in {if a = null then x else null, a},
                                                           {"Производитель", "Код"})
in
    split
Изменено: Aleksei_Zhigulin - 24 Ноя 2019 03:17:20
Фильтрация мусорных данных в виде парных записей в Power BI
 
Лады, №4  :)
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    sort = Table.Sort(Source,List.Transform({"Серийный№", "Дата/время"}, each {_,0})),
    group = Table.Group(sort, {"Серийный№", "количество"}, {"temp", each [a = Table.RowCount(_),
                                                                          b = List.Count(List.Select([количество], each _ < 0)),
                                                                          c = if b = 0 then _ else Table.LastN(_, a-b-Number.From(a>b))][c]},
                                                           0, (x,y)=>Number.From(x[#"Серийный№"] <> y[#"Серийный№"] or x[количество] <> -y[количество])),
    combine = Table.Combine(group[temp])
in
    combine

Цитата
PooHkrd написал:
если мы находим отрицательную запись по счетчику, то мы точно знаем что следующая запись по нему это будет корректировка и между ними двумя не будет записей с корректными значениями?
Эта ситуация тоже обрабатывается, по идее.
Фильтрация мусорных данных в виде парных записей в Power BI
 
Попытка №3  :)
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    sort = Table.Sort(Source,List.Transform({"Серийный№", "Дата/время"}, each {_,0})),
    group = Table.Group(sort, {"Серийный№", "количество"}, {{"temp", each if List.Sum([количество]) = 0 then #table({},{}) else _}}, 0,
                                                           (a,b)=>Number.From(b[#"Серийный№"] <> a[#"Серийный№"] or b[количество] <> -a[количество])),
    combine = Table.Combine(group[temp])
in
    combine
Изменено: Aleksei_Zhigulin - 29 Окт 2019 13:53:18
Фильтрация мусорных данных в виде парных записей в Power BI
 
PooHkrd, Вам не угодишь  :)  Согласен, не учёл такой ситуации. Но интуиция подсказывает, что должно быть достаточно простое решение  :)  
Фильтрация мусорных данных в виде парных записей в Power BI
 
PooHkrd, да, спасибо, тогда так:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    cols = {"Серийный№", "количество"},
    negative = Table.SelectColumns(Table.SelectRows(Source, each [количество] < 0), cols),
    transform = negative & Table.TransformColumns(negative, {"количество", each _ * -1}),
    merge = Table.NestedJoin(Source, cols, transform, cols, "temp",JoinKind.LeftAnti),
    remove = Table.RemoveColumns(merge,{"temp"})
in
    remove
Фильтрация мусорных данных в виде парных записей в Power BI
 
Ещё вариант:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    merge = Table.NestedJoin(Source,{"Серийный№"},Table.SelectRows(Source, each [количество] < 0),{"Серийный№"}, "temp"),
    replace = Table.ReplaceValue(merge,0,each [количество],(a,b,c)=>a{0}[количество]+c,{"temp"}),
    filter = Table.SelectRows(replace, each not ([количество] < 0 or [temp] = 0)),
    remove = Table.RemoveColumns(filter,{"temp"})
in
    remove
Power Query заполнение столбца вниз
 
Viper25, добрый день. Сперва замените пустоту на null.
Изменено: Aleksei_Zhigulin - 25 Окт 2019 11:47:07
Power Query: как округлить дату до ближайшей предыдущей пятницы (понедельника)
 
PooHkrd,  :D  
Power Query: как округлить дату до ближайшей предыдущей пятницы (понедельника)
 
Можно попроще:
Код
= Table.AddColumn(Table, "Friday", each Date.StartOfWeek([Дата], 5))
Подключение сводной к запросу PQ, DataFormat.Error: Не удалось преобразовать в число.Сведения:(пусто)
 
Xat,  запрос ругается на формат данных, говорит, не удалось преобразовать в число, почему бы не дать ему, что он хочет?  :)  Вы меняете пустоту на "-", замените лучше на null или 0.
Удаление дубликатов из 5 столбцов, После выгрузки контактов в Excel необходимо избавиться от дублей номеров, которые добавили мессенджеры
 
Или лучше так:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица15"]}[Content],
    func = (x,y) => Text.Combine(List.Transform(List.Distinct({x,y}), Text.From),";"),
    add = Table.AddColumn(Source, "temp", each [#"1+2" = func([1],[2]), #"3+4" = func([3],[4])]),
    expand = Table.ExpandRecordColumn(add, "temp", {"1+2", "3+4"}),
    final = Table.SelectColumns(expand,{"NN", "1+2", "3+4", "Комм."})
in
    final
Удаление дубликатов из 5 столбцов, После выгрузки контактов в Excel необходимо избавиться от дублей номеров, которые добавили мессенджеры
 
olegMir, для этого нужен другой подход. Вариант ниже (группы заданы вручную):
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица15"]}[Content],
    group = Table.Group(Source, {"NN", "Комм."}, {"temp", each [a = (x,y) =>Text.Combine(List.Transform(List.Union({x,y}), Text.From),";"), b = a([1],[2]), c = a([3],[4])]}),
    expand = Table.ExpandRecordColumn(group, "temp", {"b", "c"}, {"1+2", "3+4"}),
    reorder = Table.ReorderColumns(expand,{"NN", "1+2", "3+4", "Комм."})
in
    reorder
Изменено: Aleksei_Zhigulin - 16 Сен 2019 14:57:37
Точка перед большой буквой
 
Как-то так:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    list = List.Transform({"А".."Я","Ё","A".."Z","0".."9"}, each " "&_),
    replace = Table.ReplaceValue(Source, 0, (z)=> List.Sort(List.Union(List.Transform(list, each Text.PositionOf(z[Столбец1], _, 2))), 1),
                                            (a,b,c)=> List.Accumulate(c, a, (x,y)=> Text.Insert(x,y,".")), {"Столбец1"})
in
    replace
PowerPivot, PowerQuery, PowerBI
 
Андрей VG, спасибо! Значит, нет смысла перечитывать.
PowerPivot, PowerQuery, PowerBI
 
Максим Зеленский, спасибо!

Про февральскую версию тоже не знал, думал, с 2017 года не было обновлений.
PowerPivot, PowerQuery, PowerBI
 
Только что заметил, обновилась спецификация языка M (25.07.2019):

https://docs.microsoft.com/en-us/powerquery-m/power-query-m-language-specification

Интересно, что нового.
Изменено: Aleksei_Zhigulin - 15 Авг 2019 16:26:57
Ошибка при вызове функции в PQ
 
inженер, тип данных должен быть текст. Сделайте так:
Код
#"01.07.2919_Sheet" = Источник{[Item=Text.From(ЗаСутки),Kind="Sheet"]}[Data],
Почему Power Query не распознает дату?, В конкретном файле в одной конкретной ячейке Power Query не распознает дату как дату
 
Борис13, я лишь внёс минимальные правки в запрос, чтобы он у Вас заработал (добавил шаг transform и перенёс шаг преобразования типов в конец). Но, по-хорошему, лучше устранить причины, чем бороться с последствиями. Для этого достаточно посмотреть на код:

Как видно из скрина № 1, к столбцу был применён некорректный тип данных (должен быть текст), т.е. не стоит слепо полагаться на автоматическое проставление типов столбцов.

Интереснее в Вашем примере (на мой взгляд), что некорректный тип столбца (правда, десятичное, а не целое число) был уже на этапе загрузки таблицы (скрин № 2). Вообще, можно заметить, что для каждого столбца уже определён тип данных (что нехарактерно для запроса PQ к книге Excel). Какой-то проблемой, впрочем, это не является - всегда можно задать тип данных вручную. Причина, как выяснилось, в том, что запрос происходит к двоичной книге Excel. Вообще, когда это возможно, лучше в качестве источника данных для запросов PQ использовать файлы .xlsx вместо .xlsb.

Изменено: Aleksei_Zhigulin - 9 Авг 2019 19:16:42
Почему Power Query не распознает дату?, В конкретном файле в одной конкретной ячейке Power Query не распознает дату как дату
 
Борис13, добрый день, слегка изменил код, проверяйте.
Преобразование таблицы с выборкой и удалением дубликатов
 
Доброго времени суток, до кучи:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    group = Table.Group(Source, {"Глав. Ст."}, {{"temp", each Table.Transpose(_){1}}, {"cnt", Table.RowCount}}),
    func = (x)=> List.Transform({1..List.Max(group[cnt])}, each x & Text.From(_)),
    expand = Table.ExpandRecordColumn(Table.RemoveColumns(group,{"cnt"}), "temp", func("Column"), func("инд."))
in
    expand
Страницы: 1 2 3 4 5 6 7 8 След.
Наверх