Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
3 years ago
Solved

DOUBT ABOUT POWER BI MEASURES

I HAVE A TABLE APRIL_2023 WITH THE COLUMNS: PATIENT, TOTAL PRESCRIBED VOLUME AND DATE, HOW DO I CREATE A MEASUREMENT THAT RETURNS ME THE QUANTITY OF DIFFERENT PATIENTS WHO HAVE HAD THE PRESCRIPTION = 0 IN TWO CONTINUED DAYS OR MORE?

  • Anonymous's avatar
    Anonymous
    3 years ago

    Hi  Anonymous ,

    I created some data:

     

    Here are the steps you can follow:

    1. In Power Query -- Add Column – Index Column – From 1.

    2. Create measure.

    MIN_0_DATE_MEASURE =
    MINX(
        FILTER(ALL('Table'),
        'Table'[PATIENT]=MAX('Table'[PATIENT])&&'Table'[TOTAL PRESCRIBED]=0),[DATE])
    Flag_MEASURE =
    var _current=
    SUMX(
        FILTER(ALL('Table'),
        'Table'[PATIENT]=MAX('Table'[PATIENT])&&'Table'[Index]=MAX('Table'[Index])),[TOTAL PRESCRIBED])
    var _last=
    SUMX(
        FILTER(ALL('Table'),
        'Table'[PATIENT]=MAX('Table'[PATIENT])&&'Table'[Index]=MAX('Table'[Index])-1),[TOTAL PRESCRIBED])
    var _next=
    SUMX(
        FILTER(ALL('Table'),
        'Table'[PATIENT]=MAX('Table'[PATIENT])&&'Table'[Index]=MAX('Table'[Index])+1),[TOTAL PRESCRIBED])
    var _maxdate=
    MAXX(
        FILTER(ALL('Table'),'Table'[PATIENT]=MAX('Table'[PATIENT])),[DATE])
    return
    IF(
        _current=0&&MAX('Table'[DATE])=_maxdate,0,
        IF(
        _current=0&&_current=_next,1,0))
    Flag =
    IF(
        1 in SELECTCOLUMNS(FILTER(ALL('Table'),'Table'[PATIENT]=MAX('Table'[PATIENT])),"1",[Flag_MEASURE])
        ,1,0)

    3. Place [Flag]in Filters, set is=1, apply filter.

    4. Result:

     

     

    Best Regards,

    Liu Yang

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly

     

1 Reply

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi  Anonymous ,

    I created some data:

     

    Here are the steps you can follow:

    1. In Power Query -- Add Column – Index Column – From 1.

    2. Create measure.

    MIN_0_DATE_MEASURE =
    MINX(
        FILTER(ALL('Table'),
        'Table'[PATIENT]=MAX('Table'[PATIENT])&&'Table'[TOTAL PRESCRIBED]=0),[DATE])
    Flag_MEASURE =
    var _current=
    SUMX(
        FILTER(ALL('Table'),
        'Table'[PATIENT]=MAX('Table'[PATIENT])&&'Table'[Index]=MAX('Table'[Index])),[TOTAL PRESCRIBED])
    var _last=
    SUMX(
        FILTER(ALL('Table'),
        'Table'[PATIENT]=MAX('Table'[PATIENT])&&'Table'[Index]=MAX('Table'[Index])-1),[TOTAL PRESCRIBED])
    var _next=
    SUMX(
        FILTER(ALL('Table'),
        'Table'[PATIENT]=MAX('Table'[PATIENT])&&'Table'[Index]=MAX('Table'[Index])+1),[TOTAL PRESCRIBED])
    var _maxdate=
    MAXX(
        FILTER(ALL('Table'),'Table'[PATIENT]=MAX('Table'[PATIENT])),[DATE])
    return
    IF(
        _current=0&&MAX('Table'[DATE])=_maxdate,0,
        IF(
        _current=0&&_current=_next,1,0))
    Flag =
    IF(
        1 in SELECTCOLUMNS(FILTER(ALL('Table'),'Table'[PATIENT]=MAX('Table'[PATIENT])),"1",[Flag_MEASURE])
        ,1,0)

    3. Place [Flag]in Filters, set is=1, apply filter.

    4. Result:

     

     

    Best Regards,

    Liu Yang

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly