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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
Anonymous
Not applicable

valores en blanco con la relación

Hola a todos,

Tengo un conjunto de datos con 3 tablas:

Llamadas (que contienen información de llamadas y número de teléfono)
Line_num (número de teléfono, site_id)
Sitio (site_id, dirección del sitio)
y todas las relaciones funcionan bien, sin embargo, cuando trato de contar el número de llamadas agrupadas por dirección de sitio siempre tengo una fila en blanco contando el número de llamadas que no están asociadas a un sitio, quiero cambiar esta fila en blanco para mostrar "no disponible")

1 ACCEPTED SOLUTION

@amrashrafyw Esa solución funcionará, solo el problema potencial es que las uniones (o la combinación en el lenguaje Power Query) pueden ralentizar drásticamente el tiempo de actualización de la consulta en comparación con el uso de las relaciones. Sin embargo, esto no suele ser un problema, especialmente si puede establecer una actualización automática para que se cargue durante la noche.

Gran solución de problemas y contento de poder inspirar una solución para usted! Por favor, marque este post como resuelto para que otros puedan encontrar fácilmente la respuesta.

¡Salud!
Allison

Please @mention me in your reply if you want a response.

Copying DAX from this post? Click here for a hack to quickly replace it with your own table names

Has this post solved your problem? Please Accept as Solution so that others can find it quickly and to let the community know your problem has been solved.
If you found this post helpful, please give Kudos C

I work as a Microsoft trainer and consultant, specialising in Power BI and Power Query.
www.excelwithallison.com

View solution in original post

14 REPLIES 14
AllisonKennedy
Super User
Super User

@amrashrafyw

¿Qué columna se utiliza para relacionar la tabla de llamadas con la tabla de líneas? Agregue esto al objeto visual desde la tabla de llamadas.

¿Qué columna se utiliza para relacionar la tabla de líneas con la tabla de sitios? Agregue también esto al objeto visual desde la tabla de líneas.

Estos son de donde lo más probable es que los espacios en blanco provenan- el hecho de que esos valores son nulos o no existen en las tablas de línea o sitio. La forma correcta de corregir esto sería agregar un registro a la tabla de línea o sitio para estos valores. Si no conoce el sitio, puede agregar una línea a la tabla de sitio con una columna de identificador que sea nueva o única (como NA001) y un nombre de sitio de No disponible. A continuación, en Power Query, puede realizar un valor de reemplazo para cualquier null en la columna LineID de la tabla Call para buscar null y reemplazar por NA001 de modo que el nombre de sitio 'Unavailable' se extraiga en el informe en lugar de en blanco.

Please @mention me in your reply if you want a response.

Copying DAX from this post? Click here for a hack to quickly replace it with your own table names

Has this post solved your problem? Please Accept as Solution so that others can find it quickly and to let the community know your problem has been solved.
If you found this post helpful, please give Kudos C

I work as a Microsoft trainer and consultant, specialising in Power BI and Power Query.
www.excelwithallison.com

Anonymous
Not applicable

gracias por la respuesta,

en realidad la tabla Línea y sitio no tiene filas vacías o en blanco, la diferencia que viene de esa tabla principal que es tabla de llamadas tiene más registros que la tabla de línea/sitio que está bien conmigo, pero para aquellos que no coinciden con los valores que quiero mostrar como no disponibles.

así es como funciona la relación:

de la tabla de llamadas a la línea al sitio:

1- número de llamada a la línea.número

2.line.site_id-sitio. Site_Id

He creado esas relaciones mediante la pestaña relación que no combina ninguna tabla del editor de consultas.

@amrashrafyw

Por favor, vea esta captura de pantalla para lo que quiero decir. Usted necesitará fijar el Call.Number a 'no resumir' para que podamos ver dónde está el problema.

Como se puede ver en mi captura de pantalla a continuación, tengo un Call.Number 4 y 5 que no existen en mi tabla de línea, y que está causando algunos de los espacios en blanco. Si este es su problema, será más difícil de arreglar. Sin embargo, también tengo Call.Number en blanco que tampoco existen en mi tabla Line, y que uno es un poco más fácil de arreglar:blanks.png

¿De dónde se están sacando sus datos? ¿Está seguro de que Number es el campo coincidente correcto y que no hay un LineNumber en alguna parte de la tabla de llamadas?

Si el Call.number tiene valores null/blank/empty y ese es su problema, haga clic en Transformar datos para abrir el Editor de consultas, realice un valor de reemplazo para reemplazar null con un número que sepa que nunca se usará para ningún otro Line.Number (he elegido un número muy alto en mi ejemplo);

