The ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM.
Get registeredEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Hola en Power BI tengo una tabla con el identificador de columna y otras 6 columnas (1 o valores en blanco) necesito crear un segmentador que tenga las seis columnas dentro, por lo que cuando elijo un número de columnas, necesito ver las líneas en las que al menos una de estas columnas es 1, mientras que todas las demás columnas no seleccionadas deben estar en blanco, y cuando no elijo ninguna columna, debería ver la matriz original con todas las combinaciones posibles, filtrando así solo al elegir algunas columnas del cortador.
Actualmente estoy usando 6 cortadoras para lograr este objetivo, por ejemplo, en las capturas de pantalla adjuntas, he configurado 4 columnas de los 6 coulmns para vaciar, mientras que las otras dos columnas (SEDE y Installdate en el ex) con todas las opciones, por lo que ahora puedo ver todas las líneas de estas dos columnas con las diferentes combinaciones de empty y 1 .
Mi idea era tener un solo cortador con las seis columnas dentro y, por ejemplo, para lograr el resultado adjunto, solo tengo que falgar las dos columnas de este cortador. ¿Alguna sugerencia?
MI MESA FARMSNAP
MIS COLUMNAS (OS_X,DOMINIO_X,INSTALLDATE_X,SEDE_X,LOGICCPU_X,CORE_X)
Hola, @Hifni93
En función de su información, creo una tabla de ejemplo:
Cree una nueva consulta vacía en Power Query y escriba lo siguiente como lista de nombres de columna:
= {"OS_X","DOMINIO_X","INSTALLDATE_X","SEDE_X","LOGICCPU_X","CORE_X"}
Convierta esta lista en una tabla, haga clic en A tabla. Puede cambiar el nombre de la columna y el nombre de la tabla:
Seleccione Cerrar y aplicar. A continuación, cree una nueva medida:
Filter Logic =
VAR Selected = ALLSELECTED('Dimension Table'[Type])
VAR Logic =
IF(
COUNTROWS(Selected) > 0,
// At least one of the selected columns is 1, and all unselected columns are empty
(
( MAX('Table'[OS_X]) = 1 && "OS_X" IN Selected ) ||
( MAX('Table'[DOMINIO_X]) = 1 && "DOMINIO_X" IN Selected ) ||
( MAX('Table'[INSTALLDATE_X]) = 1 && "INSTALLDATE_X" IN Selected) ||
( MAX('Table'[LOGICCPU_X]) = 1 && "LOGICCPU_X" IN Selected) ||
( MAX('Table'[CORE_X]) = 1 && "CORE_X" IN Selected) ||
( MAX('Table'[SEDE_X]) = 1 && "SEDE_X" IN Selected)
)
&&
(
( MAX('Table'[OS_X]) = BLANK() || "OS_X" IN Selected ) &&
( MAX('Table'[DOMINIO_X]) = BLANK() || "DOMINIO_X" IN Selected ) &&
( MAX('Table'[INSTALLDATE_X]) = BLANK() || "INSTALLDATE_X" IN Selected) &&
( MAX('Table'[LOGICCPU_X]) = BLANK() || "LOGICCPU_X" IN Selected) &&
( MAX('Table'[CORE_X]) = BLANK() || "CORE_X" IN Selected) &&
( MAX('Table'[SEDE_X]) = BLANK() || "SEDE_X" IN Selected)
)
,
TRUE()
)
RETURN
IF(Logic = FALSE(), BLANK(), "True")
Cree una segmentación de datos que utilice el campo [Tipo] de la tabla de dimensiones recién creada como segmentación, lo que permite varias selecciones. Utilice las medidas anteriores como criterios de filtro para la tabla/matriz. Cuando se selecciona una segmentación, solo se muestran las filas con 1 en la columna seleccionada y las columnas vacías. Todos los datos se muestran cuando no se selecciona ninguna segmentación. Aquí está mi vista previa:
Cómo obtener respuestas rápidas a su pregunta
Saludos
Yongkang Hua
Si esta publicación ayuda, considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.
Bueno, su solución funcionó bien para la matriz deseada, pero ahora estoy tratando de construir otra matriz con el mismo filtro, esta vez quiero filtrar la por la suma de una fila, ahora estoy usando las 6 cortadoras para lograr este resultado, ¿puede ayudar con eso? Mire la pantalla para obtener el resultado deseado
Hola, @Hifni93
Con respecto al cálculo de sumas, sugiero que pueda considerar duplicar la tabla en Power Query y, a continuación, aplicar dinamización inversa a las columnas
Cree otra medida para calcular el total
TypeSum =
VAR selected = ALLSELECTED('Dimension Table'[Type])
RETURN
CALCULATE(SUM('Table (2)'[Value]), FILTER('Table (2)', 'Table (2)'[Attribute] IN selected))
Poner la medida en la matriz, aquí está mi vista previa:
Cómo obtener respuestas rápidas a su pregunta
Saludos
Yongkang Hua
Si esta publicación ayuda, considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.
Bueno, para la segunda matriz, lo que estaba tratando de hacer es ver el Por ejemplo, para cada (suma de atributos (1,2,3,4,5,6) ya que tenemos 6 atributos, la suma máxima que podemos tener es 6 para una sola línea) cuántas líneas para cada atributo, por ejemplo, al elegir dos columnas, espero que cada fila tenga una suma de 1 o 2, 1 reperesents las líneas donde solo una de las dos columnas tenía un valor y 2 cuando ambas tenían un valor, por lo que quería que en la matriz tuviera 1 en la primera línea y 2 en la segunda línea y debajo de cada una de las columnas elegidas para ver el número de líneas para el caso cuando solo se colocó la columna y el caso cuando ambas se destacaron y debería ser igual en este caso.
@Hifni93 , puede tener una tabla desconectada con valores 1 y 0. Y luego, en función del valor seleccionado, puede pasar y filtrar varias columnas.
countrows(filter(Tabla, Tabla[Columna1] en valores(dim[Valores) || Tabla[Columna2] en valores(dim[Valores) ))
Una opción más son los parámetros de campo en los valores de segmentación
Power BI: creación de segmentaciones dinámicas mediante parámetros de campo: https://youtu.be/H2ZxWaHAJZQ
https://medium.com/@amitchandak/power-bi-power-bi-create-dynamic-slicers-using-field-parameters-2025...