Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
@AlexisOlson es posible replicar un forLoop recursivo en DAX. Necesito una recursividad que funcione en el contexto del filtro. No puedo encontrar nada que pueda hacer lo siguiente en DAX.
let
src=Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("Jcu5DQAxDAPBXhg7kHR+axHcfxsn0gmBHYCZMDS4r9o1cFvCBbs2HoTg1E71xw7+urqreTsmGALd7MmU8BiU+wM=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [index = _t, row = _t, Value = _t]),
ct = Table.TransformColumnTypes(src,{{"index", Int64.Type}, {"row", Int64.Type}, {"Value", Int64.Type}}),
#"Added Custom" = Table.AddColumn(ct, "Custom", each let
curr = [index],
filt = Table.SelectRows(ct, (_)=> (_[index] >= curr)),
terminator = Table.RowCount(filt)-1,
forLoop = List.Generate(
()=> [ i =0, x = filt[Value]{i}, y= Text.From(filt[row]{i}), combins = 0+x],
each [combins]<=100,
each [i=[i]+1, x= filt[Value]{i}, y= [y]&"-"&Text.From(filt[row]{i}), combins = [combins]+x],
each [y]
),
len = List.Count(forLoop)-1
in if (len>=0) then forLoop{len} else null)
in
#"Added Custom"
Gracias de antemano.
Genial, pero el desafío es cómo aplico esto a mi escenario. Necesito un bucle for para que funcione de manera que para cada fila en el contexto del filtro considere una tabla donde filter(all(table), table[index]>= currentIndexVisible) y luego siga conctenando table[row], hasta que se ejecuteTotal de valores <=100 (cláusula de terminación).
Proporcione datos de muestra que cubran su problema o pregunta por completo, en un formato utilizable (no como una captura de pantalla).
No incluya información confidencial ni nada que no esté relacionado con el problema o la pregunta.
Muestre el resultado esperado en función de los datos de muestra que proporcionó.
Puede usar el código del fragmento de código para obtener los datos de ejemplo.
Custom DAX =
VAR i = [index]
VAR b =
ADDCOLUMNS (
FILTER ( Query1, [index] >= i ),
"g",
VAR i2 = [index]
RETURN
SUMX ( FILTER ( Query1, [index] >= i && [index] <= i2 ), [Value] )
)
RETURN
CONCATENATEX ( FILTER ( b, [g] <= 100 ), [row], "-" )
Aquí hay una versión ligeramente optimizada
Custom DAX =
VAR i = [index]
VAR f =
FILTER ( Query1, [index] >= i )
VAR g =
ADDCOLUMNS (
f,
"rt", VAR i2 = [index] RETURN SUMX ( FILTER ( f, [index] <= i2 ), [Value] )
)
RETURN
CONCATENATEX ( FILTER ( g, [rt] <= 100 ), [row], "-" )
Todas las funciones del iterador son bucles For en DAX.