AllisonKennedy_0-1597183598573.png

A continuación, tendrá que hacer clic en Introducir datos para agregar una fila para la tabla Línea que dice

Line.NumberSiteID
10000001Sna

Anexe esta nueva consulta a la parte inferior de la tabla Línea. Haga clic con el botón derecho en esta nueva consulta y desmarque habilitar la carga.

Haga clic en Introducir datos para agregar una nueva fila para la tabla Sitio:

SiteIDSitio
SnaDesconocido

Anexe esta nueva consulta a la parte inferior de la tabla Site. Haga clic con el botón derecho en esta nueva consulta y desmarque habilitar la carga.

Haga clic en Cerrar y aplicar.

Sus datos deben actualizarse para mostrar el nombre del sitio como "Desconocido" o no disponible o lo que haya elegido escribir en la nueva tabla que anexe a la tabla Sitio como se puede ver en mi captura de pantalla anterior.

Esto se vuelve más difícil si realmente tiene Call.Number para cada llamada (como mi 4 y 5), ya que entonces necesitaría reemplazar todos esos números adicionales con algo que existe en la tabla Line.

Aunque no esté realizando la combinación en el editor de consultas, las relaciones siguen funcionando como hacer una combinación externa izquierda.

Su única otra opción sería simplemente filtrar la tabla para eliminar los espacios en blanco, pero esto no le dará un recuento preciso de todas las llamadas.

También puede votar por una idea similar o crear la suya propia aquí:

https://ideas.powerbi.com/ideas/idea/?ideaid=3a9d90d4-cf6e-46c8-9ebd-d7ca91f99d2d

Es una petición razonable.

La opción final (trampa) sería insertar un cuadro de texto en la parte superior del objeto visual de la tabla, pero esto realmente no es ideal y afectará a la interactividad del informe. También puede probar un botón Información que tiene una información sobre herramientas que muestra información sobre por qué el espacio en blanco está allí.

https://www.wiseowl.co.uk/blog/s2595/pop_ups.htm

Este artículo es muy antiguo, por lo que puede hacer mucho más ahora con botones, incluyendo tener un mensaje mostrado justo cuando el usuario pasa el ratón sobre el botón (ni siquiera tienen que hacer clic), pero este es un buen punto de partida:

http://www.victorrocca.com/using-bookmarks-to-show-hide-information-in-your-power-bi-report/


Please @mention me in your reply if you want a response.

Copying DAX from this post? Click here for a hack to quickly replace it with your own table names

Has this post solved your problem? Please Accept as Solution so that others can find it quickly and to let the community know your problem has been solved.
If you found this post helpful, please give Kudos C

I work as a Microsoft trainer and consultant, specialising in Power BI and Power Query.
www.excelwithallison.com

Anonymous
Not applicable

Hello Allison,

Many Many thanks for your detailed replay, I walked through your reply step by step for the 2 first solutions and yes they are doable if I'm using those 3 tables only, I'm using more than 7 tables in my data model for this report, however, I got an idea from your solution and it seems to be fine now.

I've joined the "call" table with "line" table using left join on "call.number=line.number" then I joined the site table on the new "Calls" merged query on "line.site_id=site.site_ID" which created null rows on the calls table, then I've replaced the null values with "Not available" and counting calls based on the call.number column group by new merged column "site.site_name"

for example

Call.Call numberLine.line numberSite.site_idSite.sitename
123123ABCSite 1
234nullnullnull
456456DEFsite 2
345nullnullnull


456 456 DEF site 2
then I replaced the null values from line and site table to be "Not available" and that worked!

please if you see anything issues in my solution keep me updated.

Thanks

@amrashrafyw Esa solución funcionará, solo el problema potencial es que las uniones (o la combinación en el lenguaje Power Query) pueden ralentizar drásticamente el tiempo de actualización de la consulta en comparación con el uso de las relaciones. Sin embargo, esto no suele ser un problema, especialmente si puede establecer una actualización automática para que se cargue durante la noche.

Gran solución de problemas y contento de poder inspirar una solución para usted! Por favor, marque este post como resuelto para que otros puedan encontrar fácilmente la respuesta.

¡Salud!
Allison

Please @mention me in your reply if you want a response.

Copying DAX from this post? Click here for a hack to quickly replace it with your own table names

Has this post solved your problem? Please Accept as Solution so that others can find it quickly and to let the community know your problem has been solved.
If you found this post helpful, please give Kudos C

I work as a Microsoft trainer and consultant, specialising in Power BI and Power Query.
www.excelwithallison.com

@amrashrafyw
Gracias por explicar los datos, esto es útil.

