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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 139 След.
PQ. Как отлаживать пользовательские функции?
 
Для группировки я обычно делаю так: создаю сначала группировку "Все строки":
Код
calc = Table.Group(Source, {"Источник (кто)"}, {"temp", each _, type table})

затем тыкаю в самую характерную из получившихся вложенных таблиц (например, тыкаем в первую). Получаем шаг типа
Код
#"Expanded{0}" = calc{0}[temp]

переименовываю его, например, в sub.
Дальше делаю нужные преобразования:
Код
setOrder = Table.Sort(sub, {"Дата вызова", "Время начала разговора"}),
        addInfo = Table.AddColumn(setOrder, "temp", each 
            [start = [Дата вызова] + Duration.From([Время начала разговора]),
             finish = start + #duration(0, 0, 0, [#"Продолжительность разговора (сек)"])
        ]),
        baseData = Table.ExpandRecordColumn(addInfo[[temp]], "temp", {"start", "finish"}),
        before = Table.ToColumns(Table.RemoveLastN(baseData, 1)),
        after = Table.ToColumns(Table.RemoveFirstN(baseData, 1)),
        result = Table.FromColumns(before & after),
        oneMoreResult = Table.AddColumn(result, "Column5", each Duration.TotalSeconds([Column3] - [Column2]))
in
       oneMoreResult

В общем, делаю то, что должна делать функция. В итоге у меня получается вот такой код:
Код
calc = Table.Group(Source, {"Источник (кто)"}, {"temp", each _, type table}),
sub = calc{0}[temp],
setOrder = Table.Sort(sub, {"Дата вызова", "Время начала разговора"}),
addInfo = Table.AddColumn(setOrder, "temp", each 
            [start = [Дата вызова] + Duration.From([Время начала разговора]),
             finish = start + #duration(0, 0, 0, [#"Продолжительность разговора (сек)"])
        ]),
baseData = Table.ExpandRecordColumn(addInfo[[temp]], "temp", {"start", "finish"}),
before = Table.ToColumns(Table.RemoveLastN(baseData, 1)),
after = Table.ToColumns(Table.RemoveFirstN(baseData, 1)),
result = Table.FromColumns(before & after),
oneMoreResult = Table.AddColumn(result, "Column5", each Duration.TotalSeconds([Column3] - [Column2]))
in
       oneMoreResult

все, что нужно теперь сделать, это в расширенном редакторе чуть-чуть почистить, заменив функцию "each _" на "(sub)=>" и добавив let/in для вложенных в функцию шагов, и еще один in в конце, вот так:
Код
calc = Table.Group(Source, {"Источник (кто)"}, {"temp", (sub)=>
// sub = calc{0}[temp],
let 
setOrder = Table.Sort(sub, {"Дата вызова", "Время начала разговора"}),
addInfo = Table.AddColumn(setOrder, "temp", each 
            [start = [Дата вызова] + Duration.From([Время начала разговора]),
             finish = start + #duration(0, 0, 0, [#"Продолжительность разговора (сек)"])
        ]),
baseData = Table.ExpandRecordColumn(addInfo[[temp]], "temp", {"start", "finish"}),
before = Table.ToColumns(Table.RemoveLastN(baseData, 1)),
after = Table.ToColumns(Table.RemoveFirstN(baseData, 1)),
result = Table.FromColumns(before & after),
oneMoreResult = Table.AddColumn(result, "Column5", each Duration.TotalSeconds([Column3] - [Column2]))
in
       oneMoreResult
})
in
    calc

Ну и естественно можно скопировать код в отдельную функцию, или сделать копию такого запроса (оставив в нем разобранный вариант, до "подчистки"), чтобы можно было вернуться.
F1 творит чудеса
Удалить дубликаты в пользовательском столбце (Power Query)
 
Цитата
myprof написал:
И удалить дубликаты полученных данных.
Цитата
myprof написал:
Как теперь удалить дубликаты в этом созданном столбце?
Что вы называете дубликатами? Нужно удалить строки, в которых дублируются одинаковые данные в новом столбце? Или что-то другое?
Цитата
myprof написал:
Для пользовательского столбца эта функция недоступна.
это не так
F1 творит чудеса
Power BI ошибка "Попросите администратора включить создание кодов внедрения"
 
YuryD, то есть админа у вас в Power BI как не было, так и нет? Тогда других вариантов нет.
F1 творит чудеса
Power Query. Брать в дате только определённые дни и по ним составить список, есть дата начала и конца,
 
PooHkrd, а все-таки, понять бы, количество выводимых строк совпадает только в двух случаях. Где неправда? Сколько должно быть и на чем ошибки? Вот что интересно...
F1 творит чудеса
Поиск формул ячейки, в которых встречаются константы
 
buchlotnik,
шикардос:


завтра натравлю на рабочие файлы

