Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 След.
PowerQuery. Нестандартное транспонирование, Транспонирование строк с сохранением значений первых 4-х столбцов в транспонированных строках
 
Цитата
написал:
ну вот так работает эта функция - преобразует каждый элемент списка
Правильно ли я понимаю, что List.TransformMany на вход надо подавать список списков, а функции, используемые в List.TransformMany имеют доступ уже к вложенным спискам?
PowerQuery. Нестандартное транспонирование, Транспонирование строк с сохранением значений первых 4-х столбцов в транспонированных строках
 
AlienSx, Добрый вечер!

Классное решение. Не могли бы вы пояснить, почему в функции List.TransformMany, первый аргумент List.RemoveNulls(w) нужно передавать в фигурных скобках? Я вижу, что без них никак, но зачем они, если w и так список (?) не понимаю.

Заранее спасибо!
Выбор числа в массиве по нескольким показателям, ближайшим к фактическим значениям и не превышающим их
 
Спасибо большое!
Выбор числа в массиве по нескольким показателям, ближайшим к фактическим значениям и не превышающим их
 
Добрый день!
Из таблицы необходимо выбрать значение на пересечении строк, удовлетворяющее условию: каждый показатель ближайшее меньшее или равное соответствующему показателю из факта. Пробовал с "суммпроизв", но не получается выбрать БЛИЖАЙШЕЕ меньшее.
Помогите, пожалуйста, с соответствующей формулой.
Пример прилагаю, на вопросы отвечу.
Заранее благодарен откликнувшимся.
Иерархия в Power Query, Построение иерархии
 
surkenny, А что делает вот этот фрагмент кода?

Record.FieldOrDefault ( rec_ids, id ?? "", null )

Интересует в контексте применённого оператора "??"
PQ. Формирование столбцов из строк на основании общих ключей
 
Вариант с вариантами). Плюс добавил 31-е число.
Загрузка листа ecxel в двоичном формате в PQ, Загрузка листа ecxel в двоичном формате в PQ выдает ошибку
 
PooHkrd, видимо ссылочка пропущена в сообщении?
Сумма чисел не больше максимального барьера
 
Lari, Максим В., с пятницей всех!  :D  
Поиск наличия в справочнике подстроки обрабатываемой строки, возврат значения из соседней колонки
 
Михаил Л, класс!  Спасибо!
Поиск наличия в справочнике подстроки обрабатываемой строки, возврат значения из соседней колонки
 
Добрый день!

Прошу помощи в генерации хитрой формулы, которая смогла бы перебрать справочник, найти в колонке справочнике значение, которое является подстрокой обрабатываемого значения и вернула значение в соседней колонке справочника.
Файл прикладываю.
Или такое лучше в VBA делать?
Изменено: quasarrr - 27.05.2020 16:43:49
Подсчет количества уникальных значений в таблице
 
В PQ. Предварительно оформите данные в умную таблицу. В моём запросе имя таблицы - Таблица1.
Загрузить результат не получилось, файл большой
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    tr = Table.SelectRows(Table.FromColumns({List.Combine(List.Transform({1..Table.ColumnCount(Источник)}, each Table.Column(Источник, "Столбец" & Text.From(_))))}),  
        each ([Column1] <> null)),
    #"Сгруппированные строки" = Table.Group(tr, {"Column1"}, {{"Количество", each Table.RowCount(_), type number}}),
    #"Сортированные строки" = Table.Sort(#"Сгруппированные строки",{{"Column1", Order.Ascending}})
in
    #"Сортированные строки"
Макрос разделения текста по столбцам с перемещением данных в один столбец
 
В PQ наклацал
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Критерий", type text}, {"Группы", type text}, {"Адреса", type text}}),
    #"Строки с примененным фильтром" = Table.SelectRows(#"Измененный тип", each ([Критерий] = "Критерий 2")),
    #"Разделить столбец по разделителю" = Table.ExpandListColumn(Table.TransformColumns(#"Строки с примененным фильтром", {{"Группы", Splitter.SplitTextByDelimiter("; ", QuoteStyle.None), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Группы"),
    #"Разделить столбец по разделителю1" = Table.ExpandListColumn(Table.TransformColumns(#"Разделить столбец по разделителю", {{"Адреса", Splitter.SplitTextByDelimiter("; ", QuoteStyle.None), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Адреса"),
    #"Удаленные столбцы" = Table.RemoveColumns(#"Разделить столбец по разделителю1",{"Критерий"})
in
    #"Удаленные столбцы"
Разделить сведенный столбец PQ
 
Рекурсия:
Код
let
    from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    pivot = Table.Pivot(Table.TransformColumnTypes(from, {{"Index", type text}}, "uk-UA"), List.Distinct(Table.TransformColumnTypes(from, {{"Index", type text}}, "uk-UA")[Index]), "Index", "uu"),
    max = List.Max(from[Index]),

    fn = (pivot, cur, max)=> let
        cur = cur +1,
        cur_txt = Text.From(cur),
        split = Table.SplitColumn(pivot, cur_txt, Splitter.SplitTextByDelimiter("||", QuoteStyle.Csv), {cur_txt & ".1", cur_txt & ".2"}),
        recur = if cur<max then @fn(split, cur, max) else split 
    in recur
     
in
    fn(pivot, 0, max)
PQ. Поиск в столбце таблицы вхождений текста из 2-х столбцов другой таблицы и присоединение найденных столбцов.
 
Михаил Л, спасибо большое!
PQ. Поиск в столбце таблицы вхождений текста из 2-х столбцов другой таблицы и присоединение найденных столбцов.
 
Здравствуйте, форумчане.
Что-то затупил, а время поджимает.
Необходимо присоединить к таблице1 строки из таблицы 2 в случае если в таблице 2 столбцы Наименование и Инв являются подстроками строки в столбце  Наименование таблицы 1.
Пример в файле. Желательно на PQ.
Заранее спасибо.
[ Закрыто] Теория вероятности в эксель, Вероятность следующего числа на основании ранее внесенных цифр
 
Ну, может ТС на что-то вроде цепи Маркова намекает.
Только тогда цифры должны выпадать не случайно.
Изменено: quasarrr - 19.05.2020 16:19:49
PQ функция List.Generate. Получить значение предыдущего элемента списка при расчёте следующего внутри функции next
 
DrillPipe,

Спасибо!
PQ функция List.Generate. Получить значение предыдущего элемента списка при расчёте следующего внутри функции next
 
Михаил Л,
Тоже бился сегодня, как заставить вернуть List.Generate на одну позицию больше тут.
Пришлось счётчик непрохождения проверки завести. И проверять, чтобы он был меньше 2-х.
Изменено: quasarrr - 16.05.2020 22:44:34
Подбор нижней границы диапазона до получения нужной суммы
 
Добрый день,

