Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
Hola a todos
Tengo una mesa de compras y ventas de clientes. Calculo el cambio diario de propiedad restando estos dos.
Además, tengo una medida para comprobar si el cambio diario de propiedad estaba por debajo del umbral (25%).
Más específicamente, desde esta mesa
fecha | cliente | tipo | Artículos |
1/1/2021 | A | comprar | 100 |
1/1/2021 | A | comprar | 100 |
1/1/2021 | A | vender | 500 |
1/1/2021 | A | comprar | 300 |
8/1/2021 | B | comprar | 100 |
8/1/2021 | B | vender | 50 |
9/1/2021 | A | vender | 100 |
9/1/2021 | A | comprar | 80 |
A continuación, creo la tabla visual
fecha | cliente | Cambio diario de propiedad | Cambio diario de propiedad PCT | isUnchagned |
1/1/2021 | A | 0 (ABS(100 + 100 -500 + 300)) | 0% (dividir (cambio diario de propiedad, TotalItems) -> 0/1000 | 1 (si la propiedad diaria cambia PCT < 0,25, 1, 0) |
8/1/2021 | B | 50 | 33.3% (50/150) | 0 |
9/1/2021 | A | 20 | 11% (20/180) | 1 |
Lo que quiero ahora es crear un informe de período que muestre cuántos días el isUnchanged fue 1,
Digamos para 1/1/2021 - 10/1/2021
cliente | seunchanged Total |
A | 2 |
B | 0 |
Cuando creo este último objeto visual, obteré cero isUnchanged Total para todos los clientes.
¿Alguna idea??
Gracias de antemano,
Kyriakos
Solved! Go to Solution.
No @KyriakosT,
Estos son los pasos que puede seguir:
1. Cree la medida.
Daily Ownership Change =
var _1=CALCULATE(SUM('Table'[Items]),FILTER(ALL('Table'),'Table'[Date]=MAX('Table'[Date])&&'Table'[Customer]=MAX('Table'[Customer])&&'Table'[Type]="Buy"))
VAR _2=CALCULATE(SUM('Table'[Items]),FILTER(ALL('Table'),'Table'[Date]=MAX('Table'[Date])&&'Table'[Customer]=MAX('Table'[Customer])&&'Table'[Type]="Sell"))
return
ABS(_1-_2)
Daily Ownership Change PCT =
var _1=CALCULATE(SUM('Table'[Items]),FILTER(ALL('Table'),'Table'[Date]=MAX('Table'[Date])))
return
DIVIDE('Table'[Daily Ownership Change],_1)
isUnchagned =
IF('Table'[Daily Ownership Change PCT]<0.25,1,0)
resultado:
2. Coloque sólo el resultado de [Cliente]:
Esto se debe a que Measure solo realizará cálculos basados en los campos que coloque. Solo hay [Cliente] en esta tabla, y [Cliente] agrupará los cálculos en lugar de [Fecha].
3. Puede utilizar la medida para crear una tabla virtual idéntica.
isUnchanged Total =
var _1=
SUMMARIZE('Table','Table'[Date],'Table'[Customer]," Daily Ownership Change",[Daily Ownership Change],"2",[Daily Ownership Change PCT],"3",[isUnchagned])
var _2=COUNTAX(FILTER(_1,[3]=1),[Customer])
return
IF(_2=0,0,_2)
4. Resultado:
Saludos
Liu Yang
Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
No @KyriakosT,
Estos son los pasos que puede seguir:
1. Cree la medida.
Daily Ownership Change =
var _1=CALCULATE(SUM('Table'[Items]),FILTER(ALL('Table'),'Table'[Date]=MAX('Table'[Date])&&'Table'[Customer]=MAX('Table'[Customer])&&'Table'[Type]="Buy"))
VAR _2=CALCULATE(SUM('Table'[Items]),FILTER(ALL('Table'),'Table'[Date]=MAX('Table'[Date])&&'Table'[Customer]=MAX('Table'[Customer])&&'Table'[Type]="Sell"))
return
ABS(_1-_2)
Daily Ownership Change PCT =
var _1=CALCULATE(SUM('Table'[Items]),FILTER(ALL('Table'),'Table'[Date]=MAX('Table'[Date])))
return
DIVIDE('Table'[Daily Ownership Change],_1)
isUnchagned =
IF('Table'[Daily Ownership Change PCT]<0.25,1,0)
resultado:
2. Coloque sólo el resultado de [Cliente]:
Esto se debe a que Measure solo realizará cálculos basados en los campos que coloque. Solo hay [Cliente] en esta tabla, y [Cliente] agrupará los cálculos en lugar de [Fecha].
3. Puede utilizar la medida para crear una tabla virtual idéntica.
isUnchanged Total =
var _1=
SUMMARIZE('Table','Table'[Date],'Table'[Customer]," Daily Ownership Change",[Daily Ownership Change],"2",[Daily Ownership Change PCT],"3",[isUnchagned])
var _2=COUNTAX(FILTER(_1,[3]=1),[Customer])
return
IF(_2=0,0,_2)
4. Resultado:
Saludos
Liu Yang
Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
[Total isunchanged] = SUMA ( 'tabla'[IsUnchanged] )
Lo que estoy diciendo anteriormente es que usted podría (tal vez incluso debería) crear la segunda tabla (se llama visual) en Power Query en su totalidad, lo que significa para todos los clientes y todas las fechas. Si lo haces, entonces será más fácil y MUCHO más rápido calcular otras cosas. Básicamente, la regla es la siguiente: Debe calcular previamente todo lo que pueda en Power Query. Las columnas calculadas deben calcularse en Power Query a menos que no haya absolutamente otra forma que hacerlo con DAX.
Hay muchas razones detrás de lo anterior, pero para explicar todo esto se necesitaría un artículo completo o un capítulo en un libro.
El primer cálculo debe realizarse en Power Query (agregando las 3 columnas). A continuación, en Power BI Desktop puede crear fácilmente la medida resumiendo los valores de la última columna.
@daxer gracias por su respuesta.
No obtení la primera parte donde mencionas Power Query.
Tengo las siguientes medidas:
Compras = CALCULATE(SUM(Items), 'Table'[Type] = "Buy"