Заработала :-). Громадное спасибо! Мера расчета баллов у меня иначе называется. Не сразу понял, что надо поменять её имя. Плюс деление на область привело к индивидуальному рейтингу в каждой области, прикольно получилось. ALL расширил, получился такой итог:
Код
Место в рейтинге СЦ_ =
IF (
HASONEVALUE ( 'СпрСП'[СЦ] );
RANKX (
ALL ( 'СпрСП'[СЦ];'СпрСП'[Область] );
[Rating's data]
)
)
Похоже, что итог ALL ( 'СпрСП'[СЦ];'СпрСП'[Область] ) для RANKX, это таблица из столбцов: [СЦ]; [Область] и [количества баллов] вычисляемого мерой [Rating's data].
Это точно в стандартном описании ALL можно найти? Совершенно не помню Может у вас сохранилось в памяти где такие нюансы рассматриваются? Можно и на английском.
Сам учусь PBI-ю. Текущие отчеты не рассчитаны на представление данных в нужном виде. Приходится переделывать выискивая исходные данные. Спросить пока некого, а судя по дашбордам, не факт, что помогут.
Я, наверное, не очень понятно объясняю. Скриншот таблицы, это не таблица, а визуальный элемент дашборда в Power BI, все данные туда рассчитываются мерами, причем из разных таблиц, связь межу которыми только через наименование подразделений, таблицу - справочника СпрСП
Мне нужен расчет рейтинга через меру, чтобы на дашборде работал динамический пересчет при изменении дат.
Место Х в рейтинге СЦ =
VAR
Rating_SC = ADDCOLUMNS(DISTINCT('СпрСП'[СЦ]);"rating_data";[Rating's data])
return
RANKX(Rating_SC;[Rating's data])
Ок, ругаться на ошибку перестало. Выводит единицу для каждого. Вероятно, это связано с тем, что виртуальная таблица не имеет связи со справочником подразделений, а значит с другими таблицами исходных данных.
Я ведь получаю таблицу из наименований СЦ, первая колонка, и количества баллов, последняя колонка скриншота второго сообщения. Но связки виртуальной таблицы по наименованию СЦ нет. Или я неверно понимаю?
P.S. Если выложу пример, то будет проблема с разглашением конфиденциальной информации.
Попробовал вариант с виртуальной таблицей:Место Х в рейтинге СЦ =
Код
VAR
Rating_SC = ADDCOLUMNS(DISTINCT('СпрСП'[СЦ]);"rating_data";[Rating's data])
return
RANK.EQ([Rating's data];Rating_SC[rating_data])
Не понимает обращение к виртуальной таблице в переменной. Да и связи со справочником подразделений нет. Подскажите, куда копать?
Скриншот таблицы вложил, итоговые баллы в последнем столбце, их нужно на рейтинг заменить. P.S. Не анализируйте показатели, у каждого свой порог выполнения и это не 100%.
Имеется визуальный элемент - таблица из показателей, представленных процентами выполнения плановых значений. Считаю баллы для рейтинга сложением мер:
Код
Баллы = 'Measure'[платина]+'Measure'[кроме платины]+(1-'Measure'[% повторных])+'Measure'[К1-К4 % в срок]+'Measure'[% в срок]
Получаю столбец с некими баллами, а нужно рейтинг. Ничего лучшего не придумал, как создать вычисляемую таблицу с уникальными названиями подразделений:
Код
Rating SC = DISTINCT('СпрСП'[СЦ])
куда добавил столбец Баллы, вычисляемый по первой формуле. Связал таблицу со справочником из которого и выдернул уникальные названия подразделений, Создал меру рейтинга:
Код
Место в рейтинге СЦ = RANK.EQ([Rating's data];'Rating SC'[Баллы])
В принципе, всё работает, если не менять диапазон дат, а мне это нужно обязательно.
Меры элементарные, первая не суммируется, а вторая и третья используются в первой:
Код
сотр производительность = [эфф специалиста]/[колич дней специалиста]
эфф специалиста = SUM(t_workers[Эффективность дня специалиста])
колич дней специалиста = DISTINCTCOUNT(t_workers[Дата закрытия])
С приложением исходника сложно, там ФИО, что нужно менять. Я создал второй расчет в новом файле с немного другим подсчетом второй меры, получил то же самое
Если без исходника никак, займусь подменой ФИО и наименований подразделений. Выложу.
Скриншот проблемы приложен. В таблице суммируется два параметра. Первый без ошибок, а второй неверно считается как по промежуточным, так и итоговый результаты. Если выгрузить таблицу в Excel, то там данные считаются корректно.
StepanWolkoff, это фактически первый опыт с неким планируемым итогом в BI. Хорошо, что не видели полный исходник, где порядка 50 вычисляемых таблиц плюс меры.
Даты текстом, это промежуточные итоги перед написанием:
Код
Дни недели = FORMAT([Дата]-WEEKDAY([Дата],3),"DD.MM") & " - " & FORMAT([Дата]+7-WEEKDAY([Дата],2),"DD.MM.YY")
В основной таблице тоже есть вычисляемые начало и конец недели, там уже нормально, как в вашем примере.
Вероятно, куча текста отпугивает. Если кратко, то так:
Подскажите, как посчитать данные из предыдущего периода (недели)? Мне нужно, чтобы в одной таблице были данные отчетной недели, предыдущей и разница между ними. Ссылка на файл BI: https://disk.yandex.ru/d/ksaVKZnRIL0ztQ
Имеется ежедневная выгрузка по абонентам с наличием у них проблем (предикторов) согласно систем мониторинга. В отчет попадает 15 предикторов. Исходная таблица 'предикторы'. В нее добавляем вычисляемый столбец "отч.дир. кол-во пр-ов в день" для подсчета предикторов в одной строке (у абонента может быть несколько предикторов, одна строка в день на одного абонента). Далее этот столбец используем для фильтрации, чтобы не считать ненужные строки.
Отчетный период - неделя. Для фильтрации сделал табличку дат "Даты предикторов".
Проблемы у абонента могут быть зафиксированы от 1 до 7 раз в неделю, т.е. от одного произвольного дня недели до ежедневной фиксации. Интересует повторяемость 5-7 дней из 7 и 7 дней из 7.
Чтобы посчитать количество попаданий абонента в недельный период сделал сводную:
Код
отч.дир. Сводная по ПП = SUMMARIZE(FILTER('Предикторы','Предикторы'[отч.дир. кол-во пр-ов в день] > 0),
[пп],[Начало недели],[Конец недели], "ПП на неделе", COUNT('Предикторы'[ПП]))
Потом из нее вытаскиваю количество дней с проблемами в неделе в основную таблицу "предикторы" добавляя вычисляемый столбец:
Код
ПП на неделе = LOOKUPVALUE('отч.дир. Сводная по ПП'[ПП на неделе],'отч.дир. Сводная по ПП'[ПП],
'Предикторы'[ПП],'отч.дир. Сводная по ПП'[Начало недели],'Предикторы'[Начало недели])
Далее создаю визуальный элемент - таблицу, вытаскиваю фильтры на недельный период и технологию. Считаю для каждого узла попадание абонентов в отчет с повторяемостью 5-7 дней из 7 и 7 дней из 7, мерами:
Код
отч.дир. 5-7 ПП = CALCULATE(DISTINCTCOUNT('Предикторы'[ПП]), FILTER('Предикторы',
AND('Предикторы'[отч.дир. кол-во пр-ов в день]>0,AND('Предикторы'[ПП на неделе] >= 5,
'Предикторы'[ПП на неделе] <= 7))))
Код
отч.дир. 7 ПП = CALCULATE(DISTINCTCOUNT('Предикторы'[ПП]), FILTER('Предикторы',
AND('Предикторы'[отч.дир. кол-во пр-ов в день]>0,'Предикторы'[ПП на неделе] = 7)))
Подскажите, как посчитать данные из предыдущего периода (недели)? Мне нужно, чтобы в одной таблице были данные отчетной недели, предыдущей и разница между ними. Ссылка на файл BI: https://disk.yandex.ru/d/ksaVKZnRIL0ztQ Вложить не получается из-за размера файла.
Спасибо! С индексом разберусь . Пока вникал, мозги вскипели и возникли вопросы:
1. Table.TransformColumnTypes не примет список списков, т.к. type text не должно быть текстовым значением, а в список его можно загнать только в виде текста? Или есть метод изменения типа столбца таблицы подстановкой списка в Table.TransformColumnTypes?
2. Ваши методы работы с таблицами и списками в PQ где то описаны, хотя бы основы, или только своим умом и на примерах можно учиться? Если есть источники, подскажите пожалуйста где можно ознакомиться?
Файлы Excel и BI прилагаю. Первый является источником для второго.
Первую задачу не получается довести до конца. Получить список названий колонок для изменения типа не проблема: List.Select(Table.ColumnNames(Исходник), each Text.Contains(_,"Длит")= true) Далее, используя List.Split, можно получить список списков. Насколько понимаю, в этот список списков, в каждый вложенный список, нужно добавить type number и заставить Table.TransformColumnTypes понять этот список списков. На этом я застопорился.
Ко второй задаче преобразования таблицы не понимаю как подступиться. В Excel сделал бы через циклы, но мне нужно в Power BI.
Имеется Исходная таблица, см. в конце сообщения. Во второй строке указал автоматически определяемый при загрузке тип по BI. Число N (количество этапов) меняется от отчета к отчету в диапазоне от 40 до 100. По непонятной причине, BI при загрузке таблицы из Excel у половины колонок Длит ставит type any вместо type number.
Подскажите, как можно решить две задачи:
1. Всем колонкам Длит присвоить type number автоматически
2. Автоматически собрать из исходной таблицы новую, с колонками:
Шаг|
Исполнитель|
Длит|
ШЗ
т.е. все блоки по 4 столбца Исходной таблицы нужно сложить чем-то навроде Table.Combine.
Сильно тапками не кидайте, я в Power Query новичок