Sí, no esperaba ningún valor en blanco en las tablas de línea o sitio. ¿Cuál es el Call.number para los registros adicionales que están en la tabla de llamadas pero no en la tabla de líneas? Como ha dicho, está bien tener estos registros adicionales, pero si no los tiene en la tabla de líneas siempre se mostrará en blanco en el objeto visual. Actualmente no hay manera de cambiar lo que el 'en blanco' muestra como, por lo que necesita solucionar el problema en su origen. Esto significa que debe proporcionar un registro adicional en las tablas de línea y sitio que coincidirán con los registros adicionales de la tabla de llamadas.

Por favor, puede agregar call.number a su tabla visual antes del sitio (por lo que el pedido debe ser Número de llamadas, Call.Number, Sitio) y hágamelo saber si el Call.Number está en blanco o si tiene un montón de números diferentes, o simplemente un número para las filas donde el sitio está en blanco.

Please @mention me in your reply if you want a response.

Copying DAX from this post? Click here for a hack to quickly replace it with your own table names

Has this post solved your problem? Please Accept as Solution so that others can find it quickly and to let the community know your problem has been solved.
If you found this post helpful, please give Kudos C

I work as a Microsoft trainer and consultant, specialising in Power BI and Power Query.
www.excelwithallison.com

eso es lo que quise decir en el post. Disculpas

así que

Nombre del sitio de ID de sitio

1 sitio a

2 sitio b

3 sitio c

4 sitio d

id. de sitio de llamada

10300

24 1

235 2

35 3

35 4

esto es actualmente cómo funciona porque no hay registros en el Sitio contra la llamada

así que si realmente creas que se unen así

Nombre del sitio de ID de sitio

1 sitio a

2 sitio b

3 sitio c

4 sitio d

5 No hay sitio registrado

id. de sitio de llamada

10300 5

24 1

235 2

35 3

35 4

entonces siempre tendrá un registro contra la tabla de llamadas que agrupa a Ningún sitio registrado o lo que cualquier otra cosa que desea llamarlo

Esto es asuming que el sitio es una lista de sitios, no duplicados.

amitchandak
Super User
Super User

@amrashrafyw, esto viene debido a la unión correcta. significa que falta algún valor de sitio en la tabla maestra

de lo contrario crear una nueva columna como coalesce(Table[Site],"NA")

En la tabla poner clave de la tabla maestra y la tabla de hechos (1-M). Y comprobar si hay null en un lado y encontrar el desaparecido

Anonymous
Not applicable

He cansado tu solución y tengo la misma fila en blanco.


@amitchandak escribió:

En la tabla poner clave de la tabla maestra y la tabla de hechos (1-M). Y comprobar si hay null en un lado y encontrar el desaparecido


¿puedes por favor elaborar más?

DebbieE
Community Champion
Community Champion

Hola @amrashrafyw

Podrías probar algo como esto posiblemente con DAX

Ventas (NoBlanco) =Si( ISBLANK([Ventas]),"No disponible", [Ventas] )

No creo que sea recomendado aunque

https://docs.microsoft.com/en-us/power-bi/guidance/dax-avoid-converting-blank

nvprasad
Solution Sage
Solution Sage

Hola

Suponiendo que está utilizando measure para el recuento de cálculo y puede usar if condition para obtener la salida desensucionada.

Por ejemplo: IF( [CALL COUNT MEASURE] á BLANK(), "Not Available",[CALL COUNT MEASURE])

¡Aprecia un Kudos! 🙂
Si esto ayuda y resuelve el problema, por favor márquelo como una solución! 🙂

saludos
N V Durga Prasad

Anonymous
Not applicable

gracias por usted respuesta rápida, pero no hacer lo que estoy esperando, creo que no se trata del recuento de llamadas, se relaciona con la mesa "sitio"Screenshot_4.png

Calls (containing call information and phone number)

Site (site_id, site address)

 

So in this case, calls contains the metric for the report and site contains the information you want to filter the metric on. 

 

we have a left join and your visual is displaying information even when there is no connection to site?

 

One thing I might do it have another record in the site table for No site specifed. Basically a blank row and then join to the metrics table with the ID from Site to the ID in the calls table against the row that just default no site.

 

then there will always be a record of No site Specified or what ever you want to add into this default row

 

But I guess that is a fair bit of work to set up and there may be other work arounds

Anonymous
Not applicable

gracias por su respuesta rápida, sin embargo, no hacer lo que se esperaba como esta medida reemplazando el recuento con el valor "no ava", quiero reemplazar esa fila en blanco en la parte superior con "no ava"

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors