The ultimate Microsoft Fabric, Power BI, Azure AI & SQL learning event! Join us in Las Vegas from March 26-28, 2024. Use code MSCUST for a $100 discount. Register Now
Tengo una tabla en el modelo sSAS tabular con fecha de entrega de vehículos.
Viejo | DeliveryYear |
V1 | 2016 |
V2 | 2017 |
V3 | 2017 |
V4 | 2018 |
V5 | 2018 |
V6 | 2018 |
V7 | 2018 |
V8 | 2019 |
V9 | 2019 |
V10 | 2019 |
Hay una tabla de dimensiones Dim_Age -
Edad |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
Necesito escribir un DAX para mostrar el recuento de entrega para cada año.
En el informe de PowerBI que se conecta al modelo tabular, el usuario puede seleccionar el filtro Edad (múltiple) del filtro que se encuentra en Dim_Age. Por lo tanto, si el usuario selecciona Edad 1 debe mostrar el recuento de entregas de 2019 para el año 2020.
año | Ageselcted | Contar |
2020 | 1 | 3 |
2020 | 1 y 2 | 7 |
2020 | 4 | 1 |
Ahora el desafío es que estoy trabajando en SSAS 2016 versión de compilación 13.0.5426.0. Esta versión no es compatible con la función "IN". He intentado a continuación y esto no funciona.
var selecteyear = IF(HASONEVALUE(Dim_Cal[year]);VALUES(Dim_cal[year]))
CALCULATE(COUNT(Delivery_Data[Vechile]); (selectedyear - Delivery_Data[DeliveryYear]) in VALUES(Dim_Age[Age]);
Por favor, ayude a conocer la solución alternativa.
Hola @MMjoshi ,
Puede crear una medida como DAX a continuación.
Count =
VAR selecteyear =
SELECTEDVALUE ( Dim_cal[year] )
RETURN
COUNTROWS (
FILTER (
SUMMARIZE (
Dalivery_data,
Dalivery_data[Vechile],
Dalivery_data[DeliveryYear],
"Age", selecteyear - Dalivery_data[DeliveryYear]
),
CONTAINS ( Dim_Age, Dim_Age[Age], [Age] )
)
)
Saludos
Amy
Equipo de Apoyo Comunitario _ Amy
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Gracias @v-xicai .
Cualquier idea por favor, cómo mejorar el rendimiento de esto. La tabla tiene 5 millones de filas y la medida está funcionando lentamente.
saludos
Mmj
Hola @MMjoshi ,
Puede intentar hacer lo siguiente:
Measure =
VAR selecteyear = IF(HASONEVALUE(Dim_Cal[year]);VALUES(Dim_cal[year]))
VAR temp_table =
FILTER (
ADDCOLUMNS (
SUMMARIZE ( Dalivery_data; Dalivery_data[Vechile]; Dalivery_data[DeliveryYear] );
"@Age"; 2020 - Dalivery_data[DeliveryYear]
);
CONTAINSROW ( Dim_Age; [@Age] )
)
RETURN
COUNTROWS ( temp_table )
Regards
Miguel Félix
Proud to be a Super User!
Check out my blog: Power BI em PortuguêsGracias @MFelix
La versión de SSAS que estoy usando tampoco admite la función CONTAINSROW. Pero veo que la diversión de CONTAINS está disponible. ¿Puedo hacer algo con esta función? ¡Gracias!
Hola @MMjoshi ,
Pruebe el siguiente código:
Measure =
VAR selecteyear = IF(HASONEVALUE(Dim_Cal[year]);VALUES(Dim_cal[year]))
VAR temp_table =
FILTER (
ADDCOLUMNS (
SUMMARIZE ( Dalivery_data; Dalivery_data[Vechile]; Dalivery_data[DeliveryYear] );
"@Age"; 2020 - Dalivery_data[DeliveryYear]
);
CONTAINS( Dim_Age;Dim_Age[Age]; [@Age] )
)
RETURN
COUNTROWS ( temp_table )
Regards
Miguel Félix
Proud to be a Super User!
Check out my blog: Power BI em PortuguêsGracias @MFelix
Funciona. Pero el rendimiento es lento. Tengo 5 millones de filas en la tabla para resumir y 5 dimensiones más como filtro otro que la edad.
saludos
Mmj