Forum Discussion
sumX
Hola
Sé que esta es una solución simple, pero después de revisar y probar múltiples soluciones potenciales, todavía no está del todo allí.
Desea calcular los cubos de intervalo de tiempo para un informe de antigüedad de AR/AP. Tengo una medida que parece funcionar correctamente a nivel de factura, pero al sumar al nivel de proveedor o de total general, tengo un espacio en blanco.
Esta es la versión más reciente de la medida
AgingBucket >0 =
Var Days = 0
//VAR MinBucket = [InvoiceDueDateM]+Days
//Var MaxBucket = minbucket+30
Var VendorTotal = sumx(VALUES(TADConsolidated[Vendor]),
VAR MinBucket = [InvoiceDueDateM]+Days
Var MaxBucket = minbucket+30
Return SWITCH(TRUE(),
[MaxDate]>MinBucket&&[MaxDate]<=MaxBucket,[Net Invoice Due TEST],
BLANK()))
Return VendorTotal
También he intentado calcular con un filtro para corchetes de datos, pero obtengo el error: SumX no permite valores booleanos, por lo que encontré una referencia de usar una instrucción switch para solucionar.
¡Realmente aprecio la generosidad del Foro!
2 Replies
- Syndicate_Admin
Administrator
@Dellis81 Primero, por favor vote por esta idea: https://ideas.powerbi.com/ideas/idea/?ideaid=082203f1-594f-4ba7-ac87-bb91096c742e
Esto parece un problema de totales de medida. Muy común. Vea mi publicación al respecto aquí: https://community.powerbi.com/t5/DAX-Commands-and-Tips/Dealing-with-Measure-Totals/td-p/63376
Además, esta medida rápida, medir totales, la última palabra debería brindarle lo que necesita:
https://community.powerbi.com/t5/Quick-Measures-Gallery/Measure-Totals-The-Final-Word/m-p/547907
Además: https://youtu.be/uXRriTN0cfY
Y: https://youtu.be/n4TYhF2ARe8 - Syndicate_Admin
Administrator
@Greg_Deckler , gracias por responder y enlaces.
He visto sus publicaciones en esfuerzos anteriores, y estoy de acuerdo: los totales incorrectos son un verdadero desafío. Incluso había votado por esta idea (enlace proporcionado) hace algún tiempo. Es bueno saber que hay posibles soluciones por venir.
Lamentablemente, sigo sin conseguir que su medida propuesta funcione. Los resultados todavía se quedan en blanco. (Me doy cuenta de que todavía necesito hacer el componente if onevalue, pero pensé que al menos obtendría los totales para extraer)
AgingBucket >0 Test = Var calcTable = SUMMARIZE(TADConsolidated,[Vendor],"__value",[AgingBucket >0]) Var VendorTotal1 = sumx(calcTable,[__value]) Return VendorTotal1Aquí está mi "medida única" en su terminología. Tenga en cuenta que he intentado usar un interruptor y una declaración if para ver si eso ayuda en los cálculos de totales. Ambos métodos devuelven el mismo resultado.
AgingBucket >0 = Var Days = 0 VAR MinBucket = [InvoiceDueDateM]+Days Var MaxBucket = minbucket+30 Var SingleM = SWITCH(TRUE(), [MaxDate]>MinBucket&&[MaxDate]<=MaxBucket,[Net Invoice Due TEST], BLANK()) Var SingleM2 = if([MaxDate]>MinBucket&&[MaxDate]<=MaxBucket,[Net Invoice Due TEST], BLANK()) Return SingleM //SingleM2¡Gracias!