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

Страницы: 1 2 3 4 5 6 След.
PQ: Подстановка значений с разными условиями
 
всё так, добавить нечего  :)  
PQ: Подстановка значений с разными условиями
 
Ещё вариант:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    func = Splitter.SplitTextByDelimiter("; "),
    final = Table.AddColumn(Source, "ВК", each if List.Contains(func([Столбец1]), "Отклонение") then "Брак" else
                                               if List.AllTrue(List.Transform(func([Столбец1]), each _ = "Акцептовать")) then "Акцп" else "В работе")
in
    final
Наложение фильтров в PQ, исключить строки содержащие определенные данные в столбце
 
kaa700,
Код
= Table.SelectRows(YourTable, each not Text.Contains([YourColumn], "стэ", Comparer.OrdinalIgnoreCase))
PQ Отчет по сверке итогов
 
Ещё вариант:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    group = Table.Group(Source, {"dealID", "Дата"}, {{"sum", each List.Max({List.Sum([Сумма]),0})}, {"cash", each [Сумма в кассе]{0}}}, 0, (a,b)=> Number.From(b[dealID] = null)),
    sum = {0}&List.Transform(List.RemoveLastN(List.Transform(List.Zip({group[sum],group[cash], List.Transform(List.Skip(group[cash]),each _*-1)}),List.Sum),1), each _*-1),
    temp = Table.FromColumns({group[Дата],sum},{"Дата", "Сверка суммы"}),
    join = Table.NestedJoin(Source,{"Дата"},temp,{"Дата"},"temp"),
    expand = Table.ExpandTableColumn(join, "temp", {"Сверка суммы"})
in
    expand
Объединение множества файлов Excel в один, Необходимо перенести все данные из разных Excel в один (Excel 2016)
 
