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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 18 След.
DAX мера по % долям
 
Да можно все это мерами реализовать. Те полученные доли в сводной таблице можно рассчитать в виртуальной таблице (виртуальной памяти). Затем, ссылаясь на нее, можно и план расскидать без проблем. Я так делал, причем план автоматически насчитывается на любой уровень вложенности (иерархии). Можете создать новую тему. - думаю, быстро вариантов накидают.
П.С. я пока пас - на больничном и без компа
О модераторе
 
1 апреля?
Разделить любое число на 5 целых чисел
 
Если правило одно: любые целые числа то вот вариант:
Код
=ЕСЛИ(СЧЁТЗ($A$1:A1)=5;$A$1-СУММ($A$2:$A$5);ЦЕЛОЕ($A$1/5))

в ячейку А1 введите число, а формулу в А2:А6
DAX: отбор клиентов, которые сработали последний раз 3 месяца назад и более
 
genosser, PooHkrd, - огромное Вам спасибо за помощь! Смотрю итоговое решение, читаю его и понимаю как это работает, НО сам бы до такого не додумался! Не дорос я еще до этого уровня. В процессе адаптации к реальным данным вылезла новая проблема (так всегда бывает - очень трудно заранее предусмотреть все нюансы): в список попадают новые клиенты, которые отгрузились первично в этом месяце. В примере я воспроизвел такой случай (смотрите " клиент 3")
Меру подкорректировал, добавив еще одну проверку. Получился вот такой итоговый монстр:
П.С. мне монстры тоже нравятся (они наглядны, если правильно отступы делать и их можно оперативно править):
Код
=SUMX( 
   FILTER(
      ADDCOLUMNS(
      //делаем всевозможные комбинации из пары элементов "клиент" и "номер месяца", по которым будем фильтровать вирт. таблицу
         CROSSJOIN(
            VALUES('Calendar'[порядк № месяца]);
            VALUES('продажи'[клиент_код]));
         "temp";
         CALCULATE(
         //будем считать только тех клиентов, которые отвечают двум условиям:
             IF(AND(
                //первое условие: проверка клиентов, кто покупал за последние три месяца. НО!! ISBLANK() 
                //позволяет соответственно вернуть тех, кто не брал за этот период - что нам и нужно!
                ISBLANK(
                     CALCULATE(SUM('продажи'[сумма заказа]);
                           DATESBETWEEN(Calendar[Date];
                           FIRSTDATE(PARALLELPERIOD(Calendar[Date];-3;month));
                           STARTOFMONTH(Calendar[Date]) );
                           ALLSELECTED('продажи'[торговая точка])));
                    //второе условие: нужно исключить новых клиентов с первой отгрузкой в этом месяце, потому что они ИСТИННЫ в первом условии,
                    //а это нам не нужно
                     CALCULATE(MIN('продажи'[порядк № месяца]);
                        ALL('Calendar'))<>MAX('Calendar'[порядк № месяца]));
                  SUM('продажи'[сумма заказа]); BLANK())));
      [temp]<>BLANK());
   [temp])
DAX: отбор клиентов, которые сработали последний раз 3 месяца назад и более
 
genosser, большое спасибо Вам за решение! Завтра попробую подробно разобраться в Вашем подходе и потом отпишусь.
DAX: отбор клиентов, которые сработали последний раз 3 месяца назад и более
 
Здравствуйте, уважаемые! Не могу правильно написать меру, которая бы решила следующую задачу: необходимо из общего списка продаж помесячно выделять и считать только тех клиентов, которые последний раз отгружались 3 месяца назад и более. Например. В марте всего отгрузились 9 клиентов, но только 4 из них нужно посчитать, т.к. до марта их последние заказы были в ноябре 2019 или ранее. Во вложении пример как есть и как должно быть.
П.С. в таблице есть дополнительное поле "торговая точка" - мера не должна реагировать на это поле. Мой неправильный вариант меры, который я сделал, корректно работает только с последним месяцем, и к сожалению, реагирует, на поле "торговая точка".
Список, открываемый из сводной таблице, не соответствует заданным параметрам, открывается список с юнитами, "отсеченными" фильтром
 
Цитата
Danica написал:
если пользоваться фильтрами, то все работает правильно, а если пользоваться срезами,
- это одно и то же. Повторил Ваши действия со срезами из сообщения №1 - работает корректно, на отдельный лист выпало 20 строк данных.
Сводная таблица. Как развернуть только одну группу
 
Возможности избавиться от такого поведения сводной нет. Единственный вариант, это:
Цитата
Maranii написал:
уникализировать все подгруппы
DAX мера по % долям
 
Цитата
mr.Gaudi написал:
реально такой расчет сделать через вычисляемый столбец?
Реально, но зачем? В DAX вся аналитика делается через меры - механизм заточен так, а вычисляемый столбец используется в бол-ве случаев -  когда в таблицу необходимо подтянуть данные в том или ином виде из других таблиц. Т.е., если цифры нужны для анализа - пишите меры, а не вычисляемые столбцы (через реку проложен мост - это меры, начать переплывать реку при наличии моста - это вычисляемые столбцы).
П.С. вычисляемые столбцы используют такую конструкцию, когда нужно сопоставлять поля друг с другом:
вместо
Код
'table'[Chain Name]='table'[Chain Name]

нужно
Код
'table'[Chain Name]=Earlier('table'[Chain Name])
DAX мера по % долям
 
Ничего не менял, все на Вашем примере: цифры согласно Вашему результату. Если нужен какой-то другой расчет - приложите новый пример с тем, как надо.
П.С. Вы, наверное, путаете понятия меры и вычисляемого столбца?
Изменено: Vladimir Chebykin - 18 Мар 2020 11:50:08
DAX мера по % долям
 
мера:
Код
=DIVIDE(
   SUM([Sale Kg]);
   CALCULATE(SUM('table'[Sale Kg]);   
      ALLEXCEPT('table';'table'[Chain Name];'table'[Year];'table'[Month]));
   BLANK())
DAX мера по % долям
 
Такую долю можно получить и встроенными инструментами сводной таблицы. Разместите поле "Sale kg" в область значений (сделайте тип "числовой формат" - в примере стоят "проценты"). Далее правой кнопкой мыши в любом месте области значений/дополнительные вычисления/ % от родительской суммы/ базовое поле: Chaine name.
DAX-POWER_PIVOT - Распределение значений в столбцах или строках сводной таблицы, в зависимости от результата вычислений других столбцов или строк
 
lostandleft, мое личное мнение: нужно переделывать всю модель данных. Вы попытались все упихнуть в одну таблицу, что негативно сказывается для проведения расчетов. Самое простое - поле "атрибут" надо разбивать на два отдельных столбца. Убирать пересечения ингридиентов и продукции и разносить по разным таблицам. Сделав правильную модель данных, можно проводить сложные вычисления на DAX. Сейчас это практически не реально сделать - только простые агрегации.
Составить случайный курс валюты на 30 дней (В пределах установленного коридора)
 
Код
=--СЦЕПИТЬ(СЛУЧМЕЖДУ(60;64);",";СЛУЧМЕЖДУ(0;99))
формула Отклонение в суммах между датами в PQ и Power BI
 
Как вариант, решение мерой в сводной таблице. Можно выбрать любые две даты и мера посчитает разницу (или отклонение) именно между выбранными датами: максимальной и минимальной. Даты можно выбирать через фильтр сводной или через срез.
Есть один побочный эффект - образуется один ненужный пустой столбец. В экселе можно просто скрыть, а в PBI не знаю, что с ним делать.
формула Отклонение в суммах между датами в PQ и Power BI
 
опишите алгоритм, по которому выбираются даты для сравнения отклонения. В примере у Вас просто две даты, а в реальных данных как обстоят дела? Может Вам требуется выводить отклонения от двух рандомных дат или еще как-нибудь? Ответы на эти вопросы определяют написание функции в DAX.
DAX Удельный вес от значения суммы конкретных строк
 
Пока не
Цитата
Vladimir Chebykin написал:
набросайте от руки образец таблицы, какой результат должен получиться на выходе. Значения в примере проставьте в ручную.
больше не помогаю.
Есть у меня большое подозрение, что Вы сами не понимаете как правильно должно считаться, когда выбытие и поступление приходится на разные дни.
Попробуйте посчитать от руки результат по этим дням, которые "НЕ РАБОТАЕТ" (желательно с обычной формулой эксель, чтобы видеть на какие значения ссылается)
ПКМ - правая клавиша мыши
DAX Удельный вес от значения суммы конкретных строк
 
