Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
Hola
Estoy tratando de calcular el promedio ponderado de días hábiles porque tenemos subregiones bajo regiones y tengo dos preguntas:
(1) ¿Cómo puedo calcular el total de días hábiles para cada subregión?
Mis datos se verían así:
Subregión | Fechas | día laborable | día festivo |
un | 1/1/2021 | 5 | 0 |
un | 1/2/2021 | 6 | 0 |
un | 1/3/2021 | 7 | 0 |
un | 1/4/2021 | 1 | 1 |
un | 1/5/2021 | 2 | 0 |
un | 1/6/2021 | 3 | 0 |
un | 1/7/2021 | 4 | 0 |
b | 1/8/2021 | 5 | 0 |
b | 1/9/2021 | 6 | 0 |
Me imagino que eventualmente seré abe para usar la segmentación de datos o el parámetro de Power BI para definir la fecha de finalización, por lo que no hay una columna de fecha de finalización aquí. Y no sé cómo hacerlo. (Creación de una medida sobre una medida???)
El resultado debe ser (excluyendo tanto el feriado como el fin de semana):
total de días | |
a | 4 |
b | 0 |
(2) ¿Cómo puedo agregarlo y hacer un promedio ponderado basado en la región?
Después de obtener los días hábiles ...
Combinando el anterior, los datos se verían así:
Región | Subregión | Total de días | Importe total | Factor ponderado |
AA | un | 10 | 100 | 1000 |
AA | b | 11 | 500 | 5500 |
CC | c | 11 | 450 | 4950 |
DD | d | 10 | 950 | 9500 |
CC | e | 9 | 610 | 5490 |
BB | f | 8 | 310 | 2480 |
Eventualmente, estoy tratando de obtener el total ponderado de días de cada región:
Cantidad total de wieghtes | factor ponderado medio | días totales ponderados | |
AA | 600 | 6500 | 10.83333333 |
BB | 310 | 2480 | 8 |
CC | 1060 | 10440 | 9.849056604 |
DD | 950 | 9500 | 10 |
¿Alguien tiene alguna idea de cómo puedo hacer esto a través de DAX?
Solved! Go to Solution.
Allí, @emtsai
Creé una muestra y algunas medidas obtuvieron los siguientes resultados.
Medidas:
__TotalDays = CALCULATE(COUNT(Question2[Subregion]),'Question2'[Weekday] in {1,2,3,4,5}&&'Question2'[Holiday]<>1)
__TotalAmount = SUM('Question2'[Amount])
__Weighted Factor = [__TotalAmount]*[__TotalDays]
__Weighted Factor_2 =
var _t=SUMMARIZE('Question2',Question2[Region],Question2[Subregion],"Weighted Factor",[__Weighted Factor])
var _if=IF(ISINSCOPE(Question2[Region]),IF(ISINSCOPE(Question2[Subregion]),[__Weighted Factor],SUMX(_t,[Weighted Factor])),SUMX(_t,[Weighted Factor]))
return _if
__weighted total days = DIVIDE([__Weighted Factor_2],[__TotalAmount])
Consulte el archivo adjunto a continuación para obtener más detalles. Espero que esto ayude.
Saludos
Equipo de apoyo a la comunidad _ Zeon Zheng
Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Allí, @emtsai
Creé una muestra y algunas medidas obtuvieron los siguientes resultados.
Medidas:
__TotalDays = CALCULATE(COUNT(Question2[Subregion]),'Question2'[Weekday] in {1,2,3,4,5}&&'Question2'[Holiday]<>1)
__TotalAmount = SUM('Question2'[Amount])
__Weighted Factor = [__TotalAmount]*[__TotalDays]
__Weighted Factor_2 =
var _t=SUMMARIZE('Question2',Question2[Region],Question2[Subregion],"Weighted Factor",[__Weighted Factor])
var _if=IF(ISINSCOPE(Question2[Region]),IF(ISINSCOPE(Question2[Subregion]),[__Weighted Factor],SUMX(_t,[Weighted Factor])),SUMX(_t,[Weighted Factor]))
return _if
__weighted total days = DIVIDE([__Weighted Factor_2],[__TotalAmount])
Consulte el archivo adjunto a continuación para obtener más detalles. Espero que esto ayude.
Saludos
Equipo de apoyo a la comunidad _ Zeon Zheng
Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
@emtsai prueba esto:
DIVIDE ( [Weighted Factors], CALCULATE ( [Weighted Factors], REMOVEFILTERS ( YourTable[Sub Region Column] ) ) )
✨ Síguenos en LinkedIn (en ingle
Más información sobre el formato condicional en Microsoft Reactor
Mi última entrada de blog El poder de usar grupos de cálculo con relaciones inactivas (Parte 1) (perytus.com) Yo lo haría ❤ Elogios si mi solución ayudó. 👉 Si puede dedicar tiempo a publicar la pregunta, también puede hacer esfuerzos para felicitar a quien ayudó a resolver su problema. ¡Es una muestra de agradecimiento!
⚡ Visítenos en https://perytus.com, su ventanilla única para proyectos/formación/consultoría relacionados con Power BI.⚡
Si tiene las columnas [Total de días] y [Importe total], el promedio ponderado es
AvgDays =
DIVIDE (
SUMX ( Table1, Table1[Total Days] * Table1[Total Amount] ),
SUMX ( Table1, Table1[Total Amount] )
)
Hola Alexis,
La pregunta es que comencé a calcular el total de días y la cantidad en función de los subrogos, y eventualmente tendría que dividir en función de las regiones.
El conjunto de datos original tiene este aspecto:
Fecha | Región | Subregión | Importe total | Día festivo | Día laborable |
2021/11/1 | AA | a | 50 | 0 | 1 |
2021/11/2 | AA | a | 5 | 0 | 2 |
2021/11/3 | AA | a | 90 | 0 | 5 |
2021/11/4 | AA | a | 60 | 0 | 4 |
2021/11/1 | AA | b | 40 | 0 | 1 |
2021/11/2 | AA | b | 60 | 0 | 2 |
.... |
Así que hice una medida basada en la subregión:
Cálculo de los días laborables, la cantidad y el factor ponderado escribiendo:
Año | Suma del monto total | Días laborables | Facotrs ponderados |
2021 | |||
Nov | |||
AA | 305 | 21 | 4300 |
a | 205 | 10 | 1000 |
b | 100 | 11 | 3300 |
.... | |||
BB | 1150 | 40 | 15800 |
c | 500 | 16 | 8000 |
d | 400 | 12 | 4800 |
e | 250 | 12 | 3000 |
Nota al margen: Probablemente valga la pena agregar una columna calculada [IsWorkingDay]
IsWorkingDay = ( Data[Holiday] = 0 ) && ( Data[Weekday] < 6 )
a su tabla para que pueda escribir [WorkingDays] de manera más simple
WorkingDays = CALCULATE ( COUNTROWS ( Data ), Data[IsWorkingDay] )
Hacer cualquier otra lógica con los días de trabajo también se vuelve más simple.