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

Страницы: 1 2 3 4 5 След.
Группировка данных Power Pivot
 
Цитата
написал:
где у меня ошибка в мере с GROUPBY
Вот так надо:
Код
VAR tbl1 =    ADDCOLUMNS ( SUMMARIZE ( 'Таблица1'; [Дата] ); "MySum"; [value] )

https://www.sqlbi.com/articles/best-practices-using-summarize-and-addcolumns/
Изменено: PowerBI_WannaBe - 04.09.2024 13:31:28
Группировка данных Power Pivot
 
Готово, проверяйте


Код
=
VAR tbl1 =
    ADDCOLUMNS ( SUMMARIZE ( 'Таблица1'; [Дата] ); "MySum"; [value] )
VAR a =
    AVERAGEX ( tbl1; [MySum] )
RETURN
    a
Где value = SUM ( 'Таблица1'[Остатки, руб.] )
DAX. Вычислить меру на последний день последнего месяца =до= выбранного периода
 
Мб такая логика подойдет?
Тут данные на последний день предыдущего месяца:
Код
VAR CurrDate =
    MAX ( 'DimDate'[Date] )
VAR MyDate =
    DATE ( YEAR ( CurrDate ); MONTH ( CurrDate ); 1 ) - 1
VAR MyVal =
    CALCULATE ( [val]; 'DimDate'[Date] = MyDate )
RETURN
    IF ( ISBLANK ( [val] ); BLANK (); MyVal )
DAX averagex из нескольких таблиц
 
Справился сам

Код
Test1 = var a = 
AVERAGEX(
    ADDCOLUMNS(
        SUMMARIZE ( 
            CALCULATETABLE('Fact') , DimStore[ID] , DimDates[Date] 
        )
        , "MyPlan", [Plan]
        , "MyFact", [Fact]
        , "MyAbsDiff%", ABS ( DIVIDE ([Fact] , [Plan]) - 1)
    )
    , [MyAbsDiff%]
)
return a
Изменено: PowerBI_WannaBe - 02.08.2024 14:34:45
DAX averagex из нескольких таблиц
 
Всем привет!

Есть 2 таблицы фактов (план продаж и факт продаж), которые связаны между собой таблицами-измерениями (магазины и даты).
Вопрос, есть ли какой-то способ посчитать averagex по мере, которая считается из этих двух таблиц фактов?
То есть, есть мера, которая считает абс. процент отклонения факта от плана, и в итогах хотелось бы увидеть, скажем так, не "меру суммы", а "сумму мер"

Мб вообще есть какой способ это лучше сделать?

Постарался подробнее показать, что нужно, на скрине и в файле


Изменено: PowerBI_WannaBe - 02.08.2024 14:33:04
DAX Power Pivot BI данные за прошлый год НО не более чем на текущую дату
 
Товарищи Alex,  Vladimir Ch,  surkenny,  спасибо всем большое!
DAX Power Pivot BI данные за прошлый год НО не более чем на текущую дату
 
Решил проблему своим способом.

На самом деле, у итальянцев есть какое-то ебейшее решение этой проблемы в daxpatterns
https://www.daxpatterns.com/custom-time-related-calculations/