Цитата
Vladimir Chebykin написал:
Фильтры в Калькулейт работают корректно. За исключением иерархии дат
Потому и не работает, что нет связи между расходами и поступлениями. А в предыдущих примерах работало, потому что примеры так составлены были. В рамках одного дня работает, в рамках одного месяца работает. Выделите две даты из Вашего последнего примера: 05 и 06 марта, как система должна сработать в таком случае?
DAX Удельный вес от значения суммы конкретных строк
 
Если правильно понял: просто добавьте поле "Количество" в область значений сводной. Затем: ПКМ/дополнительные вычисления/% от родительской суммы/базовое поле=движение.
Всю предыдущую переписку в помойку.
DAX Удельный вес от значения суммы конкретных строк
 
Нужна ли при этом связь материалов (выбытие) к конкретному объекту (поступление)? Или тупо объем расходов разделить на объем поступлений за указанный период?
Если первый вариант - вся переписка до этого бессмысленна, потому что в Вашей таблице нет связи между материалами и объектами, на которые они расходуются.
Если второй вариант - то как должна рассчитываться доля по тем дням, когда расходы есть, а поступлений нет?.\
В примере набросайте от руки образец таблицы, какой результат должен получиться на выходе. Значения в примере проставьте в ручную.
DAX Удельный вес от значения суммы конкретных строк
 
Я честно говоря уже запутался, что Вы хотите. Вы хотите понимать долю материалов (движение "выбытие") по отношению к стоимости комнаты (Поступление)? Или тупо распределение доли материалов внутри группы?
Какой из двух способов?
DAX Удельный вес от значения суммы конкретных строк
 
Цитата
lostandleft написал:
В оригинальной сводной таблице, все равно даты не цепляются,
Возможно, дело в формате дат: если стоит формат посекундной даты "20.02.2020 0:00:00" попробуйте преобразовать в формат просто даты - "20.02.2020" и в таблице данных, и в календаре.
DAX Удельный вес от значения суммы конкретных строк
 
На русскоязычном пространстве например можете здесь статьи почитать. Неплохо и здесь рассказывается про функции. На самом деле сейчас уже много полезной и подробной информации по DAX. 3 года назад все было намного печальнее.
DAX Удельный вес от значения суммы конкретных строк
 
А почему она НЕ должна создаться? Вы спокойно можете прицепить календарь к любому полю и связь будет активной. Другое дело, что совпадений по ней не будет. Вам бы теорию хорошо по изучать для начала. Все Ваши вопросы и проблемы от незнания базовых вещей. Похоже, что Вы сразу бросились в практику, не изучив как следует теорию.
DAX Удельный вес от значения суммы конкретных строк
 
Не работает, потому что в основной таблице у Вас не даты, а текст. Измените тип данных в запросе PQ и будет Вам счастье.
DAX Удельный вес от значения суммы конкретных строк
 
Пример с календарем приложите.
DAX Удельный вес от значения суммы конкретных строк
 
ALLEXEPT()-сбросить все фильтры сводной таблицы, кроме указанной внутри функции. Внутри дата, значит функция сбрасывает все фильтры сводной, но с учетом фильтра дат. Фильтры сводной - это наименования полей сводной в строках и столбцах.
Изменено: Vladimir Chebykin - 10 Мар 2020 09:09:22
DAX Удельный вес от значения суммы конкретных строк
 
так попробуйте:
Код
=CALCULATE(SUM([Количество]);ALLEXCEPT('Таблица1';'Таблица1'[Дата]);'Таблица1'[Движение]="Выбытие")
DAX Удельный вес от значения суммы конкретных строк
 
Цитата
lostandleft написал:
В чем отличие логики Калькулейт, от логики SUMX
это две абсолютно разные функции. Объяснять не буду.. долго...гуглите. Вообще Cаlculate - одна из ключевых функций в DAX, которая позволяет менять фильтры по своему усмотрению. И в этом ее главная особенность.
DAX Удельный вес от значения суммы конкретных строк
 
Цитата
lostandleft написал:
пытаюсь побороть азы DAX но никак не могу понять логику работы фильтров
Совет: пробуйте разбить задачу на подзадачи и поэтапно их решайте. На вашем примере привел вариант поэтапного решения задачи, чтобы проще понять как работают функции.
А вообще Вы там перемудрили с мерами, все решается намного проще. Отмечу, что структура таблицы у Вас не совсем правильная, и если комнат будет несколько, доля будет считаться по отношению ко всем комнатам, а не к конкретной.
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 18 След.
Наверх