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

Страницы: 1 2 След.
Вывод исходных данных из сводной таблицы с учетом дополнительного контекста (PP)
 
Жаль, я надеялся на чудо. Чуда не произошло. :)
Спасибо! Тему можно считать закрытой.
Вывод исходных данных из сводной таблицы с учетом дополнительного контекста (PP)
 
Добрый день,

Прошу совета, как можно решить следующую задачу:

Есть таблица (см. пример).
Для таблицы определяется мера в PP ("Сумма (тип 1)").

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

Т.е. в примере сейчас нет разницы, если дважды щелкну на числа в мере "Общая сумма" или "Сумма (тип 1)". В обоих случаях я получу "все заказы". А хотелось бы сделать так, чтобы при двойном щелчке на значении каждой меры я получал бы таблицу только со строками, которые участвовали в расчете меры.

Это возможно или нет?

Заранее благодарю за ответы.
Функция SAMEPERIODLASTYEAR + ошибка в "непрерывности" дат в сводной (PP)
 
Ах, вот в чем дело. Понял. Спасибо. :)
Функция SAMEPERIODLASTYEAR + ошибка в "непрерывности" дат в сводной (PP)
 
Ок, я создал новый календарь через конструктор в модели данных и связал его с таблицей Заказы. Ошибка не исчезла. Все также - в одной сводной работает SAMEPERIODLASTYEAR, а в другой - нет.
Функция SAMEPERIODLASTYEAR + ошибка в "непрерывности" дат в сводной (PP)
 
georgem, хм,

У меня в примере, в Модели данных исходные таблицы Заказы и Календарь связаны. При этом таблица Календарь помечена как "таблица дат".
Разве этого недостаточно?
Функция SAMEPERIODLASTYEAR + ошибка в "непрерывности" дат в сводной (PP)
 
Добрый день,

Прошу помочь разобраться, почему в таблице "Сводная 1" мера [Итого PY (fx Sameperiod)]  с функцией SAMEPERIODLASTYEAR работает, а в другой - вызывает "Ошибку вычисления в мере..." по причине отсутствия непрерывности дат.

Получить данные за предыдущий аналогичный период (месяц) получается только через функцию PARALLELPERIOD ([Итого PY (fx Parallelperiod)])

См. пример во вложении.

Заранее благодарю за ответы.
Определить для сумм диапазоны значений (PQ)
 
sotnikov,
Огромное спасибо!
Так и знал, что всё не сложно.

Что-то я совсем отупел. Ничего сам сообразить не могу. :(

Спасибо еще раз.
Вопрос решен. Тему можно считать закрытой.
Определить для сумм диапазоны значений (PQ)
 
Добрый день,

Прошу помочь справиться со следующей задачей в PQ:
Есть таблица заказов, у каждого заказа - своя стоимость.
Есть таблица "диапазонов сумм" (от 100 до 200 тыс. руб., от 1 млн. до 2 млн. руб. и т.д)
Как в PQ определить в столбце с каждым заказов, в какой диапазон значений входит его стоимость (Столбец1 во вложенном примере).

Никак не могу справиться с задачей.
Заранее благодарю за содержательные ответы.
Низкая скорость обработки запроса с регулярными выражениями
 
Andrew Rubanov, спасибо за наводку.
Низкая скорость обработки запроса с регулярными выражениями
 
AlienSx, соглашусь с Вами в определенной степени.

Изначально задача решалась с помощью regexp и всё, действительно, "работало", но медленно.

Вероятно, мой первоначальный пример был некорректен, т.к. не охватывал все возможные "варианты для отсечения". Как результат, предложенные ответы были "высокоскоростные", но не решали задачу полностью в части охвата слов для отсечения.
Дальнейшие запросы от меня были попыткой получить доработанное "скоростное" решение с учетом более "полного охвата".
Согласен, что в данный момент, задача смещается в несколько другом направлении.

Предположу, что увеличение разнообразия количества возможных вариантов слов, которые требуется отсечь, приведут к решению, которое, по скорости не будет особо отличаться от варианта с regexp.

В таком случае, тему можно закрывать.

Благодарю всех за посильную помощь и советы.  
Низкая скорость обработки запроса с регулярными выражениями
 
sotnikov,

"контрагент" я записал для примера. В оригинале слова "контрагент" нет в принципе. Вместо него идут всевозможные названия юрлиц, ИП, физлиц. С и без обозначения формы собственности. Причём, форма собственности может быть как краткой (ООО, ОАО, ИП), так и полной (Общество с ограниченной ответственностью и т.п.)
Низкая скорость обработки запроса с регулярными выражениями
 
sotnikov, добрый вечер,

Есть ли какие-либо еще возможности, на Ваш взгляд, с учетом обновленного "примера" или надежды больше нет? ;)
Низкая скорость обработки запроса с регулярными выражениями
 
sotnikov, спасибо за участие :)

Обновленный пример прилагаю.
Изменено: Sviman144 - 16.08.2025 23:08:05
Низкая скорость обработки запроса с регулярными выражениями
 
sotnikov, спасибо.
Если я правильно понял, то предложенный Вами вариант подходит, когда нужно отделить что-то слева до конца строки.
Видимо, пример, не совсем удачный, т.к. представляет только один вариант "замены".

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

+ еще один вопрос: а как быть в случае, когда требуется удалить какую-то часть внутри строки, например, между разделителями, причем, разделители могут отличаться друг от друга?
Низкая скорость обработки запроса с регулярными выражениями
 
Цитата
написал:
Без файла-примера только гадать...
Предположил, что формулы будет достаточно. Файл-пример прилагаю.
Цитата
написал:
И почему бы не делать это с помощью VBA.
Данная обработка - лишь  одна из многих для этой таблицы. Остальные обработки сделаны также в PQ. Итоговый результат передается в PP, а оттуда - в сводные отчеты. Предположил, что делать всю "работу" в чем-то одном будет разумнее. Кроме того, я не знаю VBA.
Общее количество строк в "основной" таблице около 90-100 тыс. шт.
Низкая скорость обработки запроса с регулярными выражениями
 
Добрый день,
Прошу совета, можно ли как-то ускорить обработку запроса с заменой регулярных выражений.
1. Есть большая (основная) таблица (выписка) с кучей полей, в том числе, поле "Контрагент"
2. В поле "Контрагент" организации пишутся, зачастую, с дополнительной информацией, вроде номеров расчетных и лицевых счетов, доп. офисов и т.п.
3. Необходимо в поле "Контрагент" оставить только само название контрагента + краткую форму собственности (ООО, АО и т.п.)

4. Для решения этой задачи использую следующую функцию:
Код
let fx=(txt as text, lst as list) =>
    try List.Accumulate(lst, txt, (state, current) =>
        Text.Replace(
            Text.Upper(state),
            Text.Upper(let  
                reg = Web.Page(
                "<script>
                    var x = '" & txt & "';
                    var pattern = new RegExp('" & current & "', 'gmi');
                    var result = x.match(pattern);
                    document.write(result);
                </script>")[Data]{0}[Children]{0}[Children]{1}[Text]{0}
                in
                reg), "")
    )
    otherwise ""
in
fx

5. Функцию вызываю для каждого поля "Контрагент" в основной таблице, где в качестве txt - значение поля, lst - ссылка на список значений регулярных варажений (см. скриншот).

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

Заранее благодарю за конструктивные ответы
Среднее значение в "Итогах" на основании уникальных значений
 
Prosvetov,

Огромное спасибо!
Как же всё просто оказалось!
Среднее значение в "Итогах" на основании уникальных значений
 
gling, спасибо, но, что-то я не могу разобраться в вашем примере совсем.
Зачем "план-факт", операции и т.д., если мне нужно - только среднее значение за год на основании количеств уникальных товаров?
Поясните, пожалуйста, свой пример или, возможно, вы приложили не тот файл?
Среднее значение в "Итогах" на основании уникальных значений
 
Добрый день,
Прошу помочь с решением следующей задачи:
1. Есть Таблица с списком, допустим, проданных товаров за период (Дата | Id товара | Кол-во | Цена | Сумма)
2. Необходимо рассчитать количество уникальных товаров, проданных за месяц
3. Среднее количество проданных уникальных товаров за год.

В файле - пример таблицы, где в каждой строке собрано количество уникальных товаров, проданных за месяц.
Код
Мера: Кол-во уникальных товаров за месяц:= DISTINCTCOUNT('Таблица[Id товара])
Но, используя эту меру, в "Итогах" я получаю количество уникальных товаров за год. А как определить среднее значение, на основании ежемесячных итогов?

Заранее благодарю за ответы.
Расчет значений за предыдущий год в сводной таблице
 
Ок, закончили.
Еще раз, спасибо!
Расчет значений за предыдущий год в сводной таблице
 
Alex, ОГРОМНОЕ спасибо!
Дополнительный вопрос, если позволите, а то я совсем запутался, .

Итоговую меру:
М1:
Код
=CALCULATE([Вся прибыль]; 'Заказы'[Id]<=5; SAMEPERIODLASTYEAR('Calendar'[Date]))
, по идее, можно переписать как
М1А
Код
=CALCULATE([Вся прибыль]; FILTER(ALL('Заказы');'Заказы'[Id]<=5); SAMEPERIODLASTYEAR('Calendar'[Date]))
, согласно "Руссо М., Феррари А., Подробное руководство по DAX,, стр. 167"

А мера:
М2:
Код
=CALCULATE([Вся прибыль]; FILTER('Заказы';'Заказы'[Id]<=5); SAMEPERIODLASTYEAR('Calendar'[Date]))
отличается от М1А лишь отсутствием функции ALL().

При этом, М2 всегда "пустая" (в случае установленного фильтра по году).
Почему? Как влияет на исходный контекст фильтра первый аргумент в М2?
Расчет значений за предыдущий год в сводной таблице
 
Alex, спасибо за ответ, но, все равно непонятно.
Если Вас не затруднит, то как, в таком случае, должен выглядеть аргумент фильтра CALCULATE или вся формула меры целиком?
Расчет значений за предыдущий год в сводной таблице
 
Alex, согласен, сглупил. Конечно, это - "ошибка". (в "нервном порыве" написал, когда ничего не получалось).
До этой "ошибки" формула была следующей:
Прибыль ПГ:=CALCULATE([ВСЯ Прибыль];filter('Заказы';'Заказы'[Id]<=5);SAMEPERIODLASTYEAR('Calendar'[Date]))

Но при такой формуле в мера не вычислялась вовсе. Как я понимаю, из-за того, что Sameperiod...пытался наложиться на даты из таблицы "Прибылей". А т.к. связи между ними нет, то и - пусто.

Другой вариант формулы был:
Прибыль ПГ:=CALCULATE([ВСЯ Прибыль];filter('Заказы';'Заказы'[Id]<=5 && SAMEPERIODLASTYEAR('Calendar'[Date])))

Но при такой, как раз "дублируются" данные - одинаковые, что за текущий, что за предыдущий годы.

"Сработал" такой вариант: Прибыль ПГ:=CALCULATE([Прибыль ТГ];SAMEPERIODLASTYEAR('Calendar'[Date]))
Но, непонятно, что не так со вторым вариантом?
Расчет значений за предыдущий год в сводной таблице
 
Не влезло "вложение" с первого раза (более 300 Кб). Прилагаю в Архиве (уж, простите).
Расчет значений за предыдущий год в сводной таблице
 
Добрый день,
Прошу помочь разобраться как отразить в сводной таблице корректные данные за предыдущий год.
Исходные данные:
1. Таблица "заказы", с данными о заказах с некой "опорной датой" (Id заказчика, Id заказа, опорная дата, стоимость заказа)
2. "Опорная дата" связана с "Календарем"
3. Дополнительно существует еще несколько таблиц, допустим, две, которые связаны с основной таблицей "Заказов" по Id заказа.
3.1. Одна таблица - оплаты по Id заказа
3.2. Другая таблица - расходы по Id заказа
3.3. Даты в этих таблицах не имеют значения
4. Прибыль рассчитывается как разница между "Оплатами" и "Расходами"

Необходимо создать сводную таблицу, в которой бы все было сведено по Заказчику (строки). Столбцы - Даты (в частности, ГОДЫ из Календаря).
В значения необходимо иметь возможность вывести данные о Прибыли в текущем и предыдущим году с учетом дополнительных фильтров.

Если накладываю только один фильтр на "Прибыль" вроде Sameperiodlastyear('Каленадь'[дата]), то вроде как считает, как надо. Если дополнительно накладываю фильтр на заказы, то значения для Прибылей становятся одинаковыми, что за текущий, что за предыдущие годы.

Пример - во вложении.

В чем моя ошибка?
Заранее благодарю за конструктивные ответы.
Power Pivot. Средняя загрузка в день (за месяц) в зависимости от количества дней занятости
 
Alex,

Спасибо за наводку, такая книга есть, правда, застрял на 4-й главе с контекстом/строкой. Никак не дается :)
Power Pivot. Средняя загрузка в день (за месяц) в зависимости от количества дней занятости
 
Alex, surkenny,

Сейчас смотрю на решения и вижу - да, всё, оказывается, не так и сложно. Ход решения понятен.

...еще было бы здорово научиться, как находить решения для подобных задач.
Этому можно научиться или это врожденное? ;)