Ещё вариант в Power Query
Код
let
    Source   = Table.Buffer(Table.AddColumn(Excel.CurrentWorkbook(){[Name="data"]}[Content], "id", each 1)),
    Source1  = Excel.CurrentWorkbook(){[Name="param"]}[Content]{0}[#"зад кол-во"],

    fn = (cur, cnt)=> let
        db = Table.RemoveRows(Source, 0, cur),
        accum = List.Accumulate(db[#"кол-во"], [h=0, k=0], (acc, cur) => 
            if acc[k]<=Source1 then Record.TransformFields(acc, {{"h", each _+1}, {"k", each _+cur}}) else acc),
        rec = if accum[k] > Source1 then accum[h] - 1 else accum[h],
        gr = Table.Group(Table.FirstN(db, rec), {"id"}, {{"кол-во", each List.Sum([#"кол-во"]), type number}, {"стоимость", each List.Sum([стоимость]), type number}})
    in [tbl = gr, fl = if rec < Table.RowCount(db) then 0 else cnt+1],

    gen = List.Generate(()=>[a=0, b=fn(a,0), c=b[fl], d=b[tbl]], each [c] < 2, each [a=[a]+1, b=fn(a,[c]), c=b[fl], d=b[tbl]]),
    #"Преобразовано в таблицу" = Table.FromList(gen, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Развернутый элемент Column1" = Table.ExpandRecordColumn(#"Преобразовано в таблицу", "Column1", {"d"}, {"d"}),
    #"Развернутый элемент d" = Table.ExpandTableColumn(#"Развернутый элемент Column1", "d", {"кол-во", "стоимость"}, {"кол-во", "стоимость"}),
    #"Добавлен пользовательский объект" = Table.AddColumn(#"Развернутый элемент d", "Пользовательский", each [стоимость]/[#"кол-во"]),
    #"Измененный тип" = Table.TransformColumnTypes(#"Добавлен пользовательский объект",{{"кол-во", Int64.Type}, {"стоимость", type number}, {"Пользовательский", type number}})
in
    #"Измененный тип"
PQ функция List.Generate. Получить значение предыдущего элемента списка при расчёте следующего внутри функции next
 
Уважаемые форумчане, добрый вечер!

На просторах интернета, а именно на сайте
http://excel-inside.pro/ru/blog/2017/06/15/генератор-произвольных-списков-в-power-query-и-pow/

нашёл следующее описание алгоритма работы функции List.Generate

Цитата
  1. Начальное значение CurrentValue = результат вычисления функции initial .
  2. Передать CurrentValue на вход функции condition , проверить условие и дать ответ true  или false
  3. Если результат вычисления condition равен false – закончить создание списка.
  4. Если результат вычисления condition равен true – создать очередной элемент списка по следующему правилу:
    1. Если параметр selector задан, то вычислить значение функции selector, получив на вход CurrentValue.
    2. Если параметр selector отсутствует, очередной элемент создаваемого списка будет равен CurrentValue.
  5. Вычислить значение функции next  (получив на вход CurrentValue) и присвоить переменной CurrentValue новое значение – результат этого вычисления.
  6. Перейти к шагу 2.

Интересует п.5. Возможно ли в теле функции next обратиться к значению CurrentValue, которое подано функции на вход? Как это сделать?
Сумма дней в столбцах по магазинам, при этом дата располагается сверху названия магазина
 
Добавил пару строк в решение от Андрей Лящук,
Код
let
    Source       = Table.Buffer(Excel.CurrentWorkbook(){[Name="data"]}[Content]),
    Headers      = Record.FromList(List.Transform(Table.ToColumns(Table.FirstN(Source,3)),
                       each Text.Combine(List.RemoveNulls(_),"|")),Table.ColumnNames(Source)
                   ),
    InserHeaders = Table.PromoteHeaders(Table.InsertRows(Table.Skip(Source,3),0,{Headers})),
    Unpivot      = Table.UnpivotOtherColumns(InserHeaders, {"Названия строк"}, "Атрибут", "Значение"),
    Split        = Table.SplitColumn(Unpivot, "Атрибут", each Text.Split(_,"|"),3),
    Grouped = Table.Group(Split, {"Названия строк", "Атрибут.3"}, {{"Количество", each Table.RowCount(Table.SelectRows(_, each [Значение]>0)), type number}}),
    Pivoted = Table.Pivot(Grouped, List.Distinct(Grouped[Атрибут.3]), "Атрибут.3", "Количество", List.Sum)
in
    Pivoted
Какие инструменты для решения задачи учёта номерных бланков выбрать (PQ, PP, VBA)
 
Михаил Л, красиво.

Большое спасибо, ушёл разбираться  :)  
Какие инструменты для решения задачи учёта номерных бланков выбрать (PQ, PP, VBA)
 
Цитата
Михаил Л написал:
Как вы сделали - я так не умею
Ваш вариант хорош   :)

А можно ещё опцию добавить: в случае если идут более 2-х номеров подряд заменять их на конструкцию вида "начало", "конец"  через тире?

То есть последовательность вида 2, 5, 6, 7, 9 заменить на: 2, 5 - 7, 9

Но последовательность : 2, 5, 6, 9 оставить без изменений.

В моём варианте это есть   ;)

Нужно, потому что в реальности номеров очень много, а идут они у одного водителя, как правило, в порядке возрастания.
оптимальное размещение центров групп
 
Ігор Гончаренко, расстояние от центра группы до точки в группе считаем в обычном порядке? Корень из сумм квадратов разностей координат?
Изменено: quasarrr - 17.04.2020 06:35:21
Какие инструменты для решения задачи учёта номерных бланков выбрать (PQ, PP, VBA)
 
Добрый вечер!

Новичок покувыркался и в принципе задачу решил. Не без помощи добрых людей, конечно.

Если есть желание и время, можно оценить предложенное решение и, может, подсказать пути улучшения.
В файле данные за три месяца. Все виды поступления - расходования бланков в примере присутствуют.

По сравнению с постановкой задачи из #1 добавилась ещё одна таблица с начальниками смен, которые получают бланки и раздают водителям и далее солидарно отвечают за их сохранность. Поэтому также фигурируют в отчёте.

Заранее благодарен.
PQ. Применение фнкции Table.AddColumn к списку имён добавляемых полей
 
Андрей VG, Михаил Л, Максим Зеленский,

Большое спасибо!
Мастера, чё сказать   ;)  
PQ. Применение фнкции Table.AddColumn к списку имён добавляемых полей
 
Андрей VG,  спасибо.

Ещё вопрос, a AddColumn здесь применить проблематично? Я к тому, что данное решение всё-таки частное, и если потребуется функция посложнее, чем умножение, то его уже не применить.

А хотелось бы более-менее универсального алгоритма, если можно.  
PQ. Применение фнкции Table.AddColumn к списку имён добавляемых полей
 
Андрей VG,
С дублями я, конечно, погорячился... Убрал.

И ещё пояснюсь. Хочется понять принцип "массового" применения к списку полей таблицы функции, которая не предусматривает передачу ей такого списка, а предусматривает передачу текстовым полем по одиночке. Что-то вроде цикла..
Если это возможно.
Изменено: quasarrr - 14.04.2020 12:21:49
PQ. Применение фнкции Table.AddColumn к списку имён добавляемых полей
 
Уважаемые форумчане, добрый день!

Прошу помощи. Есть список полей для добавления к исходной таблице. В процессе добавления образуемые столбцы необходимо заполнить.
Во вложенном файле Таблица1 - исходная, её нужно дополнить полями из таблицы2, строки заполнить значениями, выдаваемыми функцией.

Пример схематичный, вопрос в том, как организовать множественное применение табличной функции (в данном случае Table.AddColumn) к списку полей.
Возможно ли это?

Спасибо.
Изменено: quasarrr - 14.04.2020 12:12:54
Какие инструменты для решения задачи учёта номерных бланков выбрать (PQ, PP, VBA)
 
Цитата
quasarrr написал:
sokol92 ,  Михаил Л , появилась мысль, я постараюсь её реализовать и попрошу высказать мнение, если Вы не против.
Ну подождите пока новичок немного покувыркается сам. Дайте дня три на самоистязание  :D  
Страницы: 1 2 3 След.
Наверх