Еще раз всем спасибо!
Остальные варианты протестирую также
F1 творит чудеса
Поиск формул ячейки, в которых встречаются константы
 
Коллеги, спасибо за варианты, в понедельник их погоняю.

Я очень надеюсь, что не в исходных данных не будет сложных формул типа массивов в функциях, именованных констант (и вообще именованных диапазонов в формулах), функций а-ля СТРОКА и т.п. Там всё, по идее, сильно проще (опять же, надеюсь), только количество файлов большое.

Но в целом годная получилась тема для таких задач, кмк :)

buchlotnik, про Inquire вспоминал перед постом, но с разбега не нашел там указанный функционал, спасибо за наводку!
F1 творит чудеса
Задачка
 
Вот так отвлечешься, а тут уже на страницу. Пойду разбирать/тестировать коды :)
F1 творит чудеса
PowerBI. Объединить сущности из разных таблиц
 
Не, ну если декартово произведение подойдет (типа, Антарктида - Ватикан - Жмеринка), то можно побаловаться.
F1 творит чудеса
Задачка
 
Wiss, о, код... супер!
F1 творит чудеса
Задачка
 
Wild.Godlike, супер :)
F1 творит чудеса
Задачка
 
Wild.Godlike, оно, ага. а второе решение? :) оно мне нравится гораздо больше, оно красивее
F1 творит чудеса
Поиск формул ячейки, в которых встречаются константы
 
Дмитрий(The_Prist) Щербаков, спасибо за идею! Примерно в таком направлении и двигаюсь - сплит по операндам, потом обрезание скобок и ;, потом анализ кусочков. Была изначально мысль проверять кусочек на наличие буквы латиницы и считать это ссылкой, но проверка кусочка на IsNumeric - то, что нужно. Вот что значит давно не писать код - забыл о такой функции.
Конечно, таким образом найдутся еще всякие числовые аргументы функций типа ВПР(value;range;2;0), но это меньшее из зол, такие потом руками все равно отсматривать.
Сначала думал выбрасывать все, что в скобках, но потом встретил формулу типа =(А5+7)/2 и понял, что возни тут больше. Может быть, если будет слишком много таких, тогда займусь

abc1, в том-то и дело, что неизвестно, что там за константа может быть. Непредсказуемо. Задача ее поймать и выдать по ушам автору формулы
F1 творит чудеса
Поиск формул ячейки, в которых встречаются константы
 
Коллеги, день добрый.
Столкнулся с задачей описания методики расчёта разнообразных показателей. На входе у меня куча Excel-ек, в которых в разнообразном виде эти расчеты представлены.
Как положено, есть ячейки ввода, где только константа какая-то забита, есть ячейки с правильными формулами, а есть "подправленные" формулы, в которых используются неописанные константы.

Подскажите, пожалуйста, какой есть более-менее быстрый способ найти все ячейки, в которых есть формула, но при этом в формуле используются константы, например:
=СУММ(A:A)/3,141529
=A1*5/$B$2

Существует ли такой, или только глазками? Пока ничего сам не нашел.
F1 творит чудеса
Задачка
 
Если кто-то скучает, поставьте числа вместо многоточий:
Цитата
В этом предложении цифра 0 встречается ... раз, цифра 1 - ... раз, цифра 2 - ... раз, цифра 3 - ... раз, цифра 4 - ... раз, цифра 5 - ... раз, цифра 6 - ... раз, цифра 7 - ... раз, цифра 8 - ... раз, цифра 9 - ... раз
Есть как минимум два решения :)
Я решения нашел, алгоритм не придумал кроме как перебор. Но он должен же быть! :) Вдруг кто его опишет? :)
F1 творит чудеса
Автоматическое обновление запросов Power Query, Обновление запроса Power Query не обновляя предыдущий источник
 
Jack London, только один вариант:
Цитата
Андрей VG написал:
Перенести запросы из B в С
добавлю: и перестроить запросы C так, чтобы брали данные из уже перенесенных запросов
F1 творит чудеса
DAX Проверка условия в столбце на итерацию выше (предыдущую), Необходимо вычислить значение в вычисляемом столбце предварительно проверив значение другого столбца на одну строчку выше
 
Цитата
a.matsul написал:
если в столбце [] значение на один уровень выше <> 0
F1 творит чудеса
Excel. Сводные таблицы. PQ. Снять ограничение на 1000 строк при "проваливании", Excel 2016-2019
 
если не будет лень и будет время, задам вопрос разрабам.
F1 творит чудеса
Excel. Сводные таблицы. PQ. Снять ограничение на 1000 строк при "проваливании", Excel 2016-2019
 
Цитата
PooHkrd написал:
но только в случае, если запрос загружался в модель именно используя O365.
возможно, проверить не могу, снес давно 2016
Цитата
Андрей VG написал:
Увы, в 365 нет такого.
ну как же нет...


