VO
¿Cómo se pueden obtener todas las ventas de todo el jerarquía, de table1.1 y table1.2. La salida deseada es table1.3 (tal vez usando PATHCONTAINS).
Columnas adicionales en el modelo: Ruta, Longitud de ruta
Ruta=RUTA([Client],[Referral])
Longitud de la ruta = LONGITUD DE LA RUTA ([Path])
greg_deckler
Lo que tienes aquí es un problema de cierre transitivo. https://community.powerbi.com/t5/Quick-Measures-Gallery/Transitive-Closure/td-p/783828
He adjuntado el PBIX pero puedes resolver esto con dos columnas:
Path =
VAR __table1 = FILTER('Table1 1',[Client] = EARLIER([Client]))
VAR __table1a = DISTINCT(SELECTCOLUMNS(__table1,"__to",[Referral]))
VAR __table2 = FILTER(ALL('Table1 1'),[Client] IN __table1a)
VAR __table2a = DISTINCT(SELECTCOLUMNS(__table2,"__to",[Referral]))
VAR __table3 = FILTER(ALL('Table1 1'),[Client] IN __table2a)
VAR __table3a = DISTINCT(SELECTCOLUMNS(__table3,"__to",[Referral]))
VAR __table4 = FILTER(ALL('Table1 1'),[Client] IN __table3a)
VAR __table4a = DISTINCT(SELECTCOLUMNS(__table4,"__to",[Referral]))
RETURN
// CONCATENATEX(__table1,[Referral],"|")
CONCATENATEX(DISTINCT(UNION(__table1a,__table2a,__table3a,__table4a)),[__to],"|")
Sales =
VAR __Sales1 = LOOKUPVALUE('Table1 2'[Sales],'Table1 2'[Client],[Client])
VAR __Sales2 = 'Table1 1'
VAR __Sales2a = ADDCOLUMNS(__Sales2,"__Include",PATHCONTAINS([Path],EARLIER([Client])))
VAR __Sales2b = ADDCOLUMNS(__Sales2a,"__Sales",IF([__Include],LOOKUPVALUE('Table1 2'[Sales],'Table1 2'[Client],[Client])))
RETURN
__Sales1 + SUMX(__Sales2b,[__Sales])
greg_deckler
Lo que tienes aquí es un problema de cierre transitivo. https://community.powerbi.com/t5/Quick-Measures-Gallery/Transitive-Closure/td-p/783828
He adjuntado el PBIX pero puedes resolver esto con dos columnas:
Path =
VAR __table1 = FILTER('Table1 1',[Client] = EARLIER([Client]))
VAR __table1a = DISTINCT(SELECTCOLUMNS(__table1,"__to",[Referral]))
VAR __table2 = FILTER(ALL('Table1 1'),[Client] IN __table1a)
VAR __table2a = DISTINCT(SELECTCOLUMNS(__table2,"__to",[Referral]))
VAR __table3 = FILTER(ALL('Table1 1'),[Client] IN __table2a)
VAR __table3a = DISTINCT(SELECTCOLUMNS(__table3,"__to",[Referral]))
VAR __table4 = FILTER(ALL('Table1 1'),[Client] IN __table3a)
VAR __table4a = DISTINCT(SELECTCOLUMNS(__table4,"__to",[Referral]))
RETURN
// CONCATENATEX(__table1,[Referral],"|")
CONCATENATEX(DISTINCT(UNION(__table1a,__table2a,__table3a,__table4a)),[__to],"|")
Sales =
VAR __Sales1 = LOOKUPVALUE('Table1 2'[Sales],'Table1 2'[Client],[Client])
VAR __Sales2 = 'Table1 1'
VAR __Sales2a = ADDCOLUMNS(__Sales2,"__Include",PATHCONTAINS([Path],EARLIER([Client])))
VAR __Sales2b = ADDCOLUMNS(__Sales2a,"__Sales",IF([__Include],LOOKUPVALUE('Table1 2'[Sales],'Table1 2'[Client],[Client])))
RETURN
__Sales1 + SUMX(__Sales2b,[__Sales])
VO
En respuesta a greg_deckler
Gracias Greg Está funcionando. Por favor, déjame pasar más tiempo para entender cómo funciona.