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

Страницы: 1 2 След.
Power pivot , создал таблицу по условию но выдает ошибку, требует скалярное значения
 
Отбой, реализовал через справочники комбинаций и мерой со сменой связи
Power pivot , создал таблицу по условию но выдает ошибку, требует скалярное значения
 
Добрый день, в DAX studio сделал такой код и он выдает то что мне нужно , но в bi или power pivot будет ругаться что не скалярное значение , в то же время в power pivot сделал аналог который выводит все что нужно, но он не разделяет год, а все ставит в одном

1.DAX Studio (SUMMARIZE)
2. Power pivot (SELECTOLUMNS)
Код
EVALUATE
VAR SelectedYear = 2023 // Получаем выбранный год из среза

VAR _Plan = SUMMARIZE(

    FILTER(
        'Массив',
        'Массив'[ТипДанных] = "План" && YEAR('Массив'[Период]) = SelectedYear 
    ),
    'Массив'[Период],  // Группировка по столбцу 'Период'
    "ТипДанных", "План",  // Добавляем новый столбец для идентификации типа данных
    "Сумма", SUM('Массив'[Сумма])  // Сумма по столбцу 'Сумма'
)

VAR _Fakt = SUMMARIZE(
    FILTER(
        'Массив',
        'Массив'[ТипДанных] = "Факт" && YEAR('Массив'[Период]) = SelectedYear - 1
    ),
    'Массив'[Период],  // Группировка по столбцу 'Период'
    "ТипДанных","Факт",  // Добавляем новый столбец для идентификации типа данных
    "Сумма", SUM('Массив'[Сумма])  // Сумма по столбцу 'Сумма'
)

VAR _combined = 
    UNION(
        _Plan,
        _Fakt
    )

RETURN
_combined

01.01.2023 0:00:00План1060
01.02.2024 0:00:00Факт100

Power pivot


Код
Тест111:=VAR SelectedYear = MAX('СпрДАТА'[Год])  // Получаем выбранный год из среза

VAR _Plan = 
    SELECTCOLUMNS(
        FILTER(
            'Массив'; 
            'Массив'[ТипДанных] = "План" && YEAR('Массив'[Период]) = SelectedYear - 1
        );
        "Сумма"; SUM('Массив'[Сумма])
    )
    
VAR _Fakt = 
    SELECTCOLUMNS(
        FILTER(
            'Массив'; 
            'Массив'[ТипДанных] = "Факт" && YEAR('Массив'[Период]) = SelectedYear 
        );
        "Сумма"; SUM('Массив'[Сумма])
    )
    
VAR _combined = 
    UNION(
        _Plan;
        _Fakt
    )

RETURN
_combined 
Изменено: Van Van - 15.11.2024 12:30:04
Power pivot, как выводить несколько лет отдельно выбрав всего один год
 
Добрый день, прошу помощи, не могу сообразить .... необходимо чтобы при выборе условно 2024 года на слайсере подлетал 2023 План и 2024 Факт, но не вместе в одном году а раздельно как нужно
Массив
СтатьяПериодТипДанныхСумма
Оборот плюс01.01.2023План1000
Оборот минус01.01.2023План60
Оборот плюс01.02.2024Факт100
Оборот минус01.02.2022Факт50
Оборот плюс01.03.2022Факт100
Оборот   минус01.03.2022Факт50
Вот сводная по 2024 по слайсеру
Тест111Названия   столбцов
2024Общий итог
1 квартал
Названия   строкПланФакт
Оборот плюс10001001100
Оборот минус6060
Общий итог10601001160
в этой мере считает все в один год

Код
Тест111:=VAR SelectedYear = MAX('СпрДАТА'[Год])  // Получаем выбранный год из среза

VAR _Plan = 
    SELECTCOLUMNS(
        FILTER(
            'Массив'; 
            'Массив'[ТипДанных] = "План" && YEAR('Массив'[Период]) = SelectedYear - 1
        );
        "Сумма"; SUM('Массив'[Сумма])
    )
    
VAR _Fakt = 
    SELECTCOLUMNS(
        FILTER(
            'Массив'; 
            'Массив'[ТипДанных] = "Факт" && YEAR('Массив'[Период]) = SelectedYear
        );
        "Сумма"; SUM('Массив'[Сумма])
    )
    
VAR _combined = 
    UNION(
        _Plan;
        _Fakt
    )

RETURN
_combined
Изменено: Van Van - 14.11.2024 17:37:03
Power Pivot, по выбору одного года чтобы выводилось несколько по заданной логике
 
Добрый день, прошу помощи, не могу сообразить .... необходимо чтобы при выборе условно 2024 года на слайсере подлетал 2023 План и 2024 Факт, но не вместе в одном году а раздельно как нужно



Массив
СтатьяПериодТипДанныхСумма
Оборот плюс01.01.2023План1000
Оборот минус01.01.2023План60
Оборот плюс01.02.2024Факт100
Оборот минус01.02.2022Факт50
Оборот плюс01.03.2022Факт100
Оборот   минус01.03.2022Факт50

Вот сводная по 2024 по слайсеру
Тест111Названия   столбцов
2024Общий итог
1 квартал
Названия   строкПланФакт
Оборот плюс10001001100
Оборот минус6060
Общий итог10601001160


в этой мере считает все в один год
Код
Тест111:=VAR SelectedYear = MAX('СпрДАТА'[Год])  // Получаем выбранный год из среза

VAR _Plan = 
    SELECTCOLUMNS(
        FILTER(
            'Массив'; 
            'Массив'[ТипДанных] = "План" && YEAR('Массив'[Период]) = SelectedYear - 1
        );
        "Сумма"; SUM('Массив'[Сумма])
    )
    
VAR _Fakt = 
    SELECTCOLUMNS(
        FILTER(
            'Массив'; 
            'Массив'[ТипДанных] = "Факт" && YEAR('Массив'[Период]) = SelectedYear
        );
        "Сумма"; SUM('Массив'[Сумма])
    )
    
VAR _combined = 
    UNION(
        _Plan;
        _Fakt
    )

RETURN
_combined
Power pivot iF(HASONEVALUE(
 
Если сделать ALL к справочнику то, сработает, есть какие то еще варианты?
Power pivot iF(HASONEVALUE(
 
Добрый день, помогите разобраться пожалуйста..... Почему в первом случае не считает, а во втором считает? И как исправить так чтобы считало?1. Массив. 2  Справочник 3. Сводка
КомпанияСтатьяСумма
АА100
АБ100
АГ50
АГ40
ББ100
ББ100
БГ50
БГ30
ПоказателиДоходРасход
АДоход
БДоход
ВРасход
ГРасход
Чистая прибыль
Названия строкВсяСуммаС_ЧП
А100100
Б300300
В
Г170170
Чистая прибыль
Общий итог570

ВсяСумма2:=SUM('Масс2'[Сумма])

ЧП2:=CALCULATE([ВсяСумма2];'Пок2'[ДоходРасход] = "Доход") - CALCULATE([ВсяСумма2];'Пок2'[ДоходРасход] = "Расход")

С_ЧП2:=IF(HASONEVALUE('Пок2'[ДоходРасход]);
SWITCH(VALUES('Пок2'[ДоходРасход]);

"Чистая прибыль"; [ЧП2];[ВсяСумма2])

)

КомпанияСтатьяСумма
АДоход100
АДоход100
АРасход50
АРасход40
БДоход100
БДоход100
БРасход50
БРасход30
ДоходРасход
Доход
Расход
Чистая прибыль
Названия строкВсяСумма2С_ЧП2
Доход400400
Расход170170
Чистая прибыль230
Общий итог570
Изменено: Данила Дубровский - 03.11.2024 20:53:30
Power Pivot, некорректная работа слайсера
 
Добрый день, настроил меры и слайсер которые считают только те компании и контрагенты которые выбираются по слайсеру СпрКомпания, но есть один момент. Эти меры работают только тогда, когда в столбцах дубль справочника стоит а срез и меры прописаны по другому спраовчнику
Мера 1:=CALCULATE(

[ВсяСумма];

FILTER(

'СпрКонтрагент';

'СпрКонтрагент'[Контрагент] IN VALUES ('СпрКомпания'[Компания])))

То есть я в  столбцы  сводной засовываю точно такой же справочник компаний в котором так же установлена связь

Условно в столбцах у меня СпрКомпания1 со связью, а срез от СпрКомпании, но если сделать срез и столбцы от СпрКомпании то работать ничего не будет. Почему так происходит?

КомпанияКонтрагентСумма
АБ100
АВ100
А100
БА100
Б100
ВА100
Изменено: Данила Дубровский - 03.11.2024 09:53:19
Power Pivot DAX
 
Alex, добрый день, спасибо!)

если вставить срез по справочнику компаний он пишет ошибку.
Этого возможно избежать?

MdxScript(model1) (12,34) Ошибка вычисления в мере 'Т2'[Актив]: Ожидалось единственное значение, однако передана таблица или несколько значений


Актив:=var res = CALCULATE(

       SUM('Т2'[Сумма]);

       'Т2'[Раздел] = "Актив"  )

  var cond = ISBLANK( CALCULATE(

       SUM('Т2'[Сумма]);

       'Т2'[Раздел] = "Пассив";

       'спр_комп'[Компания]  IN VALUES('спр_контр'[Контрагент]);

       'спр_контр'[Контрагент] IN VALUES('спр_комп'[Компания])))

return IF(ISBLANK(res); IF(cond; BLANK();0);res)

Если я сделаю вот так, это будет корректно?

Изменено: Данила Дубровский - 28.09.2024 11:53:39
Power Pivot DAX
 

1.Есть таблица

Индекс Период               Компания          Контрагент       Раздел Сумма

1             01.01.2022          А             Б             Актив   100

2             01.01.2022          Б             А             Актив   100

3             01.01.2022          А             Б             Пассив 100

4             01.01.2022          Б             А             Пассив 100

5             02.01.2022          А             Б             Актив   100

6             02.01.2022          Б             А             Актив   100

7             02.01.2022          А             Б             Пассив 100

8             02.01.2022          Б             А             Пассив 100

2.нужна сводная чтобы меры считались так

Период               Компания          Контрагент       Актив   Пассив

01.01.2022          А             Б             100         100

01.01.2022          Б             А             100         100

Актив      =СУММЕСЛИМН(Т2[Сумма];Т2[Компания];"А";Т2[Контрагент];"Б";Т2[Раздел];"Актив";Т2[Период];"01.01.2022)

Пассив   =СУММЕСЛИМН(Т2[Сумма];Т2[Компания];"Б";Т2[Контрагент];"А";Т2[Раздел];"Пассив";Т2[Период];"01.01.2022)

3.Создал меры

Актив:=

  CALCULATE(

      SUM('Т2'[Сумма]);

      'Т2'[Раздел] = "Актив";

      'Т2'[Компания] = VALUES('Т2'[Компания]);

      'Т2'[Контрагент] = VALUES('Т2'[Контрагент])

  )

Пассив:=

  CALCULATE(

      SUM('Т2'[Сумма]);

      'Т2'[Раздел] = "Пассив";

      'Т2'[Компания] = VALUES('Т2'[Контрагент]);

      'Т2'[Контрагент] = VALUES('Т2'[Компания])

  )

Все как бы ок, получаю все как мне нужно

Период               Компания          Контрагент       Актив   Пассив

01.01.2022          А             Б             100         100

01.01.2022          Б             А             100         100

02.01.2022          А             Б             100         100

02.01.2022          Б             А             100         100

Но есть одно НО

Если условно удалить 6 ой индекс и 8

Индекс Период               Компания          Контрагент       Раздел Сумма

1             01.01.2022          А             Б             Актив   100

2             01.01.2022          Б             А             Актив   100

3             01.01.2022          А             Б             Пассив 100

4             01.01.2022          Б             А             Пассив 100

5             02.01.2022          А             Б             Актив   100

7             02.01.2022          А             Б             Пассив 100

Я получу

Период               Компания          Контрагент       Актив   Пассив

01.01.2022          А             Б             100         100

01.01.2022          Б             А             100         100

02.01.2022          А             Б             100        

А хотел получить

Период               Компания          Контрагент       Актив   Пассив

01.01.2022          А             Б             100         100

01.01.2022          Б             А             100         100

02.01.2022          А             Б             100         0

02.01.2022          Б             А             0             100

Как данный момент решить? Уже голова сломалась, если дорисовывать комбинации в сам массив, это будет тяжко

Изменено: Данила Дубровский - 27.09.2024 16:11:45
POWER QUERY ошибка импорта данных (отсутвие файлов)
 
Добрый день, как обойти в power query отсутсвие файлов? Есть несколько запросов, в одном из файл отсутствует, такая ситуация иногда возможно, есть способы обходить такие моменты?
DAX формула суммы
 
Добрый день, есть табличка, создал 2 меры которые считают Доход и Расход , cоздаю сводную в которой в строки засовываю элемент 1 и элемент 2.

В данный момент  Доход и Расход принадлежит элементу 1, как сделать меру, которая бы считала Доход по элементу 1, а Расход по элементу 2?


Элемент1Элемент2Элемент3Сумма
АБДоход100
АБРасход80
АДоход100
БАДоход100
БАРасход70
БДоход100
Элемент1Элемент2ДоходРасход
АБ10080
БА10070
Общий   итог200150


Элемент1Элемент2ДоходРасход
АБ10070
БА10080
Общий итог200150
Вот так должно быть  
КУБЫ (КУБЗНАЧЕНИЕ(КУБМНОЖ)), Как обойти ошибку возникающую при отсутствии указываемого элемента в запросе(формуле)?
 
Элемнт1Элемент2Сумма
ААА100
АВВ100
БСС100
БСС110
Добрый день, вопрос знатокам кубов, возможно ли как то обойти отсутствие элемента в таблице? Из за этого будет ошибка и ничего не посчитает.

ОК
КУБЗНАЧЕНИЕ("ThisWorkbookDataModel";
КУБМНОЖ("ThisWorkbookDataModel";{"[Таблица].[Элемент1].[А],[Таблица].[Элемент1].[Б]"}");
КУБМНОЖ("ThisWorkbookDataModel";{"[Таблица].[Элемент2].[АА],[Таблица].[Элемент2].[СС]"}");
[Сумма])

ОШИБКА
КУБЗНАЧЕНИЕ("ThisWorkbookDataModel";
КУБМНОЖ("ThisWorkbookDataModel";{"[Таблица].[Элемент1].[А],[Таблица].[Элемент1].[Б],[Таблица].[Элемент1].[В]""}");
КУБМНОЖ("ThisWorkbookDataModel";{"[Таблица].[Элемент2].[АА],[Таблица].[Элемент2].[СС]"}");
[Сумма])
Изменено: Данила Дубровский - 16.01.2024 13:54:03
Power BI, синхронизация шкал Y у двух визуальных элементов.
 
surkenny, а если метрик несколько на элементе? то тогда MAX(MAX(1,2),MAX(3,4))?
Power BI, синхронизация шкал Y у двух визуальных элементов.
 
.
Изменено: Данила Дубровский - 27.11.2023 15:09:37
Power BI, синхронизация шкал Y у двух визуальных элементов.
 
surkenny, все сейчас прикрутил на данный лад "МаксОбщ = MAX ( [МаксПлан], [МаксФакт] )"
Все работает, то что нужно, спасибо)

Vik_tor, тоже спасибо за потраченное время:D
Power BI, синхронизация шкал Y у двух визуальных элементов.
 
Vik_tor, логика верная, но на одном визуальном элементе факт к примеру, на другом план, совмещать их на одном графике не нужно.

И так получится, что потолок нужно будет выбирать по плану или по факту, если выбрать так, то у кого то когда то он пробьется. А если делать общий, типа план + факт, то сработает, но тогда область визуальная уменьшится. В идеале вопрос состоит в том, возможно ли как то условие ставить по большему? У кого в данный момент больше по тому и потолок.
Изменено: Данила Дубровский - 27.11.2023 12:45:10
Power BI, синхронизация шкал Y у двух визуальных элементов.
 
Добрый день, какие есть способы синхронизации шкал у двух визуальных элементов?

Допустим на одном визуальном элементе

выручка за 2023 год 250 млн

на втором
выручка за 2023 год 180 млн

по шкалам у них "потолки" разные,  если я вручную сделаю потолок, то я не угадаю, потому что компаний много, и у одной выручка миллиарды, у другой миллион к примеру.

В общем, как синхронизировать потолок?

В голову приходит сделать потолок по мере, но проблема в том что иногда потолок на первом элементе больше чем на втором, а иногда наоборот.
DAX, POWER PIVOT, CALCULATE перебивает фильтр
 
surkenny, спасибо)
DAX, POWER PIVOT, CALCULATE перебивает фильтр
 
surkenny, а как возможно вывести? Допустим в сводке, у меня ошибку выдает "Невозможно поместить данное поле в эту область отчета".
DAX, POWER PIVOT, CALCULATE перебивает фильтр
 
surkenny, кстати, фишка I1_T1 + 0 вместо IF(I1_T1<>0;I1_T1;0) гениальная :D  
обязательный ноль же вылезет так же?
DAX, POWER PIVOT, CALCULATE перебивает фильтр
 
surkenny, в power bi я не смогу меры в строки добавить, да и в экселе не смог, ругается ) может я как то не так делаю?
DAX, POWER PIVOT, CALCULATE перебивает фильтр
 
surkenny, согласен с вами, не всегда будут вычисляться обе меры, но есть момент один, как упростить это если бы элементов было много?

Предположим я создаю отчет из мер и добавляю еще один элемент в таблицу
КомпанияЭлементСуммаТипДанных
ААА100Осн
ААА100Осн
ААБ30Осн
БАА100Осн
БАА100Корр
БАА100Осн
БАБ50Осн
Отчет из мер
ИндексМера
1ЭлементАА
2ЭлементАБ
3Доля элемента АБ в АА
Как бы вы смогли упростить данную конструкцию? Таких мер может быть много, некоторые из них могут быть коэффициентами, процентами и тд,
Создал это потому что если просто клепать по мере к тексту, меры столбиками идут,а не строками
Код
СтолбикДляОтчетаИзМер:=

VAR AA =
IF (
    HASONEVALUE ( 'Таблица2'[Наименование] );
    SUMX (
        VALUES ( 'Таблица1'[Компания] );
        VAR I1_T1 =
            CALCULATE ( [ЭлементАА]; 'Таблица1'[ТипДанных] = "Осн" )
        VAR I1_T2 =
            CALCULATE ( [ЭлементАА]; 'Таблица1'[ТипДанных] = "Корр" )
        VAR result =
            SWITCH (
                VALUES ( 'Таблица2'[Наименование] );
                "Вариант1"; I1_T1 + 0;
                "Вариант2"; IF ( NOT ISBLANK ( I1_T2 ); I1_T2; I1_T1 + 0 )
            )
        RETURN
            result
    )
)

VAR AB =
IF (
    HASONEVALUE ( 'Таблица2'[Наименование] );
    SUMX (
        VALUES ( 'Таблица1'[Компания] );
        VAR I1_T1 =
            CALCULATE ( [ЭлементАБ]; 'Таблица1'[ТипДанных] = "Осн" )
        VAR I1_T2 =
            CALCULATE ( [ЭлементАБ]; 'Таблица1'[ТипДанных] = "Корр" )
        VAR result =
            SWITCH (
                VALUES ( 'Таблица2'[Наименование] );
                "Вариант1"; I1_T1 + 0;
                "Вариант2"; IF ( NOT ISBLANK ( I1_T2 ); I1_T2; I1_T1 + 0 )
            )
        RETURN
            result
    )
)
Return
SWITCH(
   IF(
      HASONEVALUE('ОтчетИзМер'[Индекс]);
      VALUES('ОтчетИзМер'[Индекс]));
   1; AA;
   2; AB)
Изменено: Данила Дубровский - 06.10.2023 10:03:25
DAX, POWER PIVOT, CALCULATE перебивает фильтр
 
Alex, Спасибо большое, к себе прикрутил!

P.S. Вы мне уже помогали, я помню!)
DAX, POWER PIVOT, CALCULATE перебивает фильтр
 
Добрый день. Есть две таблицы, одна из них для слайсера.
Код
Нужное:=

VAR I1_T1 = CALCULATE(SUM('Таблица1'[Сумма]); 'Таблица1'[Элемент] = "АА"; 'Таблица1'[ТипДанных] = "Осн")
VAR I1_T2 = CALCULATE(SUM('Таблица1'[Сумма]); 'Таблица1'[Элемент] = "АА"; 'Таблица1'[ТипДанных] = "Корр")


Return 
SWITCH(
   IF(
   HASONEVALUE('Таблица2'[Наименование]);
   VALUES('Таблица2'[Наименование])
   );
   "Вариант1"; IF(I1_T1<>0;I1_T1;0);
   "Вариант2"; IF(I1_T2<>0;I1_T2;IF(I1_T1<>0;I1_T1;0))
)

КомпанияЭлементСуммаТипДанных
ААА100Осн
ААА100Осн
БАА100Осн
БАА100Корр
БАА100Осн
Наименование
Вариант1
Вариант2
Суть такая, если в данной ситуации я выберу "Вариант2" и 2 компании, то получу 100(Б КОРР), а должно быть 300(А ОСН + Б КОРР).
Если я буду просматривать в разрезе отдельной компании, все работает, как только выбираю две компании, то калькулейт видимо перебивает фильтры....

Как быть?
Куда плыть хотя бы? )
Изменено: Данила Дубровский - 05.10.2023 15:35:31
Power BI, Срез и SELECTEDVALUE, Взаимодействие среза
 
Добрый день,

возможно ли настроить взаимодействие среза с титульного листа на все остальные листы в PBI ?

При этом чтобы срезы физически отсутствовали на других листах.

Либо чтобы в SELECTEDVALUE залетало с титульного среза.
DAX Как произвести итерацию
 
Больше неактуально
DAX SUMMARIZECOLUMNS, Агрегация только по условию, а не по всей таблице
 
Alex, Вы и есть тот классный спец, все получилось, спасибо огромное! 8)  
DAX SUMMARIZECOLUMNS, Агрегация только по условию, а не по всей таблице
 
Alex, я опечатку сделал.

В вашем файле при выборе одновременно нескольких кварталов (допустим двух)
если у компании Б в факте в 1-ом квартале был остаток по статье кредиторка, а во втором квартале его не было, но уже есть по какой либо статья по факту у этой компании остаток во втором квартале он сейчас подставляет остаток кредиторки первого квартала, а должен оставлять пустоту по кредиторке. То есть он должен брать последнюю дату По компании, типу данных и по любой статьей у этой компании с этим типом данных

(но в разрезе кварталов,
если выбираю 1-й квартал, то по первому,
если                  2-й, то второму, если во втором пусто, а в первом было не пусто, то должно быть пусто
если выбираю 1-й и 2-й то по последней дате загруженного факта компании)


То есть если по компании в массиве залит факт 5-ого месяца и в этом пятом месяце по кредиторке был 0, он не должен тащить кредиторку из первого квартала у которой было значение.
Изменено: Данила Дубровский - 07.09.2023 12:59:06
DAX SUMMARIZECOLUMNS, Агрегация только по условию, а не по всей таблице
 
Alex, неверно( посмотрите пожалуйста логику меру "Фактовая", она прям 100 процентов верна, но проблема заключается в том, что работает только по одной компании, либо если я в сводной таблице делаю разрез по компаниям, но если убрать разрез компаний, оно должно провести итерацию как то и сложить это, а там получается новая система координат что-ли.....

2 скриншота я в файл добавил

Должно чтобы  Дебиторка была 210 в данном случае

Я понимаю что это SUMX в разрезе компаний, но я не могу подставить туда логику переменной Last по отдельной компании.
Изменено: Данила Дубровский - 07.09.2023 12:03:30
DAX SUMMARIZECOLUMNS, Агрегация только по условию, а не по всей таблице
 
/
Изменено: Данила Дубровский - 07.09.2023 10:05:39
Страницы: 1 2 След.
Наверх