Viktoriya, попробуйте, например, щёлкнуть по интересующей Вас фамилии правой кнопкой и выбрать Текстовые фильтры --> Равно, сформируется код вроде такого:
Код
= Table.SelectRows(#"Развернутый элемент Пользовательская", each [ФИО] = "Белан В.Г.")

Та же логика - с датами, только по ним у Вас не все строки заполнены, так что сначала выделяете столбец Дата и на вкладке Преобразование кликаете Заполнить --> Вниз.

Как сделать, чтобы данные из одного столбца заносились в другие столбцы по условию.
 
Цитата
frimen написал:
т.е. в столбце Н пары USDCAD, USDJPY, USDCHF выводились сразу после заголовка Прямая котировка?
Непонятно, зачем Вам всё это в одной таблице, но вот, даже лаконичнее получилось:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Валютные_пары"]}[Content][Валютные пары],
    Прямая = List.Select(Source, each Text.StartsWith(_,"USD")),
    Обратная = List.Select(Source, each Text.EndsWith(_,"USD")),
    first = List.Buffer(List.RemoveNulls(List.Transform(Обратная, each Text.Start(_,3)))),
    second = List.Buffer(List.RemoveNulls(List.Transform(Прямая, each Text.End(_,3)))),
    Прямая_кросс = List.Select(Source, each List.Contains(second, Text.End(_, 3)) and not List.Contains(Прямая, _)),
    Обратная_кросс = List.Select(Source, each List.Contains(first, Text.Start(_, 3)) and not List.Contains(Обратная, _)),
    final = Table.FromColumns({Source,Прямая,Обратная,Прямая_кросс,Обратная_кросс}, {"Валютные пары","Прямая","Обратная","Прямая_кросс","Обратная_кросс"})
in
    final
Как сделать, чтобы данные из одного столбца заносились в другие столбцы по условию.
 
Вариант в Power Query:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Валютные_пары"]}[Content],
    Прямая = Table.AddColumn(Source, "Прямая котировка", each if Text.StartsWith([Валютные пары],"USD") then [Валютные пары] else null),
    Обратная = Table.AddColumn(Прямая, "Обратная котировка", each if Text.EndsWith([Валютные пары],"USD") then [Валютные пары] else null),
    first = List.Buffer(List.RemoveNulls(List.Transform(Обратная[Обратная котировка], each Text.Start(_,3)))),
    second = List.Buffer(List.RemoveNulls(List.Transform(Обратная[Прямая котировка], each Text.End(_,3)))),
    Прямая_кросс = Table.AddColumn(Обратная, "Прямая_кросс", each if List.Contains(second, Text.End([Валютные пары], 3)) and [Прямая котировка] = null  then [Валютные пары] else null),
    Обратная_кросс = Table.AddColumn(Прямая_кросс, "Обратная_кросс", each if List.Contains(first, Text.Start([Валютные пары], 3)) and [Обратная котировка] = null  then [Валютные пары] else null)
in
    Обратная_кросс
Объединение множества файлов Excel в один, Необходимо перенести все данные из разных Excel в один (Excel 2016)
 
Viktoriya, это стандартная задача для Power Query.
Перенос и модификация таблиц с листа на лист (Power Query)
 
reactortyz, хозяин - барин  :)  Но я, действительно, не добавил первый столбец, исправляюсь:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    x = List.Buffer({-1}&List.PositionOf(Source[Сумма], null, 2)),
    tables = List.Generate(()=>[i=0, a=x{i}+1, b = x{i+1}-a ], each [i] < List.Count(x), each [i=[i]+1, a=x{i}+1, b = x{i+1}?-a ],
                                each [c = Table.Range(Source,[a],[b]), d = #table({"№ п/п"}, {{"Таблица "&Text.From([i]+1)}}) &
                                Table.AddIndexColumn(c, "№ п/п", 1, 1) & #table({"Кол-во документов"}, {{List.Sum(c[#"Кол-во документов"])},{null}})][d]),
    final = Table.RemoveLastN(Table.Combine(tables), 1)
in
    final
Изменено: Aleksei_Zhigulin - 4 Апр 2019 14:44:37
Перенос и модификация таблиц с листа на лист (Power Query)
 
Ещё вариант. Предполагается, что по заполненным строкам сумма не может быть пустой. В противном случае на втором шаге нужно вместо суммы указать другой столбец, по которому не бывает пропусков. Ну, либо переписать второй шаг, чтобы он определял номера полностью пустых строк.
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    x = {-1}&List.PositionOf(Source[Сумма], null, 2),
    tables = List.Generate(()=>[i=0, a=x{i}+1, b = x{i+1}-a ], each [i] < List.Count(x), each [i=[i]+1, a=x{i}+1, b = x{i+1}?-a ], each Table.Range(Source,[a],[b])),
    transform = List.Transform(tables, each _ & #table({"Кол-во документов"}, {{List.Sum([#"Кол-во документов"])},{null},{null}})),
    final = Table.RemoveLastN(Table.Combine(transform), 2)
in
    final
Изменено: Aleksei_Zhigulin - 3 Апр 2019 15:31:38
Power Query Текстовый фильтр по сочетанию критериев "начинается с"
 
Как я понял, нужно, чтобы критерии из таблицы с критериями накладывались построчно, т.е. яблоко может быть фиолетовым, а вот апельсин - нет (что, в общем-то, святая правда  :) ). Тогда вот:
Код
let
    Фрукты = Excel.CurrentWorkbook(){[Name="табФрукты"]}[Content],
    Критерий = Excel.CurrentWorkbook(){[Name="табКритерий"]}[Content],
    temp = Table.AddColumn(Фрукты, "temp", each Критерий),
    expand = Table.ExpandTableColumn(temp, "temp", {"Фрукт Начинается с…", "Цвет начинается с…"}),
    final = Table.SelectRows(expand, each Text.StartsWith([Фрукт], [#"Фрукт Начинается с…"], Comparer.OrdinalIgnoreCase) and
                                          Text.StartsWith([Цвет], [#"Цвет начинается с…"], Comparer.OrdinalIgnoreCase))[[Фрукт],[Цвет]]
in
    final

P.S. Добавил игнорирование регистра.
Изменено: Aleksei_Zhigulin - 29 Мар 2019 17:31:20
Удалить СТРОКИ, когда в ячейке попадется серия подряд одинаковых символов больше N
 
Вариант в PQ:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица6"]}[Content],
    rows = Table.ToRows(Source),
    count = List.Transform(rows, each {List.Max(Table.Group(Table.FromList(_), {"Column1"}, {"count", each List.Count([Column1])}, 0)[count])}),
    combine = List.Transform(List.Zip({rows, count}), List.Combine),
    table = Table.FromRows(combine, Table.ColumnNames(Source)&{"count"}),
    filter = Table.SelectRows(table, each [count] <= 3)
in
    filter
Изменение формата ячейки в power query, При условном форматирование формат ячейки не изменяется.
 
olga18082006, зайти в PQ, выбрать нужные Вам столбцы со значениями, затем на вкладке Преобразование выбрать Тип данных: Десятичное число.
Изменено: Aleksei_Zhigulin - 28 Мар 2019 11:44:36
Изменение формата ячейки в power query, При условном форматирование формат ячейки не изменяется.
 
olga18082006, вероятнее всего, в PQ Вы не изменили тип столбца со значениями на числовой. Если не угадал, приложите файл-пример.
Перенос значений из строчки в столбик (транспонирование не подходит)
 
Столбик... Так мило  :)  Alex.Mari, Поясните, пожалуйста, свою фразу "Трансформация не подходит" в заголовке темы.

P.S. Если вдруг угадал, то во вложении вариант в Power Query.
Изменено: Aleksei_Zhigulin - 28 Мар 2019 00:31:33
Подсчет количества номеров писем на одного адресата посредством PQ
 
Ещё вариант:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    count = Table.AddColumn(Source, "count", each List.Count(Splitter.SplitTextByDelimiter(",")([Номер])))
in
    count
Power Query: cвернуть/развернуть столбец
 
Ещё вариант:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],
    group = Table.Group(Source, {"ДХ"}, {{"temp", each Table.AddIndexColumn(_, "i", 1, 1)}}),
    expand = Table.ExpandTableColumn(group, "temp", {"Респондент", "Пол", "Возраст", "i"}),
    unpivot = Table.UnpivotOtherColumns(expand, {"ДХ", "i"}, "Атрибут", "Значение"),
    merge = Table.CombineColumns(Table.TransformColumnTypes(unpivot, {{"i", type text}}, "ru-RU"),{"Атрибут", "i"},Combiner.CombineTextByDelimiter("", QuoteStyle.None),"key"),
    pivot = Table.Pivot(merge, List.Distinct(merge[key]), "key", "Значение")
in
    pivot
Нужно вытащить из списка строки с УРЛ сайта
 
Вариант в PQ
Изменено: Aleksei_Zhigulin - 26 Мар 2019 19:33:13
Вытягивание данных с соседнего листа с удалением дубликатов, Вытягивание данных с соседнего листа с удалением дубликатов
 
Вариант в PQ
PQ: как пронумеровать вхождения значения в столбце?
 
Цитата
freddemo написал:
В справке вычитал List.PositionOf и Table.PositionOf но не могу понять как в настраиваемом столбце применить.
Как-то так:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    temp = Table.AddColumn(Source, "temp", each Table.PositionOf(Table.SelectColumns(Source, {"E-Mail"}), [#"E-Mail" = [#"E-Mail"]], 2)),
    i = Table.AddIndexColumn(temp, "i", 0, 1),
    order = Table.AddColumn(i, "order", each List.PositionOf([temp],[i])+1),
    remove = Table.RemoveColumns(order,{"temp", "i"})
in
    remove
Номер недели в Power Pivot
 
bedvit, спасибо за ссылку, ещё немного информации по теме.
Номер недели в Power Pivot
 
Цитата
vinmax написал:
Формулы FORMAT и WEEKNUM у меня не хотят так делать
У меня, вроде, хотят:  :)
Код
= FORMAT ( WEEKNUM ( [Дата] ), "00" )
PQ регулярным выражением получить два соответствия
 
artyrH, насчёт RegExp не подскажу, но конкретно эту задачу вполне можно решить штатными средствами PQ:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],
    list = Table.AddColumn(Source, "times", each List.RemoveItems(Text.SplitAny([Столбец1], Text.Remove([Столбец1],{"0".."9",":"})), {""})),
    final = Table.TransformColumns(list, {"times", each Text.Combine(List.Select(_, each try Value.Type(Time.From(_)) = Time.Type otherwise false), "; ")})
in
    final

Power Query. Индексация строк в пределах каждой группы., Знаю как сделать формулами Excel, но не могу дотумкать как решить проблему в запросе.
 
Возможно, PooHkrd прав, и лучше создать новую тему, но добавлю сюда, раз уж сделал. runeft, думаю, разберётесь.
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1__3"]}[Content],
    group = Table.Group(Source, {"В2В"}, {"temp", each [a = List.MinN([#"Index.1"],3)&List.MaxN([#"Index.1"],3),
                                                        b = Table.TransformColumns(_, {"Index.1", each if List.Contains(a,_) then null else _})][b]}),
    expand = Table.ExpandTableColumn(group, "temp", {"Номенклатуры", "Основной менеджер", "Цена.1", "Index.1"})
in
    expand
вывести столбец с количеством повторов значений исходного столбца в запросе power query
 
ВВФ, файл-пример покажете? И если через группировку получилось, то зачем Вам альтернатива?
Сконвертировать файл из xml в csv
 
Сергей Васильев, так?

Код
let
    Source = Xml.Tables(File.Contents("C:\folder\xml_to_csv_min.xml")),
    Table0 = Source{0}[Table],
    pivot = Table.TransformColumns(Table0, {"param", each Table.Pivot(_, List.Distinct([#"Attribute:name"]), "Attribute:name", "Element:Text")}),
    expand = Table.ExpandTableColumn(pivot, "param", List.Union(List.Transform(pivot[param], Table.ColumnNames)))
in
    expand
Изменено: Aleksei_Zhigulin - 11 Мар 2019 18:25:29
Power Pivot некорректно считает сумму итога за предыдущий год
 
Цитата
timel1 написал:
Имеется таблица
Докажите!  :)  
Группировка строк с суммированием в PQ
 
Цитата
adamm написал:
unpivot b pivot, схожи с отменённым свёртыванием и сведённым столбцом
Это ровно они и есть
Цитата
adamm написал:
И как я понял вы добавили дубликат столбца, который соответствует "сегодня"
совершенно верно
Power query Открыть самый первый файл отчетного месяца
 
Цитата
Alexey_Spb написал:
Ради интереса проверьте на оригинальном коде:
Код
each let latest = List.Min(types[Date]) in [Date] = latest
По идее тоже должно быть 7.5 секунд.
Вот здесь как раз прогон по всему массиву идёт в каждой строке, т.е. на миллионе строк запрос ожидаемо подвисает.

Цитата
Максим Зеленский написал:
у меня вот такие результаты за 10 обновлений на массиве 1 млн дат:
Любопытно, вызывает куда больше доверия, чем мои расчёты "на коленке". Т.е. условно можно считать, что вариант с  [Date] = List.Min(Typed[Date]) на миллионе строк выполняется дольше остальных примерно в 1,5 раза.


Я бы предложил к обсуждению два вопроса:
1. Согласно посту #14 все варианты можно вывести один из другого, тогда почему разница с [Date] = List.Min(Typed[Date]) всё же существует?
2. Верно ли будет заключить, что мы можем малой кровью выполнять агрегацию по всему столбцу в построчных вычислениях?
Код
= Table.AddColumn(types, "temp", each ([Date] - List.Min(types[Date]))*[SomeValue])
Power query Открыть самый первый файл отчетного месяца
 
Alexey_Spb, я догадываюсь, что 2 и 3 варианты логически идентичны, но всё равно решил их сравнить. Вдруг есть какая-то оптимизация дефолтного кода, мало ли.
Изменено: Aleksei_Zhigulin - 20 Фев 2019 18:04:34
Страницы: 1 2 3 4 5 6 След.
Наверх