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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Buscar una solución alternativa a "SELECTEDVALUE devuelve Blank cuando existen varios valores"

He usado el parámetro de campo para crear una segmentación de datos y he creado una lista de los valores de la segmentación de datos para controlar varias selecciones.

Tengo 2 columnas de rama. Home_Branch puede prestar remolques a DVIR Branch. Mi objetivo es devolver una sola columna en función de la rama de la segmentación de datos que se haya seleccionado.

Estoy usando la función SWITCH DAX para alternar entre las dos columnas en función de los criterios de SEARCH. Todo parece funcionar según lo previsto, excepto cuando selecciono la cortadora "DVIR Branch", aparecen espacios en blanco donde existen varios valores. Para su información, el remolque tiene 1 sucursal principal, pero puede tener varias sucursales DVIR.

Medir:

Ubicación de la sucursal =
FUERON SearchHomeBranch (SearchHomeBranch) = BUSCAR("Sucursal de origen",[SlicerListValues],,0)
FUERON BuscarDVIRBranch = BUSCAR("Sucursal DVIR",[SlicerListValues],,0)
DEVOLUCIÓN
INTERRUPTOR(
Verdadero(),
SearchHomeBranch (SearchHomeBranch) = 1, SELECTEDVALUE(dimTrailer[Home_Branch]),
BuscarDVIRBranch = 1, SELECTEDVALUE(dimTrailer[Sucursal DVIR]),
SELECTEDVALUE(dimTrailer[Home_Branch])
)
Resultados reales
Actual Results.PNG

Resultados esperados
Expected Results.PNG

Esquema de estrella
StarSchema.PNG

Tabla de dimensiones:
JoinID (ID de unión)Número de unidad ASPTankSpecHome_BranchHome_RegionSucursal DVIRRegión DVIR
A117|Jeffersonville|JeffersonvilleA117AMONIACO AQUAJeffersonvilleNorteJeffersonvilleNorte
A117|Jeffersonville|RiverdaleA117AMONIACO AQUAJeffersonvilleNorteRiverdaleNorte
A117|Jeffersonville|S San PabloA117AMONIACO AQUAJeffersonvilleNorteS San PabloNorte
Tabla de hechos:
JoinID (ID de unión)FechaNúmero de unidad ASPNombre de rama ASPRegión ASPSucursal DVIRRegión DVIRTankSpec
A117|Jeffersonville|S San Pablo11/1/2023 0:00A117JeffersonvilleNorteS San PabloNorteAMONIACO AQUA
A117|Jeffersonville|Riverdale11/12/2023 0:00A117JeffersonvilleNorteRiverdaleNorteAMONIACO AQUA
A117|Jeffersonville|Jeffersonville11/16/2023 0:00A117JeffersonvilleNorteJeffersonvilleNorteAMONIACO AQUA
1 ACCEPTED SOLUTION

Solución resuelta:

Gracias VahidDM. Pude resolverlo adoptando un enfoque diferente. Creé otra segmentación de parámetros de campo y la agregué a la tabla del gráfico. A continuación, sincronizé las segmentaciones de datos en la misma página. La nueva segmentación de datos no será visible. Ahora, cuando seleccione DVIR Branch, solo aparecerá esa columna en la tabla del gráfico.

Resultado:

Expected Results_v3.PNG

View solution in original post

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

Gracias VahidDM por la rápida respuesta. Había probado algo similar a su solución y noté que no asociaba las horas correspondientes para cada sucursal. Solo muestra la suma de los 3 (vea la captura de pantalla a continuación). ¿Hay alguna manera de hacer que aparezcan los valores numéricos para cada rama?
Para su información, puedo reemplazar el delimitador "," con UNICHAR(10) para insertar una nueva línea entre cada cadena Expected Results_v1.PNGpara que los datos fluyan verticalmente en lugar de horizontalmente.

Eh

¿Podría enviar una imagen de la salida que está buscando?

Vahid

Expected Results_v2.PNG
Tabla de hechos : olvidé incluir las horas en la versión anterior.

JoinID (ID de unión)FechaNúmero de unidad ASPNombre de rama ASPRegión ASPSucursal DVIRRegión DVIRTankSpecHoras de uso
A117|Jeffersonville|Jeffersonville1/1/2023 0:00A117JeffersonvilleNorteJeffersonvilleNorteAMONIACO AQUA99
A117|Jeffersonville|Riverdale2/1/2023 0:00A117JeffersonvilleNorteRiverdaleNorteAMONIACO AQUA1246
A117|Jeffersonville|S San Pablo11/8/2023 0:00A117JeffersonvilleNorteS San PabloNorteAMONIACO AQUA578

Bueno, puedes usar la tabla con esas columnas de rama y una medida para calcularla.

Igual que en tu post anterior

Bien

Vahid

Solución resuelta:

Gracias VahidDM. Pude resolverlo adoptando un enfoque diferente. Creé otra segmentación de parámetros de campo y la agregué a la tabla del gráfico. A continuación, sincronizé las segmentaciones de datos en la misma página. La nueva segmentación de datos no será visible. Ahora, cuando seleccione DVIR Branch, solo aparecerá esa columna en la tabla del gráfico.

Resultado:

Expected Results_v3.PNG

Syndicate_Admin
Administrator
Administrator

Hola @mtkyle

El desafío al que se enfrenta se debe a la naturaleza de la función SELECTEDVALUE en DAX, que devuelve un espacio en blanco cuando hay varios valores seleccionados. En su escenario, cuando se seleccionan varias bifurcaciones DVIR, SELECTEDVALUE(dimTrailer[DVIR Branch]) da como resultado un espacio en blanco porque está diseñado para devolver un solo valor o un espacio en blanco si hay más de uno.

Para solucionar este problema, puede usar un enfoque alternativo que cree una cadena concatenada de todos los valores seleccionados cuando hay varios valores presentes. Esto se puede hacer utilizando la función CONCATENATEX, que le permite crear una cadena delimitada de los valores.

A continuación, le indicamos cómo puede modificar su medida:

Branch Location =

VAR SearchHomeBranch = SEARCH("Home Branch",[SlicerListValues],,0)
VAR SearchDVIRBranch = SEARCH("DVIR Branch",[SlicerListValues],,0)

RETURN
SWITCH(
    TRUE(),
    SearchHomeBranch = 1, SELECTEDVALUE(dimTrailer[Home_Branch], "Multiple Home Branches"),
    SearchDVIRBranch = 1, IF(HASONEVALUE(dimTrailer[DVIR Branch]), 
                               SELECTEDVALUE(dimTrailer[DVIR Branch]), 
                               CONCATENATEX(VALUES(dimTrailer[DVIR Branch]), dimTrailer[DVIR Branch], ", ")),
    SELECTEDVALUE(dimTrailer[Home_Branch], "Multiple Home Branches")
)

Explicación:

  • Cuando se selecciona "Home Branch" y si solo hay un valor, SELECTEDVALUE(dimTrailer[Home_Branch]) devolverá ese valor. Si hay varios valores, devolverá "Múltiples ramas de inicio".
  • Cuando se selecciona "DVIR Branch", la función IF comprueba si solo hay un valor que usa HASONEVALUE. Si es true, devuelve ese único valor. Si es false (lo que significa que se seleccionan varios valores), se utiliza CONCATENATEX para crear una cadena que enumere todas las ramas DVIR seleccionadas, separadas por comas.
  • Si ninguna de las dos condiciones es verdadera, el valor predeterminado es SELECTEDVALUE(dimTrailer[Home_Branch], "Multiple Home Branches").

Si esta publicación ayuda, considere aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

¡Agradezco sus felicitaciones!

LinkedIn | Twitter | Blog | Youtube

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

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

MayPowerBICarousel

Fabric Monthly Update - May 2024

Check out the May 2024 Fabric update to learn about new features.

LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

Top Solution Authors