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.
Hey equipo, me enfrento al siguiente escenario. Tengo datos financieros de recibos y facturas para nuestros clientes y necesito averiguar la cantidad de "deudores activos" al final de cada semana.
Soy capaz de resumir los datos cuando se establecen manualmente las informaciones de fecha (la fecha de finalización de la semana) pero necesito encontrar una manera de poder usar esto en una medida en comparación con la tabla de la semana.
He adjuntado los datos de ejemplo con las últimas tres semanas creadas manualmente con resumen. ¿Puedes ayudarme a que todo esto se haga con una sola medida?
Tia
Usted tiene que crear una tabla de fechas y tener el inicio de la semana y el fin de semana allí. Busque el archivo de ejemplo.
https://www.dropbox.com/s/d9898a48e76wmvl/sales_analytics_weekWise.pbix?dl=0
Entonces usted puede tener una fórmula como esta
debt = CALCULATE(SUM(Data[Transaction Amount]), FILTER(Data, Data[Effective] <= max(Date[Date]) && Data[Leave Date] > max(Date[Date])))
debt customer =
sumx(SUMMARIZE(Data,Data[Customer ID], "Total Debt",[_debt] ),[_debt])
Este tipo de deudor diario, dependiendo de la fecha que elija cambiará si elige sesión de fin de semana visual se convertirá en deudor de semana
Para obtener lo mejor de la función de inteligencia de tiempo. Asegúrese de que tiene un calendario de fechas y se ha marcado como la fecha en la vista de modelo. Además, únase a él con la columna de fecha de su hecho/s. Consulte:
https://radacad.com/creating-calendar-table-in-power-bi-using-dax-functions
https://www.archerpoint.com/blog/Posts/creating-date-table-power-bi
https://www.sqlbi.com/articles/creating-a-simple-date-table-in-dax/
Hola Amit,
gracias por tratar de ayudar, muy apreciado. Traté de usar las dos medidas que sugieres, pero tampoco consigo el resultado correcto.
Normalmente incluyo la tabla de calendario en mis archivos, ya que no se puede hacer mucho sin estos. He utilizado "tablas virtuales" antes de donde necesitaba tener un "calendario del mes" separado para obtener los datos históricos agrupados según sea necesario. Estoy atascado con el cálculo aquí, ya que no sé cómo cambiar el 'calendario del mes' en un calendario de la semana y luego no estoy seguro de cómo iterar correctamente a través de estos datos.
Aquí está el archivo con los cambios que sugirió, pero aún no obtiene el resultado correcto. La deuda para 15/03 debe ser 1566.90 (página 1), usando su método, estoy recibiendo -220.40 (página 2).
En la página uno es > 0 filtro, lo comprué
Toda la fórmula es comentario también debe funcionar después de > 0 cambio
debtAmit =
var _min = Minx('Calendar','Calendar'[Date])
return
// CALCULATE(SUM(Data[Transaction Amount]), FILTER(Data, Data[Effective] <= max(Calendar[Date]) && Data[Leave Date] > max(Calendar[Date])),CROSSFILTER('Calendar'[Date],Data[Effective],None))
//CALCULATE(SUM(Data[Transaction Amount]), FILTER(Data, Data[Effective] <= _min && Data[Leave Date] >_min),CROSSFILTER('Calendar'[Date],Data[Effective],None))
sumx(SUMMARIZE(CALCULATETABLE(Data,filter(all(Data),Data[Effective] <= _min && Data[Leave Date] >_min)),Data[Customer ID],"_sum",sum(Data[Transaction Amount])),if([_sum]>0,[_sum],0))
//CALCULATE(sumx(SUMMARIZE(all(Data),Data[Customer ID], "Total Debt", CALCULATE(SUM(Data[Transaction Amount]), FILTER(Data, Data[Effective] <= DATE(2020,03,15) && Data[Leave Date] > DATE(2020,03,15)))),[Total Debt]),CROSSFILTER('Calendar'[Date],Data[Effective],None))
A partir de ahora sólo un sin comentar y me fusioné en la medida
Aprecia tus Felicitaciones.
Wicked Amit. ¡Ya casi llegamos! ¿Sería capaz de ajustarlo para que muestre el importe por cliente y sólo los valores superiores a 0? ¿Como en esta captura de pantalla?
Hola 4-3-3 ,
Su medida debe ser modificada como se indica a continuación:
debtAmit = CALCULATE(SUM(Data[Transaction Amount]), FILTER(Data, Data[Effective] <= MAX('Week Calendar'[Week End]) && Data[Leave Date] >MAX('Week Calendar'[Week End])))
A continuación, cree una medida:
Measure = SUMX(DISTINCT('Data'[Customer ID]),CALCULATE(IF([debtAmit]<=0,BLANK(),[debtAmit])))
Finalmente verá:
Para el archivo .pbix relacionado, haga clic aquí.
Hola Kelly,
gracias por tratar de ayudar. Desafortunadamente esta no es la solución que estoy buscando. Lo que estoy buscando es conseguir que la 'debtAmit' y 'Measure' coincidan con el mismo valor (1566.90). La medida 'debtAmit' en su intento sigue enumerando todas las transacciones, incluso las <0 y es por eso que sólo está mostrando 810.15
¿Puedes eparecer lo otra vez?
¡Hola!
No quiero sonar demasiado crítico, pero parece que todo tu enfoque es más difícil de lo que debería ser.
Tomé su archivo PBIX e hice algunas modificaciones. Puede descargarlo desde aquí.
Usar una estructura como esta en lugar de crear tablas completamente separadas para cada semana debería simplificar enormemente lo que está tratando de hacer. Avísame si puedo ayudar más.
Hey, gracias montones por intentarlo, pero por desgracia esto no está dando el resultado deseado.
Estoy de acuerdo con el hecho de que la creación de una tabla semanal no es eficiente, pero eso estaba allí para demostrar lo que estoy buscando y actualmente sólo es capaz de lograr al crear las tablas semanales. Pero lo que empecé con casi me llevó a donde me dirigía, aunque necesito ser capaz de hacer sin crear toda la tabla de la semana con la siguiente medida.
SUMMARIZE(Data,Data[Customer ID], "Total Debt", CALCULATE(SUM(Data[Transaction Amount]), FILTER(Data, Data[Effective] <= {weekEnding} && Data[Leave Date] > {weekEnding})))
Sus medidas sólo examinan la fecha de la licencia, mientras que tengo que mirar tanto la fecha de licencia como la fecha de vigencia de la transacción para asegurarme de que ambas serán devueltas cuando esto se aplique.
Este es el primer resumen para obtener las transacciones resumidas para cada ID de cliente para esa instantánea en particular (weekEnding), a continuación, con la segunda SUMA solo necesito agregar valores superiores a 0. Entonces necesito ser capaz de superponer estos datos a través del calendario de la semana para que obtenga esto:
¡Buenos días!
No habría esperado que mi respuesta fuera perfecta.
Cambié la relación entre Calendario y Datos para trabajar fuera de la fecha Creada en su lugar. Y agregué columnas de inicio/finalización de la semana a la tabla Calendario. Estos van de domingo a sábado... su visualización parece indicar que su calendario funciona de lunes a domingo, así que no dude en cambiar según corresponda. Puede utilizar los que están en su medida de la siguiente manera:
SUMX(
SUMMARIZE(
Data,
"Total Debt",
SUMX(
FILTER(
Data,
Data[Effective] <= RELATED('Calendar'[Week Ending Date]) &&
Data[Leave Date] > RELATED('Calendar'[Week Ending Date])
),
Data[Transaction Amount]
)
),
[Total Debt]
)
Y aquí está el PBIX. ¡Espero que esto ayude!
4-3-3 , Asegúrese de que no hay unión entre la fecha de la semana y la fecha de salida / efectiva para esta fórmula, o ha utilizado crossfilter para eliminar que
recomienda
Recuerdo que descargé el archivo inicial. Si me puede dar una salida de muestra, voy a tratar de
Lo siento, respondí a su primer post primero sin leer este. Tengo una unión entre las tablas del archivo que acabo de publicar.
Aunque acabo de quitar rápidamente la unión y todavía no estoy recibiendo la cantidad correcta. Está dando 810.15 ahora..
¡Hola! ¿Me haces un favor y explicar cómo diferenciaría entre Recibos y Facturas en la tabla Datos?
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 |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |