Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Anonymous
Not applicable

Proration-factor - calcular días dentro del período en comparación con la duración total

Así que un poco de fondo;

Estoy trabajando con datos para buques y sus viajes. Cada viaje tendrá una fecha de inicio y una fecha de finalización, y quiero calcular el número de días dentro del período elegido como proporción de los días totales del viaje.


Esto es para la prorrateo dentro de un período elegido, normalmente los resultados financieros dentro de un trimestre, especificados con una segmentación.

Para hacerlo más flexible, estoy considerando usar un factor que podría aplicarse a cualquier dato para representar los valores prorrateados dentro del período.

Un ejemplo:
El viaje comienza el 15 de marzo y termina el 20 de junio.


El período cubre el mes 4-6 (2o trimestre):

Días antes del período elegido 16
Días dentro del período elegido 91
Días después del período elegido 20
Total de días 127

Entonces me gustaría devolver el factor 91/127 a 0,7165

He probado varias funciones IF, pero no puedo conseguir que funcione correctamente.

A continuación se muestran algunos datos de ejemplo. El resultado final debe ser el factor.
Period example.JPG

Cualquier consejo sobre cómo resolver esto es muy apreciado.

1 ACCEPTED SOLUTION
mahoneypat
Employee
Employee

Si aún no tiene una, debe crear una tabla Date que tenga una columna Quarter. Para este análisis, no necesita una relación entre las tablas, pero probablemente lo hará para otros análisis. A continuación se muestra una expresión de medida DAX que podría adaptar a sus necesidades. Se supone que está en un objeto visual de matriz con Voyage en filas y Quarter en columnas.

Pct Within Period =
VAR mindate =
    MIN ( Date[Date] )
VAR maxdate =
    MAX ( Date[Date] )
VAR totalvoyage =
    SUMX ( Voyage, Voyage[End] - Voyage[Start] )
VAR voyagestart =
    MIN ( Voyage[Start] )
VAR voyageend =
    MIN ( Voyage[End] )
VAR calcstart =
    IF ( mindate < voyagestart, voyagestart, mindate )
VAR calcend =
    IF ( maxdate > voyageend, voyageend, maxdate )
VAR daysinperiod = calcend - calcstart
RETURN
    DIVIDE ( daysinperiod, totalvoyage )

Si esto funciona para usted, márquelo como la solución. Los elogios también son apreciados. Por favor, avísame si no.

saludos

palmadita





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


View solution in original post

3 REPLIES 3
mahoneypat
Employee
Employee

Si aún no tiene una, debe crear una tabla Date que tenga una columna Quarter. Para este análisis, no necesita una relación entre las tablas, pero probablemente lo hará para otros análisis. A continuación se muestra una expresión de medida DAX que podría adaptar a sus necesidades. Se supone que está en un objeto visual de matriz con Voyage en filas y Quarter en columnas.

Pct Within Period =
VAR mindate =
    MIN ( Date[Date] )
VAR maxdate =
    MAX ( Date[Date] )
VAR totalvoyage =
    SUMX ( Voyage, Voyage[End] - Voyage[Start] )
VAR voyagestart =
    MIN ( Voyage[Start] )
VAR voyageend =
    MIN ( Voyage[End] )
VAR calcstart =
    IF ( mindate < voyagestart, voyagestart, mindate )
VAR calcend =
    IF ( maxdate > voyageend, voyageend, maxdate )
VAR daysinperiod = calcend - calcstart
RETURN
    DIVIDE ( daysinperiod, totalvoyage )

Si esto funciona para usted, márquelo como la solución. Los elogios también son apreciados. Por favor, avísame si no.

saludos

palmadita





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


Anonymous
Not applicable

Hago que esto funcione por viaje/fila.

Sin embargo, no puedo hacer que funcione en niveles agregados, es decir, por buque.

Por favor considere a continuación los datos y la configuración:

Period example2.JPG

Esta es la relación entre las tablas:

Table relationships.JPG

A continuación, me gustaría presentar una suma por buque por nombre de buque. El punto clave aquí es la suma de los dos viajes para Ship3.

Así que algo como esto:

End result.JPG

Cuando intento esto ahora, no obtengo resultados.

Anonymous
Not applicable

¡Gracias!

Me trae el 95% del camino - añadido algunos ajustes para filtrar un poco, pero de lo contrario estoy casi allí.

Trabajaré un poco más en este concepto, pero esto es lo más cerca que he estado de una solución.

Los principales problemas en el futuro es poder mantener los filtros cuando combino datos de diferentes tablas en el mismo objeto visual de tabla.

Termino con muchas filas en blanco al agregar columnas de otras tablas, pero espero que sea un problema con las relaciones que faltan y el filtrado.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.