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

Contar días consecutivos en función de la fecha seleccionada por ubicación

Hola, por favor ayuda!!

El lado izquierdo de la imagen de abajo es el conjunto de datos. Necesito contar el número de ocurrencias consecutivas del dígito 1.

El recuento tiene que ocurrir en función de la fecha seleccionada en el informe. Al igual que si selecciona 01-Mayo-2020, entonces conseg cuenta 3

poweringnaag_0-1599409097487.png

1 ACCEPTED SOLUTION
v-alq-msft
Community Support
Community Support

Hola, @poweringnaag

Basándome en su descripción, creé datos para reproducir su scenraio. El archivo pbix se adjunta al final.

Mesa:

a1.png

Puede crear una medida como se indica a continuación.

Result = 
var tab = 
ADDCOLUMNS(
    ALL('Table'),
    "L1",
    CALCULATE(
        MAX('Table'[Gen. Date]),
        FILTER(
            ALL('Table'),
            'Table'[Loc. No.]=EARLIER('Table'[Loc. No.])&&
            'Table'[Gen. Date]<EARLIER('Table'[Gen. Date])&&
            'Table'[S+U=24]=1
        )
    ),
    "L",
    CALCULATE(
        MAX('Table'[Gen. Date]),
        FILTER(
            ALL('Table'),
            'Table'[Loc. No.]=EARLIER('Table'[Loc. No.])&&
            'Table'[Gen. Date]<EARLIER('Table'[Gen. Date])
        )
    )
)
var newtab = 
ADDCOLUMNS(
    tab,
    "flag",
    IF(
       [L1]=[L]&&NOT(ISBLANK([L])),
     1,0
    )
)
var t = 
ADDCOLUMNS(
    newtab,
    "Re",
    var _loc = [Loc. No.]
    var _date = [Gen. Date]
    return
    IF(
        [S+U=24]=1,
        IF(
            ISBLANK([L1])||[flag]=0,
            1,
            1+
            COUNTROWS(
                FILTER(
                    newtab,
                    [Loc. No.]=_loc&&
                    [Gen. Date]<=_date&&
                    [flag]=1&&
                    NOT(ISBLANK([L]))
                )
            )
        )
    )
)
var _result = 
SUMX(
    SUMMARIZE(
        'Table',
        'Table'[Loc. No.],
        "x",
        SUMX(
            FILTER(
                t,
                [Gen. Date]=SELECTEDVALUE('Table'[Gen. Date])&&
                [Loc. No.]=EARLIER('Table'[Loc. No.])
            ),
            [Re]
        )
    ),
    [x]
)
return
IF(
    ISBLANK(_result),
    0,
    _result
)

Resultado:

a2.png

a3.png

Saludos

Allan

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

7 REPLIES 7
v-alq-msft
Community Support
Community Support

Hola, @poweringnaag

Basándome en su descripción, creé datos para reproducir su scenraio. El archivo pbix se adjunta al final.

Mesa:

a1.png

Puede crear una medida como se indica a continuación.

Result = 
var tab = 
ADDCOLUMNS(
    ALL('Table'),
    "L1",
    CALCULATE(
        MAX('Table'[Gen. Date]),
        FILTER(
            ALL('Table'),
            'Table'[Loc. No.]=EARLIER('Table'[Loc. No.])&&
            'Table'[Gen. Date]<EARLIER('Table'[Gen. Date])&&
            'Table'[S+U=24]=1
        )
    ),
    "L",
    CALCULATE(
        MAX('Table'[Gen. Date]),
        FILTER(
            ALL('Table'),
            'Table'[Loc. No.]=EARLIER('Table'[Loc. No.])&&
            'Table'[Gen. Date]<EARLIER('Table'[Gen. Date])
        )
    )
)
var newtab = 
ADDCOLUMNS(
    tab,
    "flag",
    IF(
       [L1]=[L]&&NOT(ISBLANK([L])),
     1,0
    )
)
var t = 
ADDCOLUMNS(
    newtab,
    "Re",
    var _loc = [Loc. No.]
    var _date = [Gen. Date]
    return
    IF(
        [S+U=24]=1,
        IF(
            ISBLANK([L1])||[flag]=0,
            1,
            1+
            COUNTROWS(
                FILTER(
                    newtab,
                    [Loc. No.]=_loc&&
                    [Gen. Date]<=_date&&
                    [flag]=1&&
                    NOT(ISBLANK([L]))
                )
            )
        )
    )
)
var _result = 
SUMX(
    SUMMARIZE(
        'Table',
        'Table'[Loc. No.],
        "x",
        SUMX(
            FILTER(
                t,
                [Gen. Date]=SELECTEDVALUE('Table'[Gen. Date])&&
                [Loc. No.]=EARLIER('Table'[Loc. No.])
            ),
            [Re]
        )
    ),
    [x]
)
return
IF(
    ISBLANK(_result),
    0,
    _result
)