F1 творит чудеса
Excel. Сводные таблицы. PQ. Снять ограничение на 1000 строк при "проваливании", Excel 2016-2019
 
Цитата
Андрей VG написал:
с Excel 365 такой маневр не проходит
Если итоговый запрос Power Query загружен в модель данных, подключение ThisWorkbookDataModel видно в панели "Запросы и подключения", и параметр настраивается
F1 творит чудеса
DAX. Мера нарастающий итог
 
Цитата
OblivionR написал:
Объясните почему, пожалуйста.
Во-первых, не пишите название таблицы перед именем меры (а перед именем столбца - всегда пишите). Сами себя путаете.
Во-вторых, выражение MAX('Sales'[Доля %]) не имеет смысла и будет вызывать ошибку, если [Доля %] - это мера. Функция MAX работает только со столбцами.
В-третьих, если [Доля %] - это мера, то что вы хотели выразить выражением 'Sales'[Доля %]<=MAX('Sales'[Доля %])?
F1 творит чудеса
Excel. Сводные таблицы. PQ. Снять ограничение на 1000 строк при "проваливании", Excel 2016-2019
 
Цитата
Marchuk написал:
При просмотре детализации цифры сводной таблицы, показывает по умолчанию только 1000 записей
при двойном клике на цифре - таблица на отдельном листе, это имеете ввиду?
F1 творит чудеса
Поиск значения в PowerQvery аналогично ГПР
 
а так не проще?

Код
let
    Подмена = Table.Buffer(Excel.CurrentWorkbook(){[Name="Подмена"]}[Content]),
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    AddResult = Table.AddColumn(Source, "Result", each 
        let 
            podmena = Table.SelectRows(Подмена, (r)=> r[Что ищем] = [Клиент])[Столбец]?{0}? 
        in 
            if podmena = null then null else Record.FieldOrDefault(_, podmena, null))
in
    AddResult
F1 творит чудеса
Обработка ошибки в PQ и вывод кода ошибки в результат
 
По поводу отлова конкретных ошибок сервера почитайте вот эту статью:
https://blog.crossjoin.co.uk/2016/08/09/handling-404-not-found-errors-with-web-contents-in-power-query-and-power-bi/
F1 творит чудеса
Обработка ошибки в PQ и вывод кода ошибки в результат
 
dodge, напрямую не работает так. Но вот так работает:
Код
= try Web.Page(Web.Contents("123")) otherwise "Ошибка"
F1 творит чудеса
Power Query импортировать все знаки после запятой из таблицы Excel., Цифры округлены визуально на 2 цифры после запятой, при импорте в PQ грузятся только 2 цифры после запятой. Нужны все цифры.
 
vasvasvas, это из-за исходного формата xls. преобразуйте исходный файл в xlsX, все заработает. Ну не любит PQ файлы XLS
F1 творит чудеса
Power Query. Брать в дате только определённые дни и по ним составить список, есть дата начала и конца,
 
Цитата
Андрей VG написал:
А генерацию по заданным дням недели?
побаловался:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Начало", type date}, {"Окончание", type date}, {"По каким дням недели", type text}, {"Номер", type text}}),

    #"Added Custom" = Table.AddColumn(#"Changed Type", "list", each
        let
            start = [Начало],
            finish = [Окончание],
            startWday = Date.DayOfWeek([Начало], Day.Monday)+1,
            weekDays = List.Transform(Text.ToList([По каким дням недели]), Number.From)
        in
            List.Sort(
                List.Combine(
                    List.Transform(
                        weekDays,
                        (currentWday)=> 
                            let 
                                startShift = currentWday - startWday + (if currentWday > startWday then 0 else 7),
                                first = start + #duration(startShift, 0, 0, 0)

                            in 
                                List.Generate(
                                    ()=>[day=first],
                                    each [day]<=finish,
                                    each [day=[day]+#duration(7,0,0,0)],
                                    each [day]
                                    )
                        )
                )
            )
        )
in
    #"Added Custom"

но как по мне, так овчинка не будет стоить выделки тут
F1 творит чудеса
Обойти ошибку PQ / Уменьшить скорость запроса
 
вот тут еще, например
F1 творит чудеса
Power BI: не получается связать даты в таблице данных с таблицей дат
 
Время проверьте. В таблице дат оно всегда 0:00:00
А в фактах может быть и 15:43:18
F1 творит чудеса
[Power Query] Добываем иерархию (вложенность) строк из файла Excel, есть такая функция
 
PooHkrd, жаль, не знал, хороший был блог.
Насколько знаю, у Имке было несколько постов (В основном про забирание заданного интервала ячеек). Больше не встречал, не скажу
F1 творит чудеса
[Power Query] Добываем иерархию (вложенность) строк из файла Excel, есть такая функция
 
Mirdv, пожалуйста :)
F1 творит чудеса
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 139 След.
Наверх