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.
Tengo campañas con pueden ejecutarse desde 1 día hasta varios meses.
Cada campaña tiene ingresos.
Cada campaña tiene una fecha de inicio y finalización.
Aquí hay algunos datos de muestra
Campaña | Empezar | Fin | Importe |
971673 | 10/01/2020 | 26/10/2020 | 110000 |
726270 | 05/05/2020 | 09/05/2021 | 140000 |
898094 | 04/08/2021 | 26/08/2022 | 190000 |
972604 | 31/12/2020 | 13/10/2021 | 30000 |
652157 | 29/02/2020 | 20/10/2020 | 80000 |
955895 | 01/05/2020 | 31/08/2021 | 150000 |
556421 | 25/05/2020 | 24/05/2021 | 185000 |
Quiero poder asignar ingresos a lo largo de los meses, incluso cuando hay meses parciales al comienzo y / o al final del período de la campaña.
Me encontré con este post de @Fowmy .
Su solución Power Query parece hacer exactamente lo que quiero. Descargué su PBIX e intenté que la solución funcionara con mis datos. Soy un novato relativo y había un problema específico que no podía resolver. Su fuente de datos es una hoja de cálculo de Excel. Mis datos ya están en Power BI. Intenté todo lo que se me ocurrió para cambiar el origen para apuntar a mi tabla de Power BI, pero fallé.
He publicado un comentario para fowmy pidiendo ayuda, pero tengo una fecha límite para el cliente para cumplir, así que también estoy pidiendo ayuda a la comunidad en general.
Mi petición a los expertos aquí es doble:
Uno: ¿puede ayudarme a cambiar el origen de datos para leer desde Power BI?
Dos: ¿hay una manera más fácil / mejor de hacer esto?
Cualquier ayuda sería muy apreciada.
Mi versión actualizada del PBIX de fowmy está vinculada aquí.
Hola
En sus imágenes, ¿a qué nivel de granularidad le gustaría ir: nivel de día o solo nivel de mes? Para 961673, muestre claramente cuánta cantidad debe aparecer para cada mes. Por favor, explique también cómo llegó a la cantidad para cada mes.
Hola @Ashish_Mathur
Así que modelé los datos primero en Excel para saber exactamente el resultado que quería.
En esta hoja de cálculo vinculada (Month Year verify v2) he resaltado los datos para 961673 mostrar lo que estoy buscando obtener.
Nivel de granularidad: me gustaría poder ir a los valores diarios (como en la hoja de cálculo). Tengo una tabla de fechas en mi solución completa.
PBIX actualizado (Allocation2). Estoy buscando agregar código M actualizado a la consulta 'Campaign_calcs'.
Gracias por cualquier ayuda con el código M actualizado o una solución DAX (en un worls perfecto tendría una medida que haría el cálculo 🤞)
Ben_G
Disculpas por la lenta respuesta. Acabo de regresar de unas semanas de vacaciones.
Descargaré su PBIX y echaré un vistazo.
Muchas gracias.
Ben G
Gracias de nuevo por su aportación. Ahora he creado una tabla a partir de la tabla Campañas.
dejar
Source = Table.SelectColumns(Campaigns,{"Campaign","Start","End","Amount"})
en
Fuente
Columnas:
Tratando de usar su M-code, estoy luchando para descubrir cómo eliminar las transformaciones, etc.
Si hay algún chnace podrías volver a trabajar tu código para que se ejecute directamente después de mi fuente = table.selectcolumn... (es decir, comenzando con el paso "Función personalizada invocada"?) Estaría enormemente agradecido.
Gracias de antemano.
Gracias por su ayuda. Sigo teniendo problemas.
La solución actualizada especifica
'Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("XY/LDQQhDENbQ...'
Lo que estaba tratando de hacer era leer de una tabla existente y seleccionar columnas específicas,
Ejemplo:
Entonces, para la fuente, por ejemplo, usando table.addrows o table.addcolumns, me gustaría poder especificar las filas / columnas específicas y posiblemente agregar otras. ¿Puede ayudarme a especificar la fuente?
Volviendo a una vista de nivel superior, eche un vistazo a esta hoja de cálculo. En ella tengo pestañas con:
En un mundo perfecto en Power BI, me gustaría poder crear una tabla plana (vinculada a mi tabla de fechas) que luego podría usar para crear una matriz en mis paneles. ¿Podrías ayudarme con eso? Encontré la solución de Foumy que pensé que funcionaría, pero lo que estoy pidiendo aquí sería una mejor solución desde mi perspectiva.
Gracias de antemano por cualquier ayuda.
Pruebe esto en Power Query. Tuve que agregar la columna Días a la tabla Campaña para que la solución funcionara. Luego, copié el código M que comienza con el paso "Función personalizada invocada" y lo pegué en la tabla Campaña.
¡Gran solución, @Fowmy!
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("XY/LDQQhDENbQZxHGycQSGpB038bCyzzYSUORvaT49aiVy41xSMyMUggGLqrcn0CMw4AHyDE82ixSpE6HCj1t2JKPiRPIu+EucFzd4zyFbJVIRPwHfDegQGwUOLXWZzukrQjRYW1dkNI/D3kXhXsr0TVXOfpd4Wtut8M3YEZlddiyU/W9MmeXw==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Campaign = _t, Start = _t, End = _t, Amount = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Campaign", Int64.Type}, {"Start", type date}, {"End", type date}, {"Amount", Int64.Type}}),
#"Replaced Value" = Table.ReplaceValue(#"Changed Type",null,556421,Replacer.ReplaceValue,{"Campaign"}),
#"Added Custom2" = Table.AddColumn(#"Replaced Value", "Days", each Duration.Days([End] - [Start]) + 1),
#"Changed Type3" = Table.TransformColumnTypes(#"Added Custom2",{{"Days", Int64.Type}}),
#"Invoked Custom Function" = Table.AddColumn(#"Changed Type3", "Months", each fnPeriod([Start], [End])),
#"Expanded Months" = Table.ExpandTableColumn(#"Invoked Custom Function", "Months", {"fDate", "fDay"}, {"fDate", "fDay"}),
#"Changed Type1" = Table.TransformColumnTypes(#"Expanded Months",{{"fDate", type date}, {"fDay", Int64.Type}}),
#"Added Custom" = Table.AddColumn(#"Changed Type1", "Monthly Amount", each [Amount]/[Days] * [fDay]),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Month-Year", each Date.EndOfMonth([fDate])),
#"Removed Other Columns" = Table.SelectColumns(#"Added Custom1",{"Campaign", "Monthly Amount", "Month-Year"}),
#"Changed Type2" = Table.TransformColumnTypes(#"Removed Other Columns",{{"Monthly Amount", type number}, {"Month-Year", type date}})
in
#"Changed Type2"
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |