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

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
Syndicate_Admin
Administrator
Administrator

DAX Días consecutivos basados en una marca

Im tratando de obtener un recuento de días consecutivos en los datos de cada mes y año. El esquema de datos tiene este aspecto:

FECHA - Bandera
01/01/2021 - 1
01/02/2021 - 1
01/03/2021 - 0
01/04/2021 - 0
01/05/2021 - 1
01/06/2021 - 0
01/07/2021 - 1
----------------------------
Básicamente sólo necesito un el MAX días consecutivos que una bandera de 0 estuvo habilitada. Por lo tanto, para los datos anteriores, mostraría 2, ya que el intervalo de fechas más grande con un indicador 0 es 2 (3 y 4 de enero).

La salida sería
Enero 2021 - 2
Febrero 2021 - X
Marzo 2021 - Y
¿Alguna sugerencia?


2 ACCEPTED SOLUTIONS
Syndicate_Admin
Administrator
Administrator

Una operación de este tipo implica recursividad, que es innecesariamente compleja. Power Query hace el truco fácilmente.

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjDUByIjAyNDJR0lQ6VYHYiQEaaQMUzIAC5kgilkiqnRDFOVOaYqC0whSwwhQwMkoVgA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [DATE = _t, Flag = _t]),
    #"Grouped Rows" = Table.Group(Source, {"Flag"}, {{"ar", each _}, {"Count", each Table.RowCount(_), Int64.Type}}, 0),
    #"Expanded ar" = Table.ExpandTableColumn(#"Grouped Rows", "ar", {"DATE"}, {"DATE"})
in
    #"Expanded ar"

Screenshot 2021-07-09 215438.png

View solution in original post

Syndicate_Admin
Administrator
Administrator

Picture2.png

MAX días consecutivos que un indicador de 0 =
VAR _newtable =
FILTRO (
ADDCOLUMNS (
SUMMARIZE ( Datos, Fechas[Fecha], Datos[Indicador] ),
"@cumulate_flag",
CALCULAR (
CALCULAR (
SUMA ( Datos[Indicador] ),
ALL ( Datos[Flag] ),
VAR _currentdates =
MAX ( Fechas[Fecha] )
VAR _currentmonth =
MAX ( Fechas[Fin de Mes] )
devolución
FILTRO (
ALL ( Fechas[Fecha], Fechas[Fin de Mes] ),
Fechas[Fecha] <= _currentdates
&& Fechas[Fin de Mes] = _currentmonth
)
)
)
),
Datos[Marca] = 0
)
VAR _groupbyrowcount =
GROUPBY (
_newtable,
[@cumulate_flag],
"@rowcount", SUMX ( CURRENTGROUP (), 1 )
)
devolución
SI (
HASONEVALUE ( Fechas[Mes & Año] ),
MAXX ( _groupbyrowcount, [@rowcount] )
)

View solution in original post

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

No @zdub,

¿Las sugerencias y expresiones anteriores ayudaron con su escenario? si ese es el caso, puede considerar Kudo o aceptar las sugerencias útiles para ayudar a otros que enfrentaron requisitos similares a encontrarlo más rápidamente.

Si estos tampoco ayudan, por favor comparta información más detallada para ayudarnos a aclarar su escenario para probar.

Cómo obtener una respuesta rápida a su pregunta

saludos

Xiaoxin Sheng

Syndicate_Admin
Administrator
Administrator

Picture2.png

MAX días consecutivos que un indicador de 0 =
VAR _newtable =
FILTRO (
ADDCOLUMNS (
SUMMARIZE ( Datos, Fechas[Fecha], Datos[Indicador] ),
"@cumulate_flag",
CALCULAR (
CALCULAR (
SUMA ( Datos[Indicador] ),
ALL ( Datos[Flag] ),
VAR _currentdates =
MAX ( Fechas[Fecha] )
VAR _currentmonth =
MAX ( Fechas[Fin de Mes] )
devolución
FILTRO (
ALL ( Fechas[Fecha], Fechas[Fin de Mes] ),
Fechas[Fecha] <= _currentdates
&& Fechas[Fin de Mes] = _currentmonth
)
)
)
),
Datos[Marca] = 0
)
VAR _groupbyrowcount =
GROUPBY (
_newtable,
[@cumulate_flag],
"@rowcount", SUMX ( CURRENTGROUP (), 1 )
)
devolución
SI (
HASONEVALUE ( Fechas[Mes & Año] ),
MAXX ( _groupbyrowcount, [@rowcount] )
)
Syndicate_Admin
Administrator
Administrator

Una operación de este tipo implica recursividad, que es innecesariamente compleja. Power Query hace el truco fácilmente.

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjDUByIjAyNDJR0lQ6VYHYiQEaaQMUzIAC5kgilkiqnRDFOVOaYqC0whSwwhQwMkoVgA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [DATE = _t, Flag = _t]),
    #"Grouped Rows" = Table.Group(Source, {"Flag"}, {{"ar", each _}, {"Count", each Table.RowCount(_), Int64.Type}}, 0),
    #"Expanded ar" = Table.ExpandTableColumn(#"Grouped Rows", "ar", {"DATE"}, {"DATE"})
in
    #"Expanded ar"

Screenshot 2021-07-09 215438.png

Helpful resources

Announcements
Fabcon_Europe_Social_Bogo

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

Power BI Carousel June 2024

Power BI Monthly Update - June 2024

Check out the June 2024 Power BI update to learn about new features.

PBI_Carousel_NL_June

Fabric Community Update - June 2024

Get the latest Fabric updates from Build 2024, key Skills Challenge voucher deadlines, top blogs, forum posts, and product ideas.

RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

Top Solution Authors
Top Kudoed Authors