¿Puedes ayudarme, por favor, tengo dos mesas una se ve así
Fecha de Eqmt
A 15/08/20
B 03/09/20
C 05/08/20
Y otra que parece:
Eqmt Dev IniDate EndDate
A 1 01/jul/20 01/aug/20
A 3 01/aug/20 01/sep/20
B 4 01/jul/20 01/aug/20
B 5 01/aug/20 01/sep/20
B 2 01/sep/20 01/oct/20
C 4 01/jul/20 01/aug/20
C 3 01/aug/20 01/sep/20
Quiero capturar el valor de desarrollo que está entre IniDate y EndDate, algo como esto:
Eqmt Date Dev
A 15/08/20 3
B 03/09/20 2
C 05/08/20 3
¿Puede darme alguna respuesta, sin usar funciones DAX si es posible? Gracias por tu respuesta
Solved! Go to Solution.
Creo que esto lo hace. Por favor, prueba.
Agregue una columna en la primera tabla (cambie el nombre de la segunda tabla por TableB
List.First(
Table.SelectRows(
TableB,
(r) =>
r[IniDate] < [Date]
and
r[EndDate] > [Date]
and
r[Eqmt] = [Eqmt]
)[Dev]
)
Hola @logrt . Suponiendo que seas la tabla más pequeña se llama Table1 y el más grande se llama Table2 lo que hice fue:
1. Tabla 2 combinada en la Tabla 1 solo tiene dev,IniDate y EndDate agregados.
2. Se ha añadido una columna personalizada utilizando la siguiente instrucción if:
if [Date] < [EndDate] and [Date] > [IniDate] then true else false
3. Filtrado para mostrar sólo verdadero
4. Se han eliminado las columnas IniDate, EndDate y Custom dejando solo la fecha, Eqmt y Dev.
No es el más elegante, pero se realiza el trabajo en Power Query. Así es como se ve la M para él. Concedido que no querrías usar mi fuente que querrías usar la tuya.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WstA3NNU3MjAyUNJRclSK1YlWstQ3hgk4gQUs9OEqnJViYwE=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Date = _t, Eqmt = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Date", type date}}),
#"Merged Queries" = Table.NestedJoin(#"Changed Type", {"Eqmt"}, Table2, {"Eqmt"}, "Table2", JoinKind.LeftOuter),
#"Expanded Table2" = Table.ExpandTableColumn(#"Merged Queries", "Table2", {"Dev", "IniDate", "EndDate"}, {"Dev", "IniDate", "EndDate"}),
#"Added Custom" = Table.AddColumn(#"Expanded Table2", "Custom", each if [Date] < [EndDate] and [Date] > [IniDate] then true else false),
#"Filtered Rows" = Table.SelectRows(#"Added Custom", each ([Custom] = true)),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Custom", "IniDate", "EndDate"})
in
#"Removed Columns"
Creo que esto lo hace. Por favor, prueba.
Agregue una columna en la primera tabla (cambie el nombre de la segunda tabla por TableB
List.First(
Table.SelectRows(
TableB,
(r) =>
r[IniDate] < [Date]
and
r[EndDate] > [Date]
and
r[Eqmt] = [Eqmt]
)[Dev]
)
Join digitally, March 2–4, 2021 to explore new tech that's ready to implement. Experience the keynote in mixed reality through AltspaceVR!
User | Count |
---|---|
7 | |
3 | |
1 | |
1 | |
1 |