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
Syndicate_Admin
Administrator
Administrator

¿Cómo lo hago? Tabla variable, limitando los datos en función de la selección

No puedo hacer que esta medida funcione... Estoy a mitad de camino tal vez. Aquí está mi código:

O QTY OD FLOW =
DÓNDE bob =
VALOR SELECCIONADO ( Rangos de fecha[daterangeid] )
DÓNDE origen =
VALOR SELECCIONADO ( 'PrimaryMarketTable ODflow'[PrimaryMarket] )
DÓNDE prueba =
CALCULAR (
[O QTY L4wks eliminó la ciudad de origen del flujo de OD dest],
TOPN (
5,
TODOSELECCIONADO ( 'OD CitytoCityOrigin'[PrimaryMarketDest] ),
[O QTY L4wks], DESC
),
VALORES ( 'OD CitytoCityOrigin'[PrimaryMarketdest] ),
FILTRO (
«FROM CitytoCityOrigin»,
'OD CitytoCityOrigin'[PrimaryMarketOrigin] = origen
)
)
DÓNDE Jim =
LOOKUPVALUE (
'OD CitytoCityOrigin'[PrimaryMarketDest],
'OD CitytoCityOrigin'[PrimaryMarketOrigin], origen,
prueba
)
DÓNDE Tercero =
CALCULAR (
VALORES ( 'OD CitytoCityOrigin'[PrimaryMarketDest] ),
FILTRO ( «FROM CitytoCityOrigin», Jim <> ESPACIO EN BLANCO () )
)
DÓNDE secondtake =
CALCULAR (
[O QTY L4wks eliminó la ciudad de origen del flujo de OD dest],
TOPN (
5,
TODOSELECCIONADO ( 'OD CitytoCityOrigin'[PrimaryMarketDest] ),
[O QTY L4wks eliminó la ciudad de origen de dest], DESC
),
VALORES ( 'OD CitytoCityOrigin'[PrimaryMarketdest] ),
FILTRO (
«FROM CitytoCityOrigin»,
'OD CitytoCityOrigin'[PrimaryMarketOrigin] EN Tercero
)
)
DEVOLUCIÓN
secondtake

Así que esto es lo que estoy tratando de hacer: basándome en una elección en una segmentación del nombre de una ciudad, quiero mapear esto con "Mapas de flujo", ignora que a menos que tengas una idea de esa visualización, si puedo hacer que esta medida funcione, estoy listo.

Lo que mis variables están tratando de hacer es construir la información para el mapa de flujo, por lo tanto, la salida debe contener la primera ciudad y las 5 ubicaciones principales a las que se enviaron los camiones, luego los datos deben filtrarse a donde el conjunto de datos principal "OD CitytoCityOrigin", donde la ciudad de origen ahora se filtra a las 5 ciudades de destino. Por lo tanto, el conjunto de datos final debe ser la ciudad seleccionada originalmente de PrimaryMarketOrigin + los 5 destinos principales como PrimaryMarketOrigin.


Variables

Bob = esto es solo una selección de daterangeid: 4 semanas de datos, 90 días o 52 semanas ... Funciona

Origin = Valor seleccionado en la segmentación de datos (la tabla de segmentación de datos no tiene conexión con OD CitytoCityOrigin - Solo estoy usando esto para hacer coincidir los nombres

Test = esto funciona y me muestra las 5 mejores ciudades de mi origen

jim = este es un intento de obtener de Probar la lista de ciudades de destino - Creo que funciona

tercero = un intento de obtener de la tabla principal los datos basados en mis ciudades de destino en Jim - no funcionó

Secondtake = otro intento de tercero

Los nombres anteriores de Third y Secondtake son en realidad mi 30º intento al menos, lo que tengo que hacer es principalmente obtener mi lista de ciudades de destino y limitar los datos de origen en función de los nombres de las ciudades que coinciden ... Esto tiene que ser una medida. Por favor ayuda.

si necesitas columnas de lo que estoy haciendo, básicamente podrías hacerlo con estas columnas:

DE CitytoCityOrigin
PrimaryMarketOrigin | PrimaryMarketDest | NumberstoSum | Modelos de camiones

Datos: City_State | City_State | #Números# | JH...


PrimaryMarketTable ODflow

Tabla separada sin relación: City_State

Por favor, ayuda a mi cordura y resuelve esto.

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

@jonathan_2000 ,

Debido a que no proporciona una captura de pantalla de los resultados que espera y datos de ejemplo desensibilizados, solo pude de acuerdo con sus descripciones dar algunas sugerencias, intente a continuación la fórmula dax, haga algunos ajustes de acuerdo con su medida:

O QTY OD FLOW =
VAR bob =
    SELECTEDVALUE ( DateRanges[daterangeid] )
VAR origin =
    SELECTEDVALUE ( 'PrimaryMarketTable ODflow'[PrimaryMarket] )
VAR test =
    CALCULATE (
        [O QTY L4wks removed origin city from dest OD flow],
        TOPN (
            5,
            ALLSELECTED ( 'OD CitytoCityOrigin'[PrimaryMarketDest] ),
            [O QTY L4wks removed origin city from dest OD flow], DESC
        ),
        VALUES ( 'OD CitytoCityOrigin'[PrimaryMarketdest] ),
        FILTER (
            ALL ( 'OD CitytoCityOrigin' ),
            'OD CitytoCityOrigin'[PrimaryMarketOrigin] = origin
        )
    )
VAR jim =
    LOOKUPVALUE (
        'OD CitytoCityOrigin'[PrimaryMarketDest],
        'OD CitytoCityOrigin'[PrimaryMarketOrigin], origin,
        test
    )
VAR third =
    CALCULATETABLE (
        VALUES ( 'OD CitytoCityOrigin'[PrimaryMarketDest] ),
        FILTER ( ALL ( 'OD CitytoCityOrigin' ), jim <> BLANK () )
    )
VAR secondtake =
    CALCULATE (
        [O QTY L4wks removed origin city from dest OD flow],
        TOPN (
            5,
            ALLSELECTED ( 'OD CitytoCityOrigin'[PrimaryMarketDest] ),
            [O QTY L4wks removed origin city from dest OD flow], DESC
        ),
        VALUES ( 'OD CitytoCityOrigin'[PrimaryMarketdest] ),
        FILTER (
            ALL ( 'OD CitytoCityOrigin' ),
            'OD CitytoCityOrigin'[PrimaryMarketOrigin] IN third
        )
    )
RETURN
    secondtake

Gracias por sus esfuerzos y tiempo de anticipación.

Saludos
Apoyo de la comunidad Team_Binbin Yu
Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

@amitchandak o @Greg_Deckler quieres probar esto? Solo por favor dígame cómo almacenar una variable, luego use esa tabla de múltiples valores como filtro en otra variable. Se puede hacer ¿verdad?

@jonathan_2000 Con respecto a su pregunta anterior, puede almacenar una variable y usarla como filtro en otra tabla como:

Measure =
  VAR __table = SELECTCOLUMNS('Table',"FilterColumn",[Column])
  VAR __filteredTable = FILTER('Table2',[Some Column] IN __table)

@Greg_Deckler puede ayudarme a entender por qué mi consulta actual no me proporciona datos en respuesta? He implementado lo que dijiste, pero todavía no está funcionando.

Esto es lo que estoy pensando que necesito "moverme" - es decir, todo en mi variable FilterDest está realmente relacionado con un solo PrimaryMarketOrigin - por lo tanto, cuando digo en Destcities "busque todo donde PrimaryMarketOrigin está en Filteredest" - lo que realmente está sucediendo es que DAX todavía está alineando PrimaryMarketOrigin a PrimaryMarketOrigin - LMK si esto es incorrecto y que al cambiar el nombre de esa columna en Filterdest (aquí cambio el nombre de PrimaryMarketDest a PrimaryMarketOrigin) - que al hacer eso tengo ¿Forzó a PowerBI a aceptar que la columna es PrimaryMarketOrigin?

Aquí está mi código: todo funciona excepto el último Var ... al final, mi Return será "Return Test1+Destcities", pero no puedo hacer que Destcities funcione. Avísame si necesitas que me burle de esto en un powerbi ... Sin embargo, no puedo compartir con ustedes mi archivo.

O QTY L4wks OD FLOW = 


VAR bob =
    SELECTEDVALUE ( DateRanges[daterangeid] )
VAR origin =
    SELECTEDVALUE ( 'PrimaryMarketTable ODflow'[PrimaryMarket] )

VAR test1 =
    CALCULATE (
        calculate([O QTY L4wks removed origin city from dest OD flow],FILTER (
            'OD CitytoCityOrigin' ,
            'OD CitytoCityOrigin'[PrimaryMarketOrigin] = origin && 'OD CitytoCityOrigin'[OriginQTY]>0
        )),
        TOPN (
           5,
            ALLSELECTED ( 'OD CitytoCityOrigin'[PrimaryMarketDest] ),
            [O QTY L4wks removed origin city from dest OD flow], DESC
        ),
        VALUES ( 'OD CitytoCityOrigin'[PrimaryMarketdest] ),
        FILTER (
         'OD CitytoCityOrigin' ,
            'OD CitytoCityOrigin'[PrimaryMarketOrigin] = origin && 'OD CitytoCityOrigin'[OriginQTY]>0   )
    )


var DestCitiestable = 
    CALCULATEtable (values('OD CitytoCityOrigin'[PrimaryMarketDest]),
        FILTER (
         'OD CitytoCityOrigin' ,
            test1<>BLANK())
    )

var summarizeDestTable = 
ADDCOLUMNS(
    SUMMARIZE(DestCitiestable,'OD CitytoCityOrigin'[PrimaryMarketDest],"PrimaryMarketOrigin",'OD CitytoCityOrigin'[PrimaryMarketDest]),"aColumn",1)

var filterdest = SELECTCOLUMNS(summarizeDestTable,"PrimaryMarketOrigin",[PrimaryMarketDest])



VAR destcities =

        calculate(
           calculate(sum('OD CitytoCityOrigin'[OriginQty]),allexcept(Equipment,Equipment[ProductCategory],Equipment[ProductModel]),filter('OD CitytoCityOrigin','OD CitytoCityOrigin'[DateRangeID]=bob&&'OD CitytoCityOrigin'[PrimaryMarketOrigin] in filterdest)),
        TOPN (
           5,
            ALLSELECTED ( 'OD CitytoCityOrigin'[PrimaryMarketDest] ),
          calculate(sum('OD CitytoCityOrigin'[OriginQty]),allexcept(Equipment,Equipment[ProductCategory],Equipment[ProductModel]),filter('OD CitytoCityOrigin','OD CitytoCityOrigin'[DateRangeID]=bob&&'OD CitytoCityOrigin'[PrimaryMarketOrigin] in filterdest)), DESC
        ))


RETURN
destcities

OK - todo esto funciona y me acerca - Var Filterdest devuelve las ciudades para las que quiero filtrar PrimarMarketOrigin, pero ese filtro no devuelve nada. Así que Var Destcities no devuelve nada.

O QTY L4wks OD FLOW = 


VAR bob =
    SELECTEDVALUE ( DateRanges[daterangeid] )
VAR origin =
    SELECTEDVALUE ( 'PrimaryMarketTable ODflow'[PrimaryMarket] )

VAR test1 =
    CALCULATE (
        calculate([O QTY L4wks removed origin city from dest OD flow],FILTER (
            'OD CitytoCityOrigin' ,
            'OD CitytoCityOrigin'[PrimaryMarketOrigin] = origin && 'OD CitytoCityOrigin'[OriginQTY]>0
        )),
        TOPN (
           10,
            ALLSELECTED ( 'OD CitytoCityOrigin'[PrimaryMarketDest] ),
            [O QTY L4wks removed origin city from dest OD flow], DESC
        ),
        VALUES ( 'OD CitytoCityOrigin'[PrimaryMarketdest] ),
        FILTER (
         'OD CitytoCityOrigin' ,
            'OD CitytoCityOrigin'[PrimaryMarketOrigin] = origin && 'OD CitytoCityOrigin'[OriginQTY]>0   )
    )


var DestCitiestable = 
    CALCULATEtable (values('OD CitytoCityOrigin'[PrimaryMarketDest]),
        FILTER (
         'OD CitytoCityOrigin' ,
            test1<>BLANK())
    )

var summarizeDestTable = 
ADDCOLUMNS(
    SUMMARIZE(DestCitiestable,'OD CitytoCityOrigin'[PrimaryMarketDest],"PrimaryMarketOrigin",'OD CitytoCityOrigin'[PrimaryMarketDest]),"aColumn",1)

var filterdest = CALCULATEtable(SELECTCOLUMNS('OD CitytoCityOrigin',"PrimaryMarketOrigin",selectedvalue('OD CitytoCityOrigin'[PrimaryMarketDest])),filter(summarizeDestTable,[PrimaryMarketOrigin]<>BLANK()))

VAR destcities =
    CALCULATE (
        calculate(
            [O QTY L4wks removed origin city from dest OD flow],
            FILTER (
            'OD CitytoCityOrigin',
            'OD CitytoCityOrigin'[PrimaryMarketOrigin] = filterdest && 'OD CitytoCityOrigin'[OriginQTY]>0
        )),
        TOPN (
           5,
            ALLSELECTED ( 'OD CitytoCityOrigin'[PrimaryMarketDest] ),
            [O QTY L4wks removed origin city from dest OD flow], DESC
        )
        ,
        FILTER (
         'OD CitytoCityOrigin' ,
            'OD CitytoCityOrigin'[PrimaryMarketOrigin] = filterdest
    ))


RETURN
destcities

todo lo demás parece funcionar...

Gracias por su respuesta, pero todavía no estoy allí. En tu publicación anterior arreglaste mi consulta (más o menos) - el Todo ( 'OD CitytoCityOrigin' ) - esto arruina las cosas ya que termina agarrando toda la tabla. Eliminé el Todo y de alguna manera funciona.

Aquí es donde estoy ahora: este error con "Se ha utilizado una función "MARCADOR de posición" en una expresión Verdadero / Falso que se usa como una expresión de filtro de tabla".

OK - TEST1 me da mis 10 mejores ciudades a las que enviamos camiones. Luego necesito combinar esa Prueba1 con esas 10 ciudades de destino ahora como origen.

Accroding to Dax Formatter - Esta consulta actualmente tiene un error de sintaxis, pero Power BI no la detecta, así que tal vez no. Se supone que ese error de sintaxis debe estar aquí:

var DestCitiestable = 
    CALCULATEtable ('OD CitytoCityOrigin',
        [O QTY L4wks removed origin city from dest OD flow],  <--- HERE before the comma
     TOPN (
           10,
            ALLSELECTED ( 'OD CitytoCityOrigin'[PrimaryMarketDest] ),
            [O QTY L4wks removed origin city from dest OD flow], DESC
        ),
        VALUES ( 'OD CitytoCityOrigin'[PrimaryMarketdest] ),
        FILTER (
         'OD CitytoCityOrigin' ,
            'OD CitytoCityOrigin'[PrimaryMarketOrigin] = origin && 'OD CitytoCityOrigin'[OriginQTY]>0   )
    )

Aquí está el código completo, esto no funciona - de nuevo, no estoy buscando que corrijas mi sintaxis, o hagas que esta consulta funcione - espero que puedas ayudarme a entender cómo hacer lo que estoy tratando de hacer en mis dos variables "SummarizeDestTable" y "Destcities" - aquí estoy tratando de limitar mi consulta Test1 original, aislarme en las ciudades de destino (solo las 10 principales) y usarlas dinámicamente como mi nueva selección de origen para extraer otro top 5 de esos orígenes.

Prefiero que me des el proceso, que volver a publicar mi código con ligeras mejoras.

Gracias

Jonathan

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.