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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
Syndicate_Admin
Administrator
Administrator

incrementar una columna con DAX

Hola, estoy tratando de escribir una medida DAX para el siguiente requisito. Tengo una tabla como la siguiente -

BoletoCrear fechaFecha de cierrefechaestá esperando al cliente?
11/2/20231/8/20231/3/2023No
11/2/20231/8/20231/4/2023No
11/2/20231/8/20231/5/2023
11/2/20231/8/20231/6/2023No
11/2/20231/8/20231/7/2023No
11/2/20231/8/20231/8/2023No

Tiene el número de ticket, crear fecha, fecha de cierre y una columna que contiene valores de fecha entre estas 2 fechas.

Quiero crear una medida que devuelva una columna para mostrar los días transcurridos desde la creación del ticket y devolver el siguiente resultado. Este valor se calcula primero como la diferencia entre la fecha de creación y la fecha de un ticket. Cuando está esperando al cliente = "Sí", significa que el ticket fue enviado de vuelta al cliente con algunas preguntas. Por lo tanto, el valor no debe incrementarse. Si la siguiente línea está esperando en el cliente = no, entonces el valor debe incrementarse en 1

BoletoCrear fechaFecha de cierrefechaestá esperando al cliente?días desde la creación del ticket
11/2/20231/8/20231/3/2023No1
11/2/20231/8/20231/4/2023No2
11/2/20231/8/20231/5/20232
11/2/20231/8/20231/6/2023No3
11/2/20231/8/20231/7/2023No4
11/2/20231/8/20231/8/2023No5
1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Más fácil de lo que pensaba. Agregué una columna con un valor predeterminado 1 y agregué la columna calculada a continuación:

CantidadTotal1 =
SUMX(
FILTRO(
TODO('Tabla'),
'Tabla'[boleto] = ANTERIOR('Tabla'[boleto]) &&
'Tabla'[fecha] <= ANTERIOR('Tabla'[fecha]) &&
'Tabla'[¿Está esperando al cliente?] = "No"
),
'Tabla'[Personalizado]
)
data142536_0-1685588728990.png

View solution in original post

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Más fácil de lo que pensaba. Agregué una columna con un valor predeterminado 1 y agregué la columna calculada a continuación:

CantidadTotal1 =
SUMX(
FILTRO(
TODO('Tabla'),
'Tabla'[boleto] = ANTERIOR('Tabla'[boleto]) &&
'Tabla'[fecha] <= ANTERIOR('Tabla'[fecha]) &&
'Tabla'[¿Está esperando al cliente?] = "No"
),
'Tabla'[Personalizado]
)
data142536_0-1685588728990.png

Syndicate_Admin
Administrator
Administrator

Gracias por volver. Intenté agregar otros datos de tickets a la tabla y muestra el siguiente resultado.

data142536_1-1685550820755.png

La primera instancia para cada ticket debe ser la diferencia entre la fecha de creación y la fecha. El incremento debe comenzar después de este punto.

Resultado esperado

BoletoCrear fechaFecha de cierrefechaestá esperando al cliente?Medir incremento
1lunes, 2 de enero de 2023domingo, 8 de enero de 2023martes, 3 de enero de 2023No1
1lunes, 2 de enero de 2023domingo, 8 de enero de 2023miércoles, 4 de enero de 2023No2
1lunes, 2 de enero de 2023domingo, 8 de enero de 2023jueves, 5 de enero de 20232
1lunes, 2 de enero de 2023domingo, 8 de enero de 2023viernes, 6 de enero de 2023No3
1lunes, 2 de enero de 2023domingo, 8 de enero de 2023sábado, 7 de enero de 2023No4
1lunes, 2 de enero de 2023domingo, 8 de enero de 2023domingo, 8 de enero de 2023No5
2martes, 3 de enero de 2023viernes, 6 de enero de 2023miércoles, 4 de enero de 2023No1
2martes, 3 de enero de 2023viernes, 6 de enero de 2023jueves, 5 de enero de 20231
2martes, 3 de enero de 2023viernes, 6 de enero de 2023viernes, 6 de enero de 2023No2

Syndicate_Admin
Administrator
Administrator

Sí, el día siempre se incrementa en 1. Podría haber Sí por más de un día y no hay saltos de fecha. Tengo una fila para cada fecha entre la fecha de creación y la fecha de cierre.

Syndicate_Admin
Administrator
Administrator

@data142536 ,

Qué tal esto:

tackytechtom_0-1685498174090.png

Aquí el código DAX:

MeasureIncrement = 
VAR _CustomerWaiting = SELECTEDVALUE ( 'Table'[is waiting on customer?] )
VAR _Inc =
    RANKX(
        FILTER(
            ALLSELECTED('Table'),
            'Table'[is waiting on customer?] = "No"),
        CALCULATE ( 
        MAX ('Table'[date] ), 
        MAX ('Table'[ticket] ) = 'Table'[ticket]
        ), 
        , ASC
        , DENSE
    )
RETURN
IF ( _CustomerWaiting = "Yes", _Inc -1, _Inc )

Avíseme si esto resuelve el problema 🙂

/Tom
https://www.tackytech.blog/
https://www.instagram.com/tackytechtom/

Syndicate_Admin
Administrator
Administrator

@data142536

Necesito verificar la lógica.

el día siempre está incrasado por 1?

¿Qué pasa si tenemos el siguiente escenario? ¿Tienes Sí por más de un día? ¿Qué pasa si la fecha omite algunas fechas?

Boleto Crear fecha fecha está esperando al cliente?
1 1/2/2023 1/3/2023 No 1
1 1/2/2023 1/4/2023 No 2
1 1/2/2023 1/5/2023 2
1 1/2/2023 1/6/2023
1 1/2/2023 1/10/2023 No

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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

Top Solution Authors