Просто какой-то адский ад блин, даже разбираться неохота.
Код
Sales PY :=VAR MonthsOffset = 12
RETURN IF (
    [ShowValueForDates],
    SUMX (
        SUMMARIZE ( 'Date', 'Date'[Year Month Number] ),
        VAR CurrentYearMonthNumber = 'Date'[Year Month Number]
        VAR PreviousYearMonthNumber = CurrentYearMonthNumber - MonthsOffset
        VAR DaysOnMonth =
            CALCULATE (
                COUNTROWS ( 'Date' ),
                ALLEXCEPT (
                    'Date',
                    'Date'[Year Month Number],  -- Year Month granularity
                    'Date'[Working Day],        -- Filter-safe Date column
                    'Date'[Day of week]         -- Filter-safe Date column
                )
            )
        VAR DaysSelected =
            CALCULATE (
                COUNTROWS ( 'Date' ),
                'Date'[DateWithSales] = TRUE
            )
        RETURN IF (
            DaysOnMonth = DaysSelected,
 
            -- Selection of all days in the month
            CALCULATE (
                [Sales Amount],
                ALLEXCEPT ( 'Date', 'Date'[Working Day], 'Date'[Day of Week] ),
                'Date'[Year Month Number] = PreviousYearMonthNumber
            ),
             
            -- Partial selection of days in a month
            CALCULATE (
                [Sales Amount],
                ALLEXCEPT ( 'Date', 'Date'[Working Day], 'Date'[Day of Week] ),
                'Date'[Year Month Number] = PreviousYearMonthNumber,
                CALCULATETABLE (
                    VALUES ( 'Date'[Day of Month Number] ),
                    ALLEXCEPT (                      -- Removes filters from all the
                        'Date',                      -- columns that do not have a day
                        'Date'[Day of Month Number], -- granularity, keeping only
                        'Date'[Date]                 -- Date and Day of Month Number
                    ),
                    'Date'[Year Month Number] = CurrentYearMonthNumber,
                    'Date'[DateWithSales] = TRUE
                )
            )
        )
    )
)



Что сделал я:
1) принудительно ограничил календарь последней доступной датой. В power bi это можно сделать с помощью CALENDAR, где второй аргумент этой функции будет просто NOW()

2) Вместо DATEADD(data[date];-1;year) сделал
Код
=VAR Res1 =CALCULATE (   
[m.sales]   
; DATEADD(DimDates2[Date];-365;day)   
)
RETURN Res1


Но чет не уверен, будет ли это круто работать для високосных годов
В тему по-прежнему призываются гиганты мысли по DAX ))))
Изменено: PowerBI_WannaBe - 20.09.2023 14:32:41
DAX Power Pivot BI данные за прошлый год НО не более чем на текущую дату
 
Всем привет!

Столкнулся с таким вопросом.

Есть данные о продажах с 01.01.2022 по 19.09.2023

Вопрос: как написать меру, которая будет выводить данные за прошлый год, но не более чем на 19.09.2022

Если написать просто так, то она будет выводит данные по 31.12.2022 =(

Код
//VAR CurrDate = MAX(DimDates[Date])
//VAR MaxDate = CALCULATE(MAX(data[date]);DATEADD(data[date];-1;year))
VAR Res1 =
CALCULATE (   
[m.sales]   
; DATEADD(DimDates[Date];-1;YEAR)   
)
RETURN Res1

Изменено: PowerBI_WannaBe - 20.09.2023 14:14:10
DAX накопленные продажи
 
Vladimir Ch, спасибо огромное! Теперь, кажется, понял))

DAX накопленные продажи
 
