Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
4 years ago
Solved

Set a conditional flag

Hello!

 

I have a table where I have data on vehicle positions (vehicle id, time of sending their last position, longitude and latitude). I need to set up an active/inactive indicator (calculated column) to see if the vehicle has moved since the last position. The condition is that if there is a change (+/-) in latitude and/or longitude, the vehicle is defined as having been active, otherwise it is considered inactive. How can I write the condition ?

 

Greetings

  • PC2790's avatar
    PC2790
    4 years ago

    I mean use the given dax formula to create a calculated column in your table.Is that what you are doing?

    Home-->New column-->Paste the code there

    The error is because you are using it as a measure.

7 Replies

  • PC2790's avatar
    PC2790
    Community Champion

    Hey Anonymous ,

     

    How does your sample data look like?

    • Anonymous's avatar
      Anonymous
      Not applicable

      Here is a sample of my data PC2790 

       

       

      In this sample, the vehicles moved each time, so they are considered active.

       

      But let’s imagine that the first line is duplicated with a different schedule, (the 04/07/2022 at 07:05:00 with the same longitude and latitude for example), the vehicle should therefore be marked as inactive for this newline

       

      • PC2790's avatar
        PC2790
        Community Champion

        Hey Anonymous ,

         

        Is this what you are looking for?

        Active/Inactive = 
        var previousval = Calculate(Max(VehicleTb[PositionTimestamp]),Filter(VehicleTb,VehicleTb[PositionTimestamp]<Earlier(VehicleTb[PositionTimestamp])),ALLEXCEPT(VehicleTb,VehicleTb[Vehicle ID]))
        var previouslong = CALCULATE(Max(VehicleTb[Long]),VehicleTb[PositionTimestamp] = previousval)
        var previouslat = CALCULATE(Max(VehicleTb[Lat]),VehicleTb[PositionTimestamp] = previousval)
        return
        //previousval
        if(VehicleTb[Long] = value(previouslong) && VehicleTb[Lat] = value(previouslat),"InActive","Active")