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

Asistencia de columna calculada "Estado del contrato del cliente"

Buenas tardes Equipo,

Estoy buscando ayuda para escribir el DAX necesario para crear una columna calculada para ayudar a determinar si un cliente se pierde o está activo y cuándo. Este es el contexto de mis datos:

Mi tabla es de cada contrato en nuestra base de datos. La tabla contiene columnas para Corp-Name, Site-name, Site-ID, Contract-Date, Contract-Value, Contract-Expiration value. Es importante comprender que un sitio puede tener varios contratos y un cliente puede tener varios sitios.

Mi objetivo para las nuevas columnas es si un cliente tiene al menos un contrato activo, en cualquier sitio, entonces todas las filas para ese cliente deben ser iguales a ACTIVE. Sólo una vez que todos los contratos para todos los sitios han expirado se calcularán como PERDIDOS. Una vez que un cliente está PERDIDO, quiero que una segunda columna se despoje con la fecha de vencimiento MAX de todos los contratos para los sitios de ese cliente. Si está activo, permanezca en blanco. A continuación se muestra un aspecto visual de lo que esperaría que se vea la tabla con las dos nuevas columnas.

Screen Shot 2020-05-30 at 2.38.54 PM.png

Con estas dos nuevas columnas, tengo la intención de contarlas y graficarlas en función de la fecha perdida y mostrar la suma de sus valores de contrato perdidos. Los necesito en forma de columna para filtrar páginas.

Aquí es cómo intenté calcular el ESTADO DEL CLIENTE, sin embargo, está manteniendo el contexto a las filas individuales, y dividiendo la salida para los clientes que no se pierden realmente, pero creando una fila para los contratos perdidos y los contratos activos.

Screen Shot 2020-05-30 at 2.57.14 PM.png


En lugar de abajo, este ejemplo debe ser "NO PERDIDO" en lugar de ambos.

Screen Shot 2020-05-30 at 2.57.32 PM.png

Gracias de antemano por su apoyo en ayudarme a obtener este estado de cliente y la fecha perdida resuelto!

1 ACCEPTED SOLUTION
speedramps
Super User
Super User

H Smoody

Pleaase considerar ths solución y dejar felicitaciones

Aquí hay algunas medidas de DAX que puede ajustar . ...

AllContractsForCustomer =
/*
Esta medida cuenta todos los contratos de un cliente.
All quita todos los filtros, incluido el filtro de contexto de fila, y, a continuación, VALUES vuelve a aplicar el contexto del cliente
*/
CALCULAR (
COUNTROWS(Contratos),
Todos (Contratos),
VALORES(Contratos[Cliente])
)


ActiveContractsForCustomer =

/*
Esta medida cuenta todos los contratos activos para el cliente.
ALL quita todos los filtros, incluido el filtro de contexto de fila, y, a continuación, VALUES vuelve a aplicar el contexto del cliente.
Entonces es sólo filtros ACTIVOS
*/
CALCULAR (
COUNTROWS(Contratos),
Todos (Contratos),
VALORES(Contratos[Cliente]),
Contratos[Estado del contrato]="ACTIVO"
)

InactiveContractsForCustomer =

/*
Esta medida cuenta todos los contratos inactivos para el cliente.
ALL quita todos los filtros, incluido el filtro de contexto de fila, y, a continuación, VALUES vuelve a aplicar el contexto del cliente.
Entonces es sólo filtros INACTIVOS
*/
CALCULAR (
COUNTROWS(Contratos),
Todos (Contratos),
VALORES(Contratos[Cliente]),
Contratos[Estado del contrato]="INACTIVO"
)

Supongo que solo necesitaba ayuda para reemplazar el contexto de fila. y puedes hacer el resto de ahora en adelante, porque pareces tener una buena comprensión de la lógica del SI.

View solution in original post

4 REPLIES 4
parry2k
Super User
Super User

@Smoody07 añadir dos columnas calculadas

Lost Y-N = 
VAR __countActive = 
CALCULATE ( 
COUNTROWS ( Table ), 
ALLEXCEPT ( Table, Table[Customer] ),
Table[Contract State] = "Active"
)
RETURN
IF ( __countActive >= 1, "Active", "Inactive" )

Most Recent Expiration Date = 
IF ( Table[Lost Y-N] = "Inactive", 
CALCULATE ( 
MAX ( Table[Expiration Date]), 
ALLEXCEPT ( Table, Table[Customer] )
)

Me gustaría elogiossi mi solución ayudara.👉Si puedes pasar tiempo publicando la pregunta, también puedes hacer esfuerzos para dar a Kudos quien haya ayudado a resolver tu problema. ¡Es una muestra de agradecimiento!



Subscribe to the @PowerBIHowTo YT channel for an upcoming video on List and Record functions in Power Query!!

Learn Power BI and Fabric - subscribe to our YT channel - Click here: @PowerBIHowTo

If my solution proved useful, I'd be delighted to receive Kudos. When you put effort into asking a question, it's equally thoughtful to acknowledge and give Kudos to the individual who helped you solve the problem. It's a small gesture that shows appreciation and encouragement! ❤


Did I answer your question? Mark my post as a solution. Proud to be a Super User! Appreciate your Kudos 🙂
Feel free to email me with any of your BI needs.

Sí Parry, ALLEXCEPT es mejor que mi sugerencia

speedramps
Super User
Super User

H Smoody

Pleaase considerar ths solución y dejar felicitaciones

Aquí hay algunas medidas de DAX que puede ajustar . ...

AllContractsForCustomer =
/*
Esta medida cuenta todos los contratos de un cliente.
All quita todos los filtros, incluido el filtro de contexto de fila, y, a continuación, VALUES vuelve a aplicar el contexto del cliente
*/
CALCULAR (
COUNTROWS(Contratos),
Todos (Contratos),
VALORES(Contratos[Cliente])
)


ActiveContractsForCustomer =

/*
Esta medida cuenta todos los contratos activos para el cliente.
ALL quita todos los filtros, incluido el filtro de contexto de fila, y, a continuación, VALUES vuelve a aplicar el contexto del cliente.
Entonces es sólo filtros ACTIVOS
*/
CALCULAR (
COUNTROWS(Contratos),
Todos (Contratos),
VALORES(Contratos[Cliente]),
Contratos[Estado del contrato]="ACTIVO"
)

InactiveContractsForCustomer =

/*
Esta medida cuenta todos los contratos inactivos para el cliente.
ALL quita todos los filtros, incluido el filtro de contexto de fila, y, a continuación, VALUES vuelve a aplicar el contexto del cliente.
Entonces es sólo filtros INACTIVOS
*/
CALCULAR (
COUNTROWS(Contratos),
Todos (Contratos),
VALORES(Contratos[Cliente]),
Contratos[Estado del contrato]="INACTIVO"
)

Supongo que solo necesitaba ayuda para reemplazar el contexto de fila. y puedes hacer el resto de ahora en adelante, porque pareces tener una buena comprensión de la lógica del SI.

Anonymous
Not applicable

¡Gracias! Le pegaste el clavo en la cabeza por el problema. Olvidé por completo la declaración excepto.

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.