Дмитрий(The_Prist) Щербаков, Спасибо! Вот тоже пока думаю)
Мера работает, а вычисляемая колонка нет(
Изменено: PowerBI_WannaBe - 26.07.2023 12:43:09
DAX накопленные продажи
 
Дмитрий(The_Prist) Щербаков, цель получить на выходе такие данные:

То есть, сначала посчитать накопленные продажи по магазинам внутри месяца (MyCumulative), потом посчитать эти данные в проценте от общих продаж в данном месяце, чтобы понимать, что, например, магазин2 + магазин3 формируют 71,5% выручки. И на основании этого затем каждому магазину в каждом месяце присвоить категорию, например, если он выходит в топ 10%, в топ 20% и т.д. до самых плохих в топ 100%

Но для этого сначала надо хотя бы посчитать в вычисляемой колонке накопленные продажи
DAX накопленные продажи
 
Всем привет!
Столкнулся с такой проблемой: посчитать накопленные продажи в вычисляемой колонке.

Исходная таблица выглядит так (магазин, дата, выручка, ранг магазина по выручке внутри даты):


Есть мера, которая корректно считает накопленные продажи
Код
Measure Cumulative = 
VAR CurrRank = max(Table1[MyRank])
VAR Res = CALCULATE(SUM(Table1[RevByMonth]),Table1[MyRank] <= CurrRank, all(Table1[Store]))
RETURN Res



Вопрос: как добиться того же самого, но в вычисляемой колонке, а не в мере?
Код
MyCumulative = 
VAR CurrRank = max(Table1[MyRank])
VAR Res = CALCULATE(SUM(Table1[RevByMonth]),Table1[MyRank] <= CurrRank
    ,all(Table1[Store])
    --,allexcept(Table1,Table1[Date])
    --,allexcept(Table1,Table1[Date],Table1[MyRank],Table1[RevByMonth])
    )
RETURN Res

Power BI DAX RANKX
 
Vladimir Ch, Alex, спасибо большое, работает!
Изменено: PowerBI_WannaBe - 25.07.2023 09:54:57
Power BI DAX RANKX
 
Behruz A.N., Спасибо!

Оказывается, так работает, даже если не использовать какую-либо агр. функцию
Код
VAR rank4 = RANKX(Table1,Table1[RevByMonth])


Однако все равно пока не придумал, как сделать вычисление внутри месяца, а не в целом
Код
VAR rank5 = CALCULATE(RANKX(Table1,Table1[RevByMonth]),KEEPFILTERS(Table1[Date]))
Power BI DAX RANKX
 
Так тоже не помогло(
Код
VAR rank2 = CALCULATE(RANKX(Table1,SUM(table1[RevByMonth])),KEEPFILTERS(Table1[Date]),ALLEXCEPT(Table1,Table1[Store]))


Код
VAR rank3 = RANKX(CALCULATETABLE(ALL(Table1)),SUM(Table1[RevByMonth]))

Изменено: PowerBI_WannaBe - 24.07.2023 18:54:37
Power BI DAX RANKX
 
Всем привет!

Столкнулся с проблемой rankx

Есть исходные данные в таком формате:


Из этих данных делается новая вычисляемая таблица, которая суммирует выручку по магазинам и месяцам:


Вопрос: как присвоить ранг магазину по выручке внутри месяца?
Пока к этой новой таблице добавил колонку, но результат везде 1. Возможно, по умолчанию в каждой строке используется контекст этой конкретной строки. Надо как-то переключить этот контекст на контекст месяца(

Код
Rank1 = RANKX(Table1,(SUM(Table1[RevByMonth])))

Пробовал избавить вообще от контекста, но результат тот же((
Код
Rank1 = calculate(RANKX(all(Table1),(SUM(Table1[RevByMonth]))),all(Table1))

DAX игнорирование текущей даты календаря, Показать данные за весь месяц при том, что в календаре еще не созданы все даты месяца
 
Dilshod Ibragimov, а почему действительно просто не сделать нормальный календарь?
Power Query группировка по условию
 
Xel, Alien Sphinx, товарищи, большое спасибо!
Power Query группировка по условию
 
Upd: такой вариант не сработал((
Код
= Table.Group(Источник, {"магазин", "дата"}, {
        {"выручка", each List.Sum([сумма]), type number},
        {"выручка_опт", each List.Sum(Table.SelectRows(Источник, each ([тип выручки] = "оптовая"))[сумма]), type number}
    })

Power Query группировка по условию
 
Всем привет!

Подскажите, как в Power Query группировать сумму столбца по условию?
То есть, примерно так нужно:


= Table.Group(Источник, {"магазин", "дата"}, {
 {"выручка", each List.Sum([сумма]), type number},
 {"выручка_опт", each List.Sum([сумма]) WHERE [тип выручки] = "оптовая", type number}
})

На DAX и SQL понимаю как, на PQ пока не разобрался((

В теории, на PQ это можно сделать джойном с промежуточными таблицами, но это не вариант, так как много джойнов это вроде плохо, и показателей может быть не 2, как в примере, а больше
Хотелось бы например как в dax, типа
Код
table1 =
addcolumns ( 
   summarize ( table, date, store),
   "rev_all", calculate ( sum ( table[sum] ) ),
   "rev_opt", calculate ( sum ( table[sum] ), table[type] = "opt"),
)
Изменено: PowerBI_WannaBe - 26.06.2023 14:26:26
DAX IN как передать значения из другой таблицы
 
Всем привет!

В DAX есть возможность сделать так:
Код
RedOrBlack Sales IN :=CALCULATE (
    [Sales Amount],
    Products[Color] IN { "Red", "Black" }
)

Вопрос, а как в DAX IN передать не рукописный список, а динамический список по типу:
Код
RedOrBlack Sales IN :=CALCULATE (
    [Sales Amount],
    Products[Color] IN VALUES(SomeTable[SomeColumn])
)
Макрос для авто вставки определенного текста перед таблицей, Макрос для авто вставки определенного текста перед таблицей
 
Попробуй так
Код
Sub test()
    
    For i = 1 To 2
        Rows("1:1").Insert Shift:=xlDown
    Next
    
    Range("A1") = "a" & vbNewLine & "b " & vbNewLine & "c" & vbNewLine & "d" & vbNewLine & "e"
    
End Sub
Вместо a b c d e вставь нужный текст
Изменено: PowerBI_WannaBe - 15.05.2023 18:24:28
Power bi - сложности с мерами
 
surkenny, ого, не знал) Спасибо
Power bi - сложности с мерами
 
surkenny, еее спасибо! По сути как будто попытался применить оконную функцию в SQL, типа PARTITION BY фио, этап

Последнюю твою меру пока абсолютно не понял, пошел разбирать
Power bi - сложности с мерами
 
surkenny,  привет, принимай работу (мой вариант меры)
Код
Test1 = VAR MyTable1 = 
    FILTER(
        FILTER (
            ADDCOLUMNS (
                'Сделки', 
                "MinDate1", 
                CALCULATE ( MIN ( 'Сделки'[Дата] ) ,ALLEXCEPT('Сделки','Сделки'[ФИО клиента],'Сделки'[Этап сделки])))
            ,[Этап сделки] = "4. Оплата получена")
        ,[Дата] = [MinDate1]
    )

RETURN COUNTROWS(MyTable1)
Power bi - сложности с мерами
 
Сейчас подумаю
Power bi - сложности с мерами
 
Вообще, твоя мера
Код
Первая покупка = CALCULATE(DISTINCTCOUNT('Сделки'[ФИО клиента]),'Сделки'[Этап сделки] = "4. Оплата получена")
выводит данные корректно


На примере одного клиента: он был уникален в августе 2022 года, он был уникален в апреле 2023 года. А итоги смотрят на весь доступный период (то есть и на 2022, и на 2023), и  DISTINCTCOUNT корректно считает единичку в итогах за выбранный период.

А какое значение ты ожидаешь/хочешь получить?
Изменено: PowerBI_WannaBe - 10.04.2023 13:26:55
DAX сумма "старых сделок", которые по дате меньше, чем выбранная дата на срезе
 
Код
=VAR a = CALCULATE ( COUNTROWS(deals);
      FILTER(deals;
         deals[DATE_CLOSE] >= MAX (DimDateSlicer[DateSlicer])
         && 
         deals[DATE_CREATE] <= MIN(DimDateSlicer[DateSlicer])
         )   )

RETURN  a
Изменено: PowerBI_WannaBe - 10.04.2023 13:09:42
DAX сумма "старых сделок", которые по дате меньше, чем выбранная дата на срезе
 
Вроде сработало

Добавил отдельную табличку дат, никак не связанную с другими. По ней и фильтровал
DAX сумма "старых сделок", которые по дате меньше, чем выбранная дата на срезе
 
Кстати, а для такой задачи разве не нужно два (а не одно) измерения времени? То есть в первый slicer поместим DATE_CREATE из одной таблички-измерения, а во второй slicer поместим DATE_CLOSE из второй таблички-измерения. И тогда мера будет просто как COUNTROWS(deals), и она будет выдавать корректное количество заказов при изменении значений обоих слайсеров.
Вроде верно, не? Но тут нужна помощь surkenny,  
Изменено: PowerBI_WannaBe - 10.04.2023 12:10:48
Страницы: 1 2 3 4 5 След.
Наверх