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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 141 След.
Power Query. Прогнозные значения свойств на будущие периоды
 
Так захотел автор ))
selector в данном случае собирает список списков.
Если убрать selector, то результатом List.Generate был бы список записей, поле l которых содержало бы список. И вместо {3} в конце надо было бы написать {3}[l], т.е. из четвертого элемента списка взять поле записи l
F1 творит чудеса
power query - как рассчитать кол-во дней в текущем квартале?
 
Вообще во 2 квартале всегда 91 день, в 3-м 92, в 4-м 92, а в 1-м 90 или 91, если год високосный. Чего там считать?
F1 творит чудеса
Power Query. Прогнозные значения свойств на будущие периоды
 
Student64, если вы про этот кусок
Код
First3 = List.Buffer( List.FirstN( Group[Коэф], 3 ) ),
Coeff = List.Buffer( {null} & List.Generate( ()=>[i = 0, l = First3], each [i]<=3, each [i=[i]+1, l=[l] & {List.Average(List.LastN([l],3))} ], each [l] ){3} ),

то там, насколько я понимаю, происходит следующее:
1. Берем первые 3 значения из столбца Коэф как список (First3)
2. Далее создаем запись из счетчика i и l=Frist3
3. Проверяем условие счетчика
4. Если удовлетворяет, срабатывает селектор - кладем первым элементом списка l
5. Увеличиваем счетчик и создаем следующий l, добавляя к нему среднее из трех последних элементов
6. Проверяем счетчик, если удовлетворяет - кладем l как следующий элемент списка. Переходим к п.5

и так получаем 4 элемента нового списка, из которого берем последний. Не вдавался в детали, зачем там еще {null} дописываем впереди
То есть, по сути, так работает:

seed
condition
selector

next
condition
selector

next
condition
selector
...
F1 творит чудеса
Power BI. Группировка по датам
 
OblivionR, ну, по вашему примеру этого не скажешь. Вполне возможно.
F1 творит чудеса
как в power bi в карточку вывести последнее значение столбца, вывод последнего значения из столбца в power bi
 
не совсем. точнее, не только
она возвращает таблицу из одной строки и одного столбца. А применение таблицам бывает разное, например, как фильтр в calculate
F1 творит чудеса
Сведение данных с нескольких таблиц на одну в соответствии с датами в PQ
 
Цитата
dodge написал:
если я вывел эти таблицы в таком виде (как на скриншоте) они уже полностью заведены в память
нет. Это не сами таблицы, а promises этих таблиц. Обещание рассчитать таблицу, когда она понадобится. Lazy evaluation, все дела
Соответственно, если у вас
Цитата
dodge написал:
есть столбец, в каждой строке которого еще таблица в 1 столбец
то быстродействие зависит от того, как вы получаете эти вложенные таблицы. если особой функцией, то там может быть большой ой.
Так что с точки зрения быстродействия надо смотреть запрос целиком. Иначе ответ простой - если таблицы имеют одинаковый набор столбцов, то либо разворачивайте, либо Table.Combine, практически незаметная разница. Но что вам на самом деле надо - знаете только вы :) как объединить, что получить, что делать с остальными столбцами и так далее.
F1 творит чудеса
Power query. Как устранить ошибку при преобразовании текстовых значений в тип duration.
 
ivanka, см. код в #16 и #18, там добавлена проверка
F1 творит чудеса
как в power bi в карточку вывести последнее значение столбца, вывод последнего значения из столбца в power bi
 
Цитата
MuhaCeCe написал:
LASTNONBLANK то он выводит почему-то максимальное  значение из столбца.
Не почему-то, а именно так и работает эта функция - для какого-то столбца вычисляется какое-то выражение, и возвращается максимальное значение столбца, для которого рассчитанное выражение не равно BLANK (само значение не возвращается)
Соответственно так же работает LASTDATE - максимальная дата столбца, FIRSTDATE - минимальная дата столбца, FRISTNONBLANK - минимальное значение, для которого рассчитанное выражение не BLANK.
Разница между использованием MAX(Table[Date]) и LASTDATE(Table[Date]) кажется незаметной, но на самом деле заметна вот так:
Код
=
CALCULATE (
    [Measure];
    FILTER ( VALUES ( Table[Date] ); Table[Date] = MAX ( Table[Date] ) )
)
Код
= CALCULATE ( [Measure]; LASTDATE ( Table[Date] ) )