Еще раз, благодарю.
Power Pivot. Средняя загрузка в день (за месяц) в зависимости от количества дней занятости
 
surkenny, спасибо за ответ!
Power Pivot. Средняя загрузка в день (за месяц) в зависимости от количества дней занятости
 
Alex, благодарю за ответ! Разобрался, помогло :)

Один доп. вопрос:
Цитата
написал:
на большом объеме производительность будет так себе
- это, скорее, относится к предложенному Вами решению или сама "задача" не предполагает оптимального решения в силу своей "специфичности"?
Power Pivot. Средняя загрузка в день (за месяц) в зависимости от количества дней занятости
 
Добрый день,

прошу помочь советом с решением следующей задачи:
1. Есть таблица (см. Пример.xlsx), в которой обозначены работы (ID) и даты, в которые эти работы были проведены.
2. Необходимо рассчитать: среднее количество работ, которыми занимались в месяц.
3. Возможно, для созданной меры есть более простое написание, нежели сделанное через Filter(...), см. Пример.

Описание "Примера":
1. Таблица слева - исходные данные
2. Таблица справа - сводная (из PP)
3. Таблица внизу ("Сводная (по месяцам)") - требуемый итог.

Создал меру, которая показывает по дням "была ли работа" или нет. Но, данная мера при сворачивании месяца также отражает общее количество уникальных работ, без учета количества дней, в которые этими работами "занимались".

А хотелось бы создать меру так, чтобы она отражала именно среднее количество работ в месяц с учетом количества дней "отданных" конкретной работе.
+ При отсутствии в "Строках" сводной таблицы фильтра по ID работ, таблица бы также отражала среднее суммарное значение количества работ за месяц/квартал/год (в зависимости от варианта фильтра по "столбцам").

Заранее благодарю за конструктивные советы.
Страницы: 1 2 След.
Наверх