Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Administrator
3 years ago
Solved

Create button with time filter

I am needing the following:

I have a table that has a date and time of a production, the production is divided into three shifts and I want that by means of a button I can see that it occurred in the morning, in the afternoon and in the evening.

With the options I was researching I do not succeed, with data segmentation either, I want something that is fixed, that is to say that each button says TM, TT and TN and go interspersed between the 3 turns.

For example, the morning shift is from 6am to 14:30 the afternoon is from 14:30 to 23 and the evening from 23 to 6

I hope you can guide me on what I should try to achieve it.

Thanks a lot

  • I solved it as follows:

    I generated a column with the following:

    = Table.AddColumn(#"Columna condicional agregada", "TurnoDia", each if DateTime.Time([Hora de finalización]) < #time(6, 10, 0) then "TN" else if DateTime.Time([Hora de finalización]) < #time(14, 34, 0) then "TM" else if DateTime.Time([Hora de finalización]) < #time(23, 0, 0) then "TT" else "TN")

    Then create a slicer where I can filter by TN, TM or TT

4 Replies

  • Syndicate_Admin add another column in your table for the shift with something like this:

     

     

    Shift = 
    VAR __Time = TIME ( HOUR ( YourTable[YourDateTime Column] ), MINUTE( YourTable[YourDateTime Column] ), 0 )
    RETURN
    SWITCH ( 
        TRUE (),
        __Time >= TIME ( 6, 0, 0 ) && __Time < TIME ( 14, 30, 0 ), "Morning Shift",
        __Time >= TIME ( 14, 30, 0 ) && __Time < TIME ( 23, 0, 0 ),  "Afternoon Shift",
        "Night Shift"
    )

     

  • Thanks for the answer, I'm going to try it.

    I see that the solution is to generate a new conditional column and from there create a slicer.

  • I solved it as follows:

    I generated a column with the following:

    = Table.AddColumn(#"Columna condicional agregada", "TurnoDia", each if DateTime.Time([Hora de finalización]) < #time(6, 10, 0) then "TN" else if DateTime.Time([Hora de finalización]) < #time(14, 34, 0) then "TM" else if DateTime.Time([Hora de finalización]) < #time(23, 0, 0) then "TT" else "TN")

    Then create a slicer where I can filter by TN, TM or TT