LASTNONBLANKVALUE/FIRSTNONBLANKVALUE ввели совсем недавно для замены конструкции такого типа:
Код
=CALCULATE([Мера];LASTNONBLANK(Table[Column];[Мера]))

работает так - для какого-то столбца (например, дат) определить для максимальное значение, для которого рассчитанное выражение не равно BLANK, и вернуть это самое рассчитанное значение
F1 творит чудеса
Power query. Как устранить ошибку при преобразовании текстовых значений в тип duration.
 
о как :) одновременно писали :)
Не в плане сокращения кода, но в плане эстетизьму:
Код
each 
    {
        _, 
        (x) as nullable duration=> 
            if x = null 
            then null 
            else
                let 
                    t = List.Transform(Text.Split(x, ":"),Number.From) 
                in 
                    #duration(0, 0, t{0}, t{1})
    }
F1 творит чудеса
Power query. Как устранить ошибку при преобразовании текстовых значений в тип duration.
 
Здесь скорее PooHkrd ушел на уровень нирваны :)
Суть в следующем.
Когда мы делаем Table.TransformColumns, у нее два главных аргумента - это имя таблицы и операция преобразования в виде {имя столбца, функция преобразования, тип результата}
Если мы одновременно преобразовываем несколько столбцов, там будет уже такой вид, как список списков: {{имя 1, функция 1, тип результата 2}, {имя 2, функция 2, тип результата 2}}
Если функция одинаковая, то вот этот список списков (имя-функция-тип) можно генерировать из списка названий столбцов
соответственно вот этот кусочек
Код
        List.Transform(
            {"Время снимка  (план)", "Время снимка  (факт)"},
            each 
                {
                    _, 
                    (x)=> 
                        let 
                            t = List.Transform(Text.Split(x, ":"),Number.From) 
                        in 
                            #duration(0, 0, t{0}, t{1}),
                    type duration
                }
            )

из списка имен {"Время снимка  (план)", "Время снимка  (факт)"} создает список вида
Код
{
    {"Время снимка  (план)", функция, тип},
    {"Время снимка  (факт)", функция, тип}
}

Это преобразование делается путем замены (List.Transform) в исходном списке имен столбцов конкретного имени столбца на список {имя, функция, тип}
Код
each {_, (x)=>тело функции, тип результата} 

означает: для каждого элемента _ исходного списка преобразуй его в вот такой список из самого элемента, функции и типа.

Эта пресловутая функция потом применяется при преобразовании столбца. Де-факто, это такой же List.Transform:
Код
(x)=> 
    let 
        t = List.Transform(Text.Split(x, ":"),Number.From) 
    in 
        #duration(0, 0, t{0}, t{1})

означает: для каждого элемента списка (значения столбца):
  • сделай разбиение по ":"
  • преобразуй каждый кусочек в число
  • запомни получившийся список из 2 элементов как t
  • получи duration как 0 дней, 0 часов, t{0} минут, t{1} секунд
вообще конструкция let тут не обязательна, но она немного ускоряет выполнение.
Все то же самое можно было записать как
Код
(x)=>#duration(0, 0, List.Transform(Text.Split(x, ":"),Number.From){0},List.Transform(Text.Split(x, ":"),Number.From)t{1})

но зачем дважды делить и преобразовывать, если это можно сделать один раз?
Цитата
ivanka написал:
- почему для секунд  t{1}, а не t{0}?
минуты как t{0} - потому что в списке элементы нумеруются от 0.
Цитата
ivanka написал:
- не понимаю почему мы ничего не пишем внутри этой функции, для меня это как указать функцию ЕСЛИ() без аргументов внутри.
В данном конкретном случае можно указывать функцию, принимающую единственный аргумент, без указания аргументов.
Три эквивалентных записи
Код
List.Transform(list, Number.From)
List.Transform(list, each Number.From(_))
List.Transform(list, (x)=>Number.From(x))

Причины, почему так можно делать, довольно любопытные, но выходят за рамки ответа :)
F1 творит чудеса
Power BI. Группировка по датам
 
есть непреходящее ощущение, что это тот же глобус, только в профиль :)

Во-первых, у вас из данных в файле PBIX ну никак не может получиться то, что в Excel.
Во-вторых, если у вас план и факт имеют одинаковую грануляцию - по дням, то имеет огромный смысл объединить эти данные в одной таблице, выведя факт и план в разные столбцы. Или, хотя бы, просто одну под другой и доп.столбец [Тип] со значениями "план" и "факт".
Тогда у вас вообще не будет проблем с подсчетами и такая сводная вообще не понадобится - вы сможете делать любые расчеты по основной таблице фактов.

Но если вашей душе угодно, то вот вам формула - делайте с ней всё, что хотите :)
Код
План/факт = FILTER(SUMMARIZE(CROSSJOIN('справочник';'Календарь');'Календарь'[Date];'справочник'[Артикул]; 'справочник'[Группа]; "План"; sum('план'[Кол-во]);"Факт"; sum('факт'[Кол-во]));NOT(ISBLANK([План]+[Факт])))
F1 творит чудеса
Power BI. Группировка по датам
 
Хорошие у вас кейсы - как натянуть сову на глобус. Зачем - непонятно, но "может приккотиится"
F1 творит чудеса
Загрузка данных из нескольких папок в PowerBI в разных запросах.
 
Добрый день. Загрузить данные из кучи папок можно, конечно, если все они лежат в рамках одного пути (например, они все - подпапки в другой папке). При подключении к папке, вы получите список всех файлов во всех подпапках, и в отдельном столбце Folder Path - как раз ссылку на путь к файлу. Можете ссылаться на такой запрос из других и фильтровать по нужному пути, сэкономите на одном, но потеряете в другом.
Но создавать 50 запросов придется руками, это не автоматизируется.
Но что-то я сомневаюсь, что вам на самом деле нужны 50 запросов. Задача ваша не понятна, но ощущение что явно не туда  копаете.
F1 творит чудеса
Power query. Как устранить ошибку при преобразовании текстовых значений в тип duration.
 
Чего вы такие длинные формулы пишете :)
при переводе в duration можно указать больше 60 минут:
Код
in #duration(0, 0, t{0}, t{1}), type duration}
F1 творит чудеса
Power Query: поиск дубликатов по определенным столбцам таблицы
 
Цитата
Андрей Лящук написал:
(a,b)=>if b[a]-a[a]>b[b]-a[b] then 1 else 0
Супер! Все время забываю о пятом аргументе
F1 творит чудеса
Power Query: поиск дубликатов по определенным столбцам таблицы
 
Михаил Л, Вы уверены, что на таблице с 100500 строк выполнять 100500 джойнов к небуфферизированному предыдущему шагу - хорошая идея? или даже к буфферизированному...
F1 творит чудеса
Power Query: поиск дубликатов по определенным столбцам таблицы
 
CainV, вот вам без упоминания столбцов В1 и т.п.
Код
let
    Table3 = Table.Distinct(Table1 & Table2),
    #"Added Index" = Table.AddIndexColumn(Table3, "Index", 0, 1),
    Grouped = Table.Group(#"Added Index", {"A1", "A2", "A3", "A4", "A5", "A6"}, {{"idx", each _[Index], type list}}),
    Merged = Table.Join(#"Added Index", {"A1", "A2", "A3", "A4", "A5", "A6"}, Grouped, {"A1", "A2", "A3", "A4", "A5", "A6"}),
    #"Added Custom" = Table.AddColumn(Merged, "Duplicated", each Text.Combine(List.Transform(List.Difference([idx], {[Index]}), Text.From),","), type text),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"idx"})
in
    #"Removed Columns"
F1 творит чудеса
PQ: Индекс сортировки внутри одной категории
 
Михаил Л, та самая таблица _ внутри шага Group может оказаться отсортированной в другом порядке, еще до индексирования. Хотя тут сложно сказать точно, поэтому я и говорю "на всякий случай".
F1 творит чудеса
PQ: Индекс сортировки внутри одной категории
 
buchlotnik, я бы на всякий случай добавил временную индексацию перед группировкой тоже. При группировке порядок строк не гарантирован
F1 творит чудеса
PQ. Полное внешнее соединение по группам
 
Цитата
OblivionR написал:
вот я решил таким способом устранить проблему,
это очень плохая идея
Вот у вас есть такая модель:
Данные1 <- Справочник -> Данные2
В справочнике все артикулы, которые есть в Данные1 и Данные2, или даже больше.
Если вы берете для аналитики столбец артикула из справочника, у вас ничего ниоткуда не выпадет. А если будете брать артикулы из одной из таблиц Данные, то конечно это приводит к выпаданию непересекающихся артикулов, но кратно увеличивать количество строк в таблицах Данных для того, чтобы там были все артикулы - это ОЧЕНЬ плохая идея.
F1 творит чудеса
PQ. Полное внешнее соединение по группам
 
Мой код накликан на предыдущей версии файла, но поясните все же, что у вас внутри таблицы происходит?
Столбец Да/Нет как должен заполняться для добавляемых строк - потому что сценарий, или потому что дата, или почему в одном случае 0, в другом стоит 1?
В столбце план должен стоять 0?
F1 творит чудеса
PQ. Полное внешнее соединение по группам
 
.
Изменено: Максим Зеленский - 30 Мар 2020 11:22:19 (замена исходного файла)
F1 творит чудеса
Консолидация Таблиц через Power Query
 
Как должен выглядеть конечный результат?
Если правильно понял задачу, просто удалите в первой таблице наполнитель и добавьте вторую таблицу ниже
F1 творит чудеса
Как выгрузить из огромного файла HTML данные в Power Qwery
 
А вообще если не справляется PQ, попробуйте EasyMorph, например, преобразовать эту html в csv, я думаю, для него не проблема, он побыстрее будет
F1 творит чудеса
Как выгрузить из огромного файла HTML данные в Power Qwery
 
У меня прочиталось, хоть и долго читалось. Думаю, долгое чтение в основном из-за того, что в таблице некоторые ячейки имеют довольно большой ROWSPAN, и PQ преобразовывает его в плоский вид, заполняя строки для таких ячеек.
Так что совет - бейте на маленькие файлы - по месяцу, или еще мельче - насколько это будет съедаемо PQ/

Специально перевернул таблицу - ничего в конце не съедается:
F1 творит чудеса
Найти крайнее значение в строке и вывести название заголовка в PQ
 
PooHkrd, такой код не вернет 0 там, где все столбцы КОЛ РЕВ пустые (как показано в примере), в отличие от кода Андрей Лящук. (кстати, надо все же 5 столбцов убирать).
Мои пару вариантов тоже на всякий случай:
Код
=Table.FirstValue(Table.ReverseRows(Table.SelectRows(Table.Skip(Record.ToTable(_),5),each [Value]<>null)), 0)

Код
=try Table.Last(Table.SelectRows(Table.Skip(Record.ToTable(_),5),each [Value]<>null))[Name] otherwise 0
F1 творит чудеса
Как выгрузить из огромного файла HTML данные в Power Qwery
 
Цитата
mitox написал:
данных (пустые ячейки).
если в выгруженных файлах всегда одно и то же количество столбцов в таблицах, и "съедаются" только пустые ячейки слева (но не посередине), то, может быть, выровнять данные по правому краю? Сымитировав таким образом пустые ячейки.
Ну вообще даже без самого маленького образца данных сложно дать совет - слишком широк может быть спектр проблем и решений
Оффтоп
F1 творит чудеса
Как выгрузить из огромного файла HTML данные в Power Qwery
 
странно. возможно, там формат html, который чем-то не нравится PQ. А просто Excel эти файлы открываются? попробуйте, может быть, их получится пересохранить
F1 творит чудеса
Как выгрузить из огромного файла HTML данные в Power Qwery
 
насколько огромный файл-то?
F1 творит чудеса
Подсчет количества затраченного времени в DAX
 
если правильно понял, то нужно вот это:
Код
=
SUMX (
    VALUES ( 'Таблица1'[Номер трака] );
    CALCULATE (
        MAX ( 'Таблица1'[Окончание разгрузки] ) - MIN ( 'Таблица1'[Начало разгрузки] )
    )
)
формат меры потом сделать [ч]:мм
Если нужно именно в часах как целое число и и доля от часов после запятой, надо добавить умножение на 24
F1 творит чудеса
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 141 След.
Наверх