Resultado:

a2.png

a3.png

Saludos

Allan

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Greg_Deckler
Super User
Super User

@poweringnaag - OK, si esto tiene que ser dinámico entonces tiene que ser una medida, no una columna. Por lo tanto, tal vez algo como esto:

Measure =
  VAR __Table =
    ADDCOLUMNS(
      ADDCOLUMNS(
        'Table',
        "Next",MINX(FILTER(ALL('Table'),[Gen Date]>EARLIER([Gen Date])),[Gen Date])
      ),
      "Diff",([Next] - [Gen Date])*1.
    )
RETURN
  COUNTROWS(FILTER(__Table,[Diff]=1))

No pude probar. Si proporciona datos en texto en una tabla que puedo copiar, simulará en un PBIX para usted.


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...
Anonymous
Not applicable

@Greg_Deckler - Gracias por ayudarme en esto. A continuación encontrará los datos de la muestra. un archivo pbix le ayudará.

Fecha generalLoc. No.GfFmSUS+U-24
01-Abr-201230.005.800.000.500
02-Abr-201230.0012.800.001.000
29-Abr-201233.700.0012.0012.001
30-Abr-201234.700.0012.0012.001
01-Mayo-201230.000.0012.0012.001
02-Mayo-201230.000.000.000.000
07-Mayo-201230.000.000.000.000
08-Mayo-201230.000.0011.0013.001
30-Mayo-201230.000.000.000.000
31-Mayo-201230.800.000.000.000
01-Jun-201230.000.000.000.000
02-Jun-201230.000.000.000.000
03-Jun-201230.000.000.000.000
04-Jun-201230.000.000.000.000
08-Jun-201230.000.000.000.000
12-Jun-201230.000.000.000.000
30-Jun-201233.600.008.0016.001
01-Abr-202124.400.000.000.000
02-Abr-202121.400.000.000.000
29-Abr-202120.200.000.000.000
30-Abr-202120.000.000.000.000
01-Mayo-202121.501.000.000.600
02-Mayo-202120.000.000.000.000
07-Mayo-202121.000.000.000.000
08-Mayo-202120.200.100.000.000
30-Mayo-2021212.0012.000.000.000
31-Mayo-2021212.0012.000.000.400
01-Jun-202128.0016.000.000.000
02-Jun-202125.0019.000.000.000
03-Jun-202120.000.000.000.000
04-Jun-202120.000.000.000.000
05-Jun-2021212.0012.000.000.000
08-Jun-2021212.0012.000.000.000
12-Jun-202120.000.000.000.000
30-Jun-2021211.0013.0010.0014.001

Apliqué ambas sugerencias de Amit y Greg y a continuación es el resultado.

Capture.JPG

amitchandak
Super User
Super User

@poweringnaag , Crear una nueva columna como esta y agregar que

if(not(isblank(maxx(filter(Table,[Gen Date] á earlier([Gen Date])-1),[Gen Date])),1,0)

Anonymous
Not applicable

Gracias @amitchandak . Creé una columna con su definción sugerida e incluida en el siguiente post. Solicitarle que revise y hágamelo saber. ¿Debo cambiar para obtener el resultado correcto?

@poweringnaag - He incluido un archivo PBIX a continuación sig. Quieres Tabla (36). No estoy seguro si es lo que quieres. ¿Está intentando emular la columna S+U-24 es la salida deseada? Por favor, confirme o niegue. Si no, entonces ¿cuál es la salida deseada?

Column = 
  VAR __NextDate = MINX(FILTER(ALL('Table (36)'),[Gen. Date]>EARLIER([Gen. Date]) && [Loc. No.]=EARLIER([Loc. No.]) && [S+U=24]=1),[Gen. Date])
  VAR __Next = MAXX(FILTER('Table (36)',[Gen. Date]=__NextDate),[S+U=24])
RETURN
  IF([S+U=24]=1 && __Next=1,1,0)


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...
Anonymous
Not applicable

@Greg_Deckler - A continuación se muestra la salida que estoy tratando de obtener.. Para una fecha seleccionada quiero ver el recuento consecutivo que representa la interrupción. Es como si Programado (S) + No programado (U) a 24 horas en un día, entonces significa que hay una interrupción en la máquina / ubicación.

output.JPG

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.