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

Tabla de filtrado predeterminada con valores nulos y cero: al hacer clic en "0" se enumeran todos los elementos 0 y nulos

Cómo replicar:

  1. Esto fue probado en la versión: 2.88.1144.0 64-bit (diciembre de 2020)
  2. Nuevo informe de escritorio de Power BI
  3. Introduzca los datos:
    1. 0
      1
      0
      1
  4. Editar: Después de introducir los datos, debería ver dos pasos, el paso Origen que introduce los datos y un paso Cambiar tipo que transforma el tipo de la columna de "texto" a "Int64". Esto es necesario para mis necesidades y para mostrar el problema a continuación.
  5. Transformar datos -> Agregar columna -> Columna de índice -> Cerrar y aplicar
  6. Cree una visualización Tabla, arrastre columna 1 a Valores para la tabla
  7. Menú desplegable Columna 1 y No resumir. Vuelva a bajar y haga clic en Mostrar elementos sin datos
  8. Arrastre la columna 1 a Valores para tabla por segunda vez. Cambie la segunda columna 1 a "Contar". Usted ve esto:
    1. Columna 1Recuento de la Columna 1
      02
      12

      Total

      4
  9. Observe cómo Count of Column one es correcto para el número de 0, dos. Tenga en cuenta también cómo el recuento no funciona para contar elementos nulos (la primera fila), lo que también proporciona un recuento total incorrecto, pero es una pregunta independiente.
  10. Cree una segunda visualización de tabla. Arrastre la columna 1 e inscótela a los valores. No hay resumen en ambos.
  11. Observe cómo PowerBI crea automáticamente una interacción de "Filtro" entre las dos tablas
  12. Haga clic en el 0 de la primera columna de la primera tabla.

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
01
05

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?

1 ACCEPTED SOLUTION

No hay @EvelynBI

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

zerocount.png

Pero si cuentas el número de espacios en blanco

BlankCount = CALCULATE(COUNTROWS('Table'), FILTER('Table',ISBLANK('Table'[Column1])))

el resultado es 4

blankcount.png

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.

tfc.png

Descargue mi PBIX si desea ver las medidas.

saludos

Phil

View solution in original post

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

@EvelynBI

Descargar archivo PBIX

Este no es el comportamiento que recibo. Cuando introduzlo los datos como usted describe, obtengo esta tabla

ev1.png

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

ev2.png

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".

No hay @EvelynBI

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

zerocount.png

Pero si cuentas el número de espacios en blanco

BlankCount = CALCULATE(COUNTROWS('Table'), FILTER('Table',ISBLANK('Table'[Column1])))

el resultado es 4

blankcount.png

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.

tfc.png

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.

Syndicate_Admin
Administrator
Administrator

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.

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.

Top Solution Authors