Forum Discussion
Total para SumX - sin contexto
Cartel de primera vez pidiendo ayuda, así que si tengo algún problema con mi post, por favor hágamelo saber.
Estoy tratando de escribir un informe para mostrar la cantidad de prima para nuestros contratos que todavía está en vigor, en comparación con el comienzo del año.
Los datos se conservan de la siguiente manera:
tbl540
| StatDt (fin de mes) | GrAky (Número de contrato) | Premium |
| 31/12/2018 | 1070 | 47,699 |
| 31/01/2019 | 1070 | 47,699 |
| 28/02/2019 | 1070 | 47,699 |
| 31/03/2019 | 1070 | 47,699 |
| 30/04/2019 | 1070 | 47,699 |
| 31/05/2019 | 1070 | 47,699 |
| 30/06/2019 | 1070 | 49,053 |
| 31/07/2019 | 1070 | 49,053 |
| 31/08/2019 | 1070 | 41,178 |
| 30/09/2019 | 1070 | 42,442 |
| 31/10/2019 | 1070 | 44,501 |
| 30/11/2019 | 1070 | 44,501 |
| 31/12/2019 | 1070 | 44,501 |
El año de análisis se establece mediante una tabla simple que contiene años, con una segmentación sobre ella. A continuación, se generan las medidas [StartDate] y [EndDate]. En este caso son 31/12/2018 y 31/12/2019.
El InforcePremium en cualquier momento se calcuenta utilizando la medida:
InforcePremium-sumx(tbl540,tbl540[Premium]*relacionado(tblWrUm[USD Ex Rate]))
Necesito limitar la prima al valor al comienzo del año, así que si la prima va por encima de eso, se aplica el valor inicial. Yo uso la medida:
InforcePremiumNoNew-sumx(values(tbl540[GrAky]),if([InforcePremium]>[Inforce Premium At Period Start (todos los períodos)],[Inforce Premium At Period Start (todos los períodos)],[InforcePremium]))
donde [Inforce Premium At Period Start (todos los períodos)]-calculate([InforcePremium],filter(tbl540,tbl540[StatDt]-[StartDate],all(tbl540[StatDt]))
Esto da lo siguiente cuando se coloca en una tabla:
| StatDt | InforcePremium | InforcePremiumNoNew |
| 31/12/2018 | 47,699 | |
| 31/01/2019 | 47,699 | 47,699 |
| 28/02/2019 | 47,699 | 47,699 |
| 31/03/2019 | 47,699 | 47,699 |
| 30/04/2019 | 47,699 | 47,699 |
| 31/05/2019 | 47,699 | 47,699 |
| 30/06/2019 | 49,053 | 47,699 |
| 31/07/2019 | 49,053 | 47,699 |
| 31/08/2019 | 41,178 | 41,178 |
| 30/09/2019 | 42,442 | 42,442 |
| 31/10/2019 | 44,501 | 44,501 |
| 30/11/2019 | 44,501 | 44,501 |
| 31/12/2019 | 44,501 | 44,501 |
| Total | 601,420 | 47,699 |
Así que los valores de la tabla principal se calculan correctamente. La fila total me da algunos problemas.
El total de [InforcePremium] nunca se utiliza realmente, ya que es un valor de punto en el tiempo, por lo que se puede omitir.
El total de [InforcePremiumNoNew] debe mostrar el valor final en el período. Pero obviamente el contexto de StatDt no está ahí. Puedo usar HasOneValue para separar los valores de nivel StatDt y los totales, pero no estoy seguro de cuál debe ser la fórmula para el contexto no StatDt. Si aplico un filter(tbl540,tbl540[StatDt]-[EndDate]) entonces el resultado es 0.
¿Alguna idea de lo que debería ser?
Muchas gracias. Si alguien necesita más información, encantado de tratar de ayudar.
Chris
2 Replies
- sanalytics
Super User
Proporcione algunos datos ficticios con su modelo power bi y su salida exacta.. Nos ayudará a resolver su problema rápidamente. Un consejo, por favor haga que su contenido sea breve..
saludos
Sanalytics
- ChrisWeldonNew Member
Hola Sanlytics, y gracias por su respuesta.
Desafortunadamente, nuestra política de TI corporativa no nos permitirá acceder a ninguna de las instalaciones de almacenamiento en línea, ni enviar por correo electrónico cosas como esta a dispositivos personales, de ahí la pegada de los datos relevantes en las tablas.
La solución que estoy buscando es cómo obtener la mesaure InforcePremiumNoNew para mostrar el último valor viable en la fila total.
Espero que alguien pueda ayudar.
Muchas gracias
Chris