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.
Cómo replicar:
0 |
1 |
0 |
1 |
Columna 1 | Recuento de la Columna 1 |
0 | 2 |
1 | 2 |
Total | 4 |
Y aquí es donde está el problema. Hay dos ceros, pero al hacer clic en "0" en la primera columna de la primera tabla, la segunda tabla muestra seis elementos, los ceros y los valores NULL, como este:
Column 1 | Índice |
0 | |
2 | |
4 | |
6 | |
0 | 1 |
0 | 5 |
Tenga en cuenta que al hacer clic en la fila superior vacía de la primera tabla *does* trabajo, la segunda tabla solo mostrará los elementos nulos en ese caso. Pero al hacer clic en el 0 se muestra todo null y todos los elementos 0. Cuando tengo cientos de valores NULL y un cero este comportamiento es un problema. De alguna manera el recuento funciona en la primera tabla, sabe contar sólo 0's y no nulls, pero el filtro no hace esto, está equiparando 0 con nulls y mostrando datos que no se mueven con el recuento de 0.
¿Se espera este comportamiento? ¿Hay alguna solución trivial? ¿Es un error, y debo tomar este post y publicarlo en un foro de errores en lugar de este foro de ayuda?
Solved! Go to Solution.
Ah ok. Cuando inscribí los datos no creo que hicieran la conversión de tipo automático. No puedo recordarlo del todo.
El comportamiento que está viendo es que Blank está siendo tratado como 0, se puede leer más sobre esto aquí
Control de BLANK en DAX - SQLBI
Creé una medida para comprobar el recuento de ceros en la tabla
ZeroCount = CALCULATE(COUNTROWS('Table'), FILTER('Table','Table'[Column1]=0))
y el resultado es 6
Pero si cuentas el número de espacios en blanco
BlankCount = CALCULATE(COUNTROWS('Table'), FILTER('Table',ISBLANK('Table'[Column1])))
el resultado es 4
Al filtrar por el valor 0, los espacios en blanco se vuelven/tratan como 0 para que vea todas las filas de la tabla que son 0 o en blanco.
Cuando filtra en blanco, solo se ve en blanco. 0 no se trata como En blanco.
Y, por supuesto, cuando filtras para 1 sólo ves 1.
Además, si convierte la columna de valores que contiene los espacios en blanco/1/0 a True/False, Blank y 0 se convierten en False y 1 en True.
Descargue mi PBIX si desea ver las medidas.
saludos
Phil
Este no es el comportamiento que recibo. Cuando introduzlo los datos como usted describe, obtengo esta tabla
Así que puede ver que las filas en blanco se cuentan correctamente - y el total también es correcto.
Su punto 9. - Eso es lo que hace PBI. La interacción del filtro entre tablas se basa en el comportamiento. Se supone que tiene que hacer eso.
10. Cuando hago clic en 0 en la primera tabla, la 2a tabla se filtra correctamente
Así que para mí todo funciona como debería. Estoy usando la versión Dec 2020 de PBI Desktop. ¿Qué versión está utilizando?
Compruebe mi archivo PBIX vinculado a arriba y ver si funciona como he descriptido.
saludos
Phil
Gracias por la respuesta, Phil. Puse en el paso 9 porque la interacción del filtro es necesaria para lo que quería mostrar, sólo quería hacer explícito que la prueba requiere el filtro en caso de que alguien prueba de una manera diferente y no configura la interacción del filtro.
También estoy en la versión de diciembre de 2020 y su pbix funciona, pero esto es porque su tipo de columna es "texto". Cuando creé la tabla, no sólo tenía el paso Origen para colocar los datos, sino que también realizaba automáticamente un paso "Cambiar tipo", . Con este paso adicional, debe tener en cuenta que los elementos "vacíos" para el tipo de datos Text se convierten en la palabra clave null en cursiva para el tipo de datos Int64. Editaré la publicación original para indicar que el tipo debe ser Int64 (o probablemente cualquier tipo numérico) para que este problema aparezca. En mi conjunto de datos real me estoy metiendo en este problema con columnas numéricas que aceptan valores NULL y no columnas de "texto".
Ah ok. Cuando inscribí los datos no creo que hicieran la conversión de tipo automático. No puedo recordarlo del todo.
El comportamiento que está viendo es que Blank está siendo tratado como 0, se puede leer más sobre esto aquí
Control de BLANK en DAX - SQLBI
Creé una medida para comprobar el recuento de ceros en la tabla
ZeroCount = CALCULATE(COUNTROWS('Table'), FILTER('Table','Table'[Column1]=0))
y el resultado es 6
Pero si cuentas el número de espacios en blanco
BlankCount = CALCULATE(COUNTROWS('Table'), FILTER('Table',ISBLANK('Table'[Column1])))
el resultado es 4
Al filtrar por el valor 0, los espacios en blanco se vuelven/tratan como 0 para que vea todas las filas de la tabla que son 0 o en blanco.
Cuando filtra en blanco, solo se ve en blanco. 0 no se trata como En blanco.
Y, por supuesto, cuando filtras para 1 sólo ves 1.
Además, si convierte la columna de valores que contiene los espacios en blanco/1/0 a True/False, Blank y 0 se convierten en False y 1 en True.
Descargue mi PBIX si desea ver las medidas.
saludos
Phil
> Al filtrar el valor 0, los espacios en blanco se convierten o tratan como 0 para que vea todas las filas de la tabla que son 0 o En blanco.
Sí, ese es el problema, encontré un post más antiguo donde alguien declaró que es por diseño y no va a cambiar.
Ahora estoy usando COUNTROWS en lugar del resumen de recuento integrado y esto cuenta correctamente los espacios en blanco separados de 0, pero el problema indicado en esta pregunta sigue ahí, una visualización muestra que tengo dos 0, sin embargo, cuando hago clic en esa fila para ver todas las filas con ceros la otra tabla muestra ceros y espacios en blanco. No hay solución de esto, solo hay trabajo alrededor de él porque la implementación subyacente para el filtrado cruzado usa reglas diferentes de cómo la tabla muestra los recuentos y Microsoft ha dicho que la implementación subyacente es por diseño.
Para continuar con mi despotricación, volveré a indicar que una visualización muestra un conjunto de datos y que el filtrado de esos datos da como resultado un conjunto diferente de datos en otras visualizaciones. En blanco/nulo no es lo mismo que 0. Como programadores que usan tipos que aceptan valores NULL, como Power BI pretende admitir, estamos acostumbrados a establecer las cosas en null independientemente de establecer las cosas en 0. Por ejemplo, si estoy leyendo datos de temperatura cada segundo durante todo un día usando una sonda que solo produce salidas enteras debido a que sólo es preciso a +/- un grado, codificaría mi programa de tal manera que produce "0" cuando la temperatura es 0 grados, y produciría "null" cuando el sondeo no estaba funcionando por alguna razón. Power BI no me deja ver cuando todas las veces la temperatura era 0, simplemente no funciona cuando hay datos nulos. Tengo que filtrar manualmente usando soluciones alternativas cuando tengo 86,400 puntos de datos durante un período de 24 horas y sondas defectuosas que producen 10.000 nulls cada día. 0 no significa false para los datos de temperatura, no voy a cambiar los tipos de datos para manejar este problema. Si Power BI afirma admitir valores NULL, los voy a usar. Si Power BI NO admitiera tipos enteros que aceptan valores NULL, entonces sí me vería obligado a usar valores centinela, "una temperatura de -300 grados fue cuando el sondeo no funcionaba", ahora todos mis gráficos de barras tienen que ser ajustados porque se extienden hasta -300 grados, sin embargo, cuando hay datos nulos, simplemente ignoran correctamente los datos nulos y no hay trabajo adicional para mí.
El filtrado manual es una solución alternativa, el problema subyacente existe si hago un filtro de solo página independiente para ocultar todos los espacios en blanco o no. Tengo que dar a los usuarios finales explicaciones largas sobre por qué hay una tabla que muestra los recuentos separados para los datos nulos de los datos 0, pero que no pueden hacer lo natural de hacer clic en la fila 0 para obtener una lista de todos los 0. "Oh, si quieres ver los datos 0 tienes que deshacerte de todos los datos en blanco primero a través de un filtro de página separado. Sí, sé que el tablero funciona de una manera en todos los demás casos, pero a veces equivale a 0 y espacios en blanco (no cuando está contando, sin embargo!), así que aquí están todas las instrucciones sobre cómo solucionar eso".
La aclaración más simple que Microsoft podría hacer es que el filtro resalte las filas 0 y nulas cuando vaya a filtrar en 0, entonces el usuario final puede ver, "oh no puedo filtrar en sólo 0, puedo ver que porque cuando hago clic en la fila 0 se resaltan las filas 0 y nulas". En su lugar, obtenemos información falsa, la fila 0 se resalta y la fila nula permanece atenuada, por lo que uno piensa que ahora se han filtrado a todos los 0 y no a los espacios en blanco, pero eso es desinformación.
Es más que probable que este sea el comportamiento esperado. Power BI agregará todo lo que permita ("No resumir" tiene un significado ligeramente diferente, ya que solo se aplica a las columnas numéricas)
Por #6 hacer un recuento de índice en lugar de recuento de columna1
Por #10, querrá hacer referencia a la forma en que los valores (en blanco) se mezclan en objetos visuales en ausencia de relaciones/uniones.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |