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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
Syndicate_Admin
Administrator
Administrator

No obtengo el total en mi medida en combinación con la tabla

Tengo una fórmula que utilizo en una tabla. Sin embargo, no muestra un total (y sí, mi mostrar total en las opciones de diseño está activado. ¿Alguien me puede dar una solución?

Customer - Departing Revenue Customers (12m Lookback, including last rev month) = 
//Hij neemt ook de omzet van de maand mee waarin de omzet wordt verloren, moet hier nog even naar kijken
VAR CurrentCustomerIsDeparting = [Customer - leaving customers (last 12 months)]

VAR LastRevenueDateForCustomer =
    CALCULATE(
        [Customer Last Revenue Date],
        ALLEXCEPT(
            KPI_EOL_sync_financial_transactionlines,
            KPI_EOL_sync_financial_transactionlines[Customer Code]
        )
    )

-- Bepaal eerste dag van maand 12 maanden vóór LastRevenueDate
VAR LookbackStartDate =
    DATE(YEAR(EDATE(LastRevenueDateForCustomer, -12)), MONTH(EDATE(LastRevenueDateForCustomer, -12)), 1)

-- Bepaal laatste dag van de maand van LastRevenueDate
VAR LookbackEndDate =
    EOMONTH(LastRevenueDateForCustomer, 0)

-- Bereken omzet binnen de lookbackperiode
VAR RevenueInPeriod =
    CALCULATE(
        SUM(KPI_EOL_sync_financial_transactionlines[Revenue]),
        FILTER(
            ALL('Calendar Table'),
            'Calendar Table'[Date] >= LookbackStartDate &&
            'Calendar Table'[Date] <= LookbackEndDate
        ),
        KPI_EOL_sync_financial_transactionlines[Revenue] <> 0
    )

VAR Result =
    IF (
        CurrentCustomerIsDeparting = 1 &&
        NOT(ISBLANK(LastRevenueDateForCustomer)),
        RevenueInPeriod,
        BLANK()
    )

RETURN
    IF(Result = 0, BLANK(), Result)



24 REPLIES 24
Syndicate_Admin
Administrator
Administrator

Hola @DutchMark,

Gracias por ponerse en contacto con el foro de la comunidad de Microsoft Fabric.

Me enfrentaba al mismo problema y probé su enfoque, pero el total seguía siendo en blanco.
Así que probé esta medida actualizada y funcionó como se esperaba:


Cliente - Clientes de ingresos salientes (retrospectiva de 12 m) =
SUMX(
VALUES('Tabla de clientes' [Código de cliente]),
VAR CurrentCustomerIsDeparting =
LOOKUPVALUE(
«Cliente - clientes que se van (últimos 12 meses)»[Código de cliente],
«Cliente - clientes que se van (últimos 12 meses)»[Código de cliente],
'Mesa de clientes'[Código de cliente]
) <> EN BLANCO()

VAR LastRevenueDateForCustomer =
CALCULAR(
MAX('Tabla de clientes' [Última fecha de ingresos del cliente]),
ALLEXCEPT(
'Mesa de clientes',
'Mesa de clientes'[Código de cliente]
)
)

VAR LookbackStartDate =
DATE(YEAR(EDATE(LastRevenueDateForCustomer, -12)), MONTH(EDATE(LastRevenueDateForCustomer, -12)), 1)

VAR LookbackEndDate =
EOMONTH(LastRevenueDateForCustomer, 0)

VAR RevenueInPeriod =
CALCULAR(
SUM(KPI_EOL_sync_financial_transactionlines[Ingresos]),
FILTRO(
ALL('Tabla de calendario'),
'Tabla de calendario'[Fecha] >= LookbackStartDate &&
'Tabla de calendario'[Fecha] <= LookbackEndDate
),
KPI_EOL_sync_financial_transactionlines[Ingresos] <> 0
)

Resultado del VAR =
SI(
CurrentCustomerIsDeparting &&
NOT(ISBLANK(LastRevenueDateForCustomer)),
RevenueInPeriod,
EN BLANCO()
)

RETURN IF(Resultado = 0, BLANK(), Resultado)
)


Esta medida utiliza SUMX(VALUES(Customer Code), ...) para incorporar el contexto de fila al nivel total mediante un bucle a través de cada cliente. Garantiza que la lógica se ejecute para cada cliente individualmente y, a continuación, la sume, de modo que tanto los valores de fila como la línea total se muestren correctamente. Lo probé con datos de muestra y confirmé que funciona bien.

Encuentre el archivo pbix adjunto para su referencia.

Si la respuesta ha abordado su consulta, acéptela como una solución y dé un 'Felicitaciones' para que otros miembros puedan encontrarla fácilmente.

Saludos
Tejaswi.
Apoyo de la comunidad

Hay otros nombres de tabla y

"Cliente: clientes que se van (últimos 12 meses)"[Código de cliente]" es una medida para mí, no una mesa. Así que esto no funciona para mí.

Mi código de cliente está en
KPI_EOL_sync_financial_transactionlines'[Código de cliente]

Hola @DutchMark ,

Gracias por señalarlo.

Tienes toda la razón: LOOKUPVALUE no funciona cuando intentas usarlo en una medida como 'Clientes que abandonan clientes (últimos 12 meses)' [Código de cliente].

He actualizado la medida para eliminar la dependencia de esa tabla o medida. En su lugar, ahora comprueba si la última fecha de ingresos del cliente tiene más de 12 meses de antigüedad y, si es así, incluye sus ingresos de los últimos 12 meses (hasta su último mes de ingresos).

De esta manera, no necesita una tabla de "cliente saliente" separada, ya que funciona puramente en base a la lógica y la comparación de fechas dentro de su tabla de KPI_EOL_sync_financial_transactionlines existente.

Aquí está el Dax :

Cliente - Clientes de ingresos salientes (retrospectiva de 12 m) =
SUMX (
VALORES ( KPI_EOL_sync_financial_transactionlines[Código de cliente]),
Código de cliente VAR = KPI_EOL_sync_financial_transactionlines[Código de cliente]

VAR LastRevenueDateForCustomer =
CALCULAR (
MAX ( KPI_EOL_sync_financial_transactionlines [Última fecha de ingresos del cliente]),
FILTRO (
TODOS ( KPI_EOL_sync_financial_transactionlines ),
KPI_EOL_sync_financial_transactionlines[Código de cliente] = Código de cliente
)
)
VAR CutOffDate = HOY() - 365
VAR IsDepartingCustomer = NOT ISBLANK(LastRevenueDateForCustomer) && LastRevenueDateForCustomer <= CutOffDate

VAR LookbackStartDate =
DATE ( YEAR ( LastRevenueDateForCustomer ) - 1, MONTH ( LastRevenueDateForCustomer ), 1 )

VAR LookbackEndDate =
EOMONTH ( LastRevenueDateForCustomer, 0 )

VAR RevenueInPeriod =
CALCULAR (
SUMA ( KPI_EOL_sync_financial_transactionlines[Ingresos] ),
FILTRO (
TODOS ( 'Tabla de calendario' ),
'Tabla de calendario'[Fecha] >= LookbackStartDate &&
'Tabla de calendario'[Fecha] <= LookbackEndDate
),
KPI_EOL_sync_financial_transactionlines[Código de cliente] = Código de cliente,
KPI_EOL_sync_financial_transactionlines[Ingresos] <> 0
)

Resultado del VAR =
SI (
IsDepartingCustomer,
RevenueInPeriod,
EN BLANCO ()
)

DEVOLUCIÓN
IF ( resultado = 0, BLANK (), resultado )
)

Pruebe esta medida actualizada en su modelo y hágame saber si funciona para su escenario.

Gracias

Tejaswi.

Gracias, pero siento que esto no va a funcionar. Por favor, compruebe mi código original. Allí habrías visto que:

Esta es una medida para mí. "MAX ( KPI_EOL_sync_financial_transactionlines [Fecha de último ingreso del cliente]),"

Pero también siento que la lógica tiene cambios en la fórmula. ¿Creo que mis fechas límite son diferentes?

Hola de nuevo @DutchMark ,

Gracias por su detallada respuesta. Tienes toda la razón, ya que la fecha de último ingreso del cliente es una medida, no podemos usarla directamente en la lógica de nivel de fila como en LOOKUPVALUE o filtros. Ahora he reelaborado la fórmula para manejar eso correctamente.

Además, me he ocupado de alinear la lógica de corte con el código original. Esta versión comprueba si la última fecha de ingresos del cliente es anterior a 12 meses y, en caso afirmativo, extrae sus ingresos de los 12 meses anteriores a la fecha tal y como los tenía.

Este es el DAX revisado:

Cliente - Ingresos salientes (últimos 12 m retrospectivos) =
VAR CutOffDate = HOY() - 365

DEVOLUCIÓN
SUMX (
VALORES ( 'Tabla de clientes' [Código de cliente] ),
VAR CustomerCode = 'Tabla de Clientes'[Código de Cliente]

VAR LastRevenueDate =
CALCULAR (
MAX ( KPI_EOL_sync_financial_transactionlines [Última fecha de ingresos del cliente]),
KPI_EOL_sync_financial_transactionlines[Código de cliente] = Código de cliente
)

El VAR se va de salida =
NOT ISBLANK ( LastRevenueDate ) && LastRevenueDate <= CutOffDate

VAR LookbackStartDate =
DATE ( YEAR ( LastRevenueDate ) - 1, MONTH ( LastRevenueDate ), 1 )

VAR LookbackEndDate =
EOMONTH ( LastRevenueDate, 0 )

VAR Período de ingresos =
CALCULAR (
SUMA ( KPI_EOL_sync_financial_transactionlines[Ingresos] ),
KPI_EOL_sync_financial_transactionlines[Código de cliente] = Código de cliente,
'Tabla de calendario'[Fecha] >= LookbackStartDate,
'Tabla de calendario'[Fecha] <= LookbackEndDate
)

RETURN IF ( IsDeparting, RevenuePeriod, BLANK() )
)


Esto ahora debería respetar tanto el uso de la medida como la lógica de fecha original.

Hágamelo saber si funciona como se esperaba en su modelo, feliz de ayudar más si es necesario.

Gracias una vez más.

... MAX ( KPI_EOL_sync_financial_transactionlines[Última fecha de ingresos del cliente]),??

Hola de nuevo @DutchMark ,

Noté que la columna "Is Departing Test" mostraba "Sí" para todos los clientes, incluso aquellos que tenían transacciones recientes como el cliente C003. Después de investigar, nos dimos cuenta de que la lógica de DAX no calculaba correctamente la diferencia de mes para cada cliente. Entonces, reescribimos la medida para que funcione en el cliente. La lógica actualizada primero usa SELECTEDVALUE para obtener el cliente actual, luego captura su última fecha de transacción usando CALCULATE y MAX, y finalmente calcula el número de meses entre esa fecha y hoy usando DATEDIFF. Si esta brecha es 12 o más, devuelve "Sí"; de lo contrario, devuelve "No".

Este es el DAX que utilizamos:

Es la prueba de salida =
VAR SelectedCustomer = SELECTEDVALUE(KPI_EOL_sync_financial_transactionlines[Código de cliente])
VAR LastRevenueDate =
CALCULAR(
MAX(KPI_EOL_sync_financial_transactionlines[Fecha de transacción]),
KPI_EOL_sync_financial_transactionlines[Código de cliente] = SelectedCustomer
)
VAR MonthGap = DATEDIFF(LastRevenueDate, TODAY(), MONTH)
DEVOLUCIÓN
SI (
NOT ISBLANK(LastRevenueDate) && MonthGap >= 12,
"Sí",
"No"
)


Sin embargo, hay un punto importante a tener en cuenta aquí. Incluso si la última transacción de un cliente fue en junio de 2024 y ahora estamos en julio de 2025, el DAX aún podría mostrar "No" y eso es lo que se espera. Esto se debe a que DATEDIFF cuenta solo meses calendario completos, no días parciales. Por ejemplo, si la última transacción fue el 30 de junio de 2024, entonces 12 meses completos se completarían solo el 30 de junio de 2025. Entonces, hasta que se alcance esa fecha exacta, el MonthGap aún podría ser 11. Esto significa que el cliente no será marcado como "saliente" hasta que se completen 12 meses completos. Esto es intencionado, porque solo queremos marcar a un cliente como "saliente" si su última actividad fue hace al menos 12 meses completos.

Después de aplicar esta lógica, lo probamos usando un objeto visual de tabla con el código del cliente, la última fecha de ingresos y el resultado de la prueba "Is Departing" y ahora funciona correctamente. Si es necesario, también puede crear una medida de depuración simple para mostrar el intervalo de meses real por cliente para comprobar que la lógica está dando los resultados esperados.

A continuación, encontrará el archivo adjunto PBIX y ScreenShort para su referencia.

vtejrama_0-1752823930086.png

Saludos
Tejaswi.
Soporte de la comunidad

Voy a echar un vistazo, pero ¿por qué soy un código completamente nuevo. Mi código original funciona perfectamente, lo único que no muestra es un total en la parte inferior de la tabla.

también como ya escribí un par de veces. "VAR LastRevenueDate =" Ya tengo una medida para eso (que mencioné). Una nueva medida en esto probablemente sería un poco pesada para mi modelo.

Hola @DutchMark ,

¡Gracias por volver!

Si su medida original ya está funcionando bien y es solo el total lo que no se muestra, entonces no es necesario cambiar todo su enfoque. Solo compartí la versión completa para ayudar con la solución de problemas, ya que se marcó como la solución aceptada anteriormente.

Puede reemplazar fácilmente la parte LastRevenueDate con su propia medida para mantener intacto el rendimiento. Aún así, sugeriría probar mi versión una vez, podría ayudar a solucionar el problema total también.

Gracias.

Lo siento, pero tampoco pedí un enfoque totalmente nuevo. Expuse mi problema directamente. Pero un par de veces mis comentarios sobre varias cosas simplemente se pasaron por alto.

Esperaré hasta que alguien dé una somutión. No es una simple cuestión de cambiarlo a mi medida. Como la medida es la razón por la que los totales son difíciles.

Hola @DutchMark ,

Lamento saber que el problema aún está en curso, y realmente me disculpo por cualquier inconveniente causado.

Ya he compartido mi medida de trabajo basada en sus requisitos. Pero parece que no quieres cambiar tu lógica actual.

Si es posible, intente ajustar un poco su medida usando la idea que compartí. Estoy aquí y feliz de ayudar más. Esperaré tu actualización.

Gracias.

Ya probé 30 fórmulas a través de IA. Solo necesito una fórmula de trabajo basada en mi lógica que muestre los totales.

Cliente: clientes de ingresos salientes (12m Retrospectiva, incluido el último mes de revoluciones) =
También toma la facturación del mes en el que se pierde la facturación, tiene que mirar esto
VAR CurrentCustomerIsDeparting = [Cliente - Clientes que abandonan (últimos 12 meses, por mes)]

VAR LastRevenueDateForCustomer =
CALCULAR(
[Fecha de último ingreso del cliente],
TODOS EXCEPTO(
KPI_EOL_sync_financial_transactionlines,
KPI_EOL_sync_financial_transactionlines[Código de cliente]
)
)

-- Establecer el primer día del mes 12 meses antes de LastRevenueDate
VAR LookbackStartDate =
FECHA(AÑO(EDATE(LastRevenueDateForCustomer, -12)), MES(EDATE(LastRevenueDateForCustomer, -12)), 1)

-- Determinar el último día del mes de LastRevenueDate
VAR LookbackEndDate =
EOMONTH(LastRevenueDateForCustomer, 0)

-- Calcular los ingresos dentro del período retrospectivo
VAR IngresosEnPeríodo =
CALCULAR(
SUMA(KPI_EOL_sync_financial_transactionlines[Ingresos]),
FILTRO(
TODO('Tabla de calendario'),
'Tabla de calendario'[Fecha] >= LookbackStartDate &&
'Tabla de calendario'[Fecha] <= LookbackEndDate
),
KPI_EOL_sync_financial_transactionlines[Ingresos] <> 0
)

VAR Resultado =
SI (
CurrentCustomerIsDeparting = 1 &&
NO(EN BLANCO(LastRevenueDateForCustomer)),
IngresosEnPeríodo,
ESPACIO EN BLANCO()
)

DEVOLUCIÓN
SI(Resultado = 0, ESPACIO EN BLANCO(), Resultado)



Hola Agian @DutchMark ,

Mis más sinceras disculpas. He probado todas las soluciones posibles, pero entiendo que todavía no estás satisfecho con el resultado. Para ayudarme a brindarle un mejor apoyo, ¿podría compartir una versión de muestra de sus datos (asegurándose de que no contenga información sensible o confidencial)? Además, sería genial si pudiera especificar claramente el resultado exacto que espera.

¡Gracias por su comprensión!

Hola @DutchMark ,

Mis más sinceras disculpas. He probado todas las soluciones posibles, pero entiendo que todavía no estás satisfecho con el resultado. Para ayudarme a brindarle un mejor apoyo, ¿podría compartir una versión de muestra de sus datos (asegurándose de que no contenga información sensible o confidencial)?

Además, sería genial si pudiera especificar claramente el resultado exacto que espera.

Gracias.

Mi modelo es demasiado extenso para desglosarlo así. Ya dije un par de veces lo que esperaba. Piensa que estamos hablando en un bucle. Solo esperaré, tal vez alguien más pueda ayudar con mi lógica actual y solo alterar una fórmula, pero gracias por su ayuda

Hola @DutchMark,


Si el problema persiste por su parte, le recomendamos que se ponga en contacto con nuestros partners de soluciones certificados de Power BI. Se trata de profesionales altamente experimentados que pueden proporcionar asistencia técnica en profundidad y ofrecer soluciones a medida en función de sus necesidades específicas.
Puede explorar la lista de socios de confianza aquí:

Partners de Power BI | Plataforma de energía de Microsoft

Siempre eres bienvenido a continuar interactuando con la comunidad también,
Si necesitas más ayuda en el futuro, te animamos a que te pongas en contacto a través del foro de la comunidad de Microsoft Fabric y crees un nuevo hilo.
realmente apreciamos su participación activa en la comunidad de Microsoft Fabric.

Partners de Power BI | Plataforma de energía de Microsoft

Busque un asociado de Microsoft Power BI para la implementación, la consultoría o la ayuda para empezar a trabajar con Power BI para ayudarle con sus necesidades de inteligencia empresarial.

Gracias.

Hola @DutchMark ,

Quería comprobar si ha tenido la oportunidad de revisar la información proporcionada. No dude en ponerse en contacto con nosotros si tiene más preguntas.

Gracias.

Hola @DutchMark ,

Quería hacer un seguimiento y ver si tenía la oportunidad de revisar la información compartida. Si tiene más preguntas o necesita asistencia adicional, no dude en ponerse en contacto con nosotros.

Gracias.

Syndicate_Admin
Administrator
Administrator

Hola @DutchMark ,

¿Se ha resuelto el problema? Si la respuesta proporcionada por @anilelmastasi , abordó su consulta, ¿podría confirmarlo? Nos ayuda a garantizar que las soluciones proporcionadas sean efectivas y beneficiosas para todos.


Gracias.

Tejaswi.

Wow, no seas tan insistente después de un par de horas y ya respondí...

Helpful resources

Announcements
July 2025 community update carousel

Fabric Community Update - July 2025

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

July PBI25 Carousel

Power BI Monthly Update - July 2025

Check out the July 2025 Power BI update to learn about new features.

Top Solution Authors
Top Kudoed Authors