Tabla virtual de LuckyTemplates | 5 consejos y trucos para la depuración

La tabla virtual de LuckyTemplates es mi tema DAX favorito personal. Son la clave para desbloquear todo el poder de DAX. Las tablas virtuales son el único tipo de tablas dentro de LuckyTemplates que son completamente dinámicas y existen problemas que solo se pueden resolver aplicando técnicas de tablas virtuales dentro de sus medidas. Puedes ver el video completo de este tutorial en la parte inferior de este blog.

En este tutorial, voy a compartir mis 5 mejores consejos y trucos que he acumulado a lo largo de los años y que realmente me han ayudado a comprender y depurar lo que sucede en las tablas virtuales de Power Bi.

El ejemplo que voy a analizar hoy es del y proviene de un miembro llamado Dave C, que trabaja en seguridad industrial. Dave tenía una serie de puntajes de seguridad y quería normalizarlos para que el puntaje máximo fuera 10, y luego presentar dinámicamente el enésimo en esa lista.

Tabla virtual de LuckyTemplates |  5 consejos y trucos para la depuración

Inicialmente, pensamos en hacer esto a través de una medida simple , pero luego nos dimos cuenta de que muchos de sus valores normalizados tienen vínculos. Por ejemplo, si desea el séptimo elemento de la lista, no habrá un número siete en un RANKX. No hay una manera fácil de sacar eso de una condición de filtro. Así que decidimos una medida basada en para que siempre contara hacia atrás el número n.

Esto es similar a cuando estás sacando la séptima carta de una baraja, cuentas siete cartas y luego volteas esa pila de siete, y la carta en la parte inferior es la que quieres. Vamos a hacer el equivalente de eso en una medida TOPN.

Tabla de contenido

Sugerencia n.º 1: use una herramienta externa para visualizar su tabla virtual de LuckyTemplates

Puede usar DAX Studio o Tabular Editor. En este ejemplo, estoy usando Tabular Editor 3 (TE3). Es técnicamente posible hacer esto usando la pestaña Modelado - Nueva tabla, pero eso va a crear tablas físicas dentro de su modelo de datos. Vas a tener que alternar manualmente entre eso y el editor y es solo una forma lenta y difícil de hacerlo.

Cuando vea la forma dinámica en que se puede hacer a través de una herramienta externa, verá el beneficio.

Entonces, dentro del TE3, creamos una nueva consulta DAX. Podemos tomar nuestra medida inicial y copiarla en nuestra consulta DAX.

Tabla virtual de LuckyTemplates |  5 consejos y trucos para la depuración

Si recuerda, las consultas DAX siempre comienzan con EVALUATE . Vamos a recibir un error inicialmente porque las consultas DAX devuelven tablas . Esta fue una medida con las dos últimas variables que son escalares. Lo que podemos hacer aquí es cambiar el valor de retorno , que es mi siguiente consejo.

Tabla virtual de LuckyTemplates |  5 consejos y trucos para la depuración

Sugerencia n.º 2: depure su tabla virtual de LuckyTemplates en partes usando variables

Puede depurar tablas virtuales de la misma manera que lo hace con las medidas: pieza por pieza, cambiando el valor de retorno. Comencemos con la primera tabla virtual, la vEvalTable . Simplemente reemplazamos el valor de RETORNO (Final) con nuestra primera variable (VAR). Y puede ver que el error desaparece porque la consulta DAX ahora está obteniendo una tabla.

Tabla virtual de LuckyTemplates |  5 consejos y trucos para la depuración

En vEvalTable, estamos tomando los datos originales, que son los puntajes de seguridad, y los estamos normalizando y agregando esa columna de valor normalizado a la tabla virtual. Tenemos el índice, el valor de la región y el valor normalizado. Podemos ordenar estos valores hacia arriba o hacia abajo y filtrar los valores también.

Tabla virtual de LuckyTemplates |  5 consejos y trucos para la depuración

Esto nos está dando exactamente lo que esperábamos. Devuelve 50 filas, que es el conjunto de datos completo. Todo va bien, así que bajemos y exploremos la siguiente tabla, que es vTableTopN . En esta tabla, estamos tomando TOPN usando el valor del control deslizante del elemento n. En este ejemplo, tenemos ese séptimo valor de la tabla virtual anterior (vEvalTable), y estamos tomando ese TOPN en función del valor normalizado en orden descendente.

Entonces, cuando cambiamos nuestra función RETURN a eso, se cae y no obtenemos nada. Echemos un vistazo a por qué, porque este es un concepto realmente importante para depurar y comprender las tablas virtuales.

Tabla virtual de LuckyTemplates |  5 consejos y trucos para la depuración

Si observamos la fórmula, tenemos el valor del control deslizante del elemento N como el principal sospechoso aquí. Volviendo a LuckyTemplates, podemos ver que esto es básicamente solo cosechar el número siete. Tenga en cuenta que los controles deslizantes existen dentro del contexto de una página .

Entonces, en este caso, cuando buscamos depurar esa tabla fuera de contexto, ese valor seleccionado no tiene contexto a su alrededor . No tiene nada en términos de poder sacar ese número. Estábamos obteniendo un TOPN, pero no sabemos cuál es la N en TOPN porque ese valor seleccionado devuelve un espacio en blanco.

¿Cómo manejamos eso? Veamos la medida de valor seleccionada. La mayoría de las veces, siempre prestamos atención al primer parámetro en , pero hay un segundo parámetro, que es una alternativa. Esto nos lleva a mi tercer consejo.

Sugerencia n.º 3: use el parámetro alternativo en SELECTEDVALUE

Lo que sucedió aquí es que ha estado sacando el espacio en blanco como suplente. Pero lo que queremos hacer (para propósitos de depuración) es que queremos poner un valor real aquí . Entonces, ponemos el número 7 y guardamos eso.

Tabla virtual de LuckyTemplates |  5 consejos y trucos para la depuración

Ahora tenemos algunos valores. Está devolviendo siete filas, que es exactamente lo que debería debido a ese valor TOPN de siete.

Tabla virtual de LuckyTemplates |  5 consejos y trucos para la depuración

Continuemos por la línea hasta la siguiente tabla virtual, que es vTableNthItem . Tenemos esa pila de siete cartas, y esta mesa básicamente está volteándola. Estábamos en orden descendente en la tabla anterior y ahora estamos en orden ascendente.

Si tomamos y copiamos esto en la sección RETORNO, obtenemos los resultados. Es interesante que no devuelva una fila. Está devolviendo tres filas porque estas tres están empatadas. Esa es exactamente la razón por la que usamos TOPN en lugar de RANKX, en este caso.

Tabla virtual de LuckyTemplates |  5 consejos y trucos para la depuración

Ahora vamos a Result . Si copiamos el resultado del VAR en la sección RETORNO, esto llega a mi cuarto consejo.

Consejo n.º 4: use { } para convertir escalares en tablas

Dentro de la fórmula, tomamos el máximo ( ) de ese vTableNthItem y devolvemos el valor normalizado. Esto podría ser , podría ser , podría ser . Es solo un agregador que devuelve ese valor en esa tabla. Entonces, si copiamos esto, nos dará un error porque ahora es un escalar.

Tabla virtual de LuckyTemplates |  5 consejos y trucos para la depuración

Pero este es mi cuarto consejo, que está en el contexto de la depuración. Lo que puede hacer es simplemente agregar los corchetes . Al hacerlo, convierte ese escalar en una tabla.

Tabla virtual de LuckyTemplates |  5 consejos y trucos para la depuración

Y luego, lo que tenemos aquí es solo una verificación de error final, que es si resulta que la tabla de evaluación es más pequeña que el número de filas, devolverá datos insuficientes. Pero sabemos que en este caso nuestro conjunto de datos es lo suficientemente grande. Sin embargo, podemos probarlo escribiendo Final . Nuevamente, debido a que es un escalador, también necesitamos los corchetes y obtenemos el mismo valor aquí.

Tabla virtual de LuckyTemplates |  5 consejos y trucos para la depuración

Hemos profundizado y depurado esta tabla virtual, y hemos usado el valor alternativo en SELECTEDVALUE para evitar que se salga de contexto. Ahora solo quiero mostrarles un consejo adicional que encontré realmente útil.

Consejo #5: Use CONCATENATEX/UNICHAR para convertir una tabla en un escalar

En el contexto de la depuración, querrá ver en LuckyTemplates cómo se ve esa tabla. La regla general es que una medida solo puede devolver un escalar, no una tabla. Pero, hay un truco que les voy a mostrar que le permite casi devolver una mesa.

Echemos un vistazo a esta medida, que es la Tabla virtual visualizada , y aquí tenemos todas las tablas virtuales que teníamos inicialmente. Por ejemplo, queremos mostrar, digamos en la primera página del informe, el vTableTopN.

Tabla virtual de LuckyTemplates |  5 consejos y trucos para la depuración

Puede utilizar esta función . De hecho, puede tomar ese nombre de tabla virtual (vTableTopN) y tomar los valores en esa tabla y concatenarlos. Puede crear algo que básicamente se parece a una mesa virtual.

Tabla virtual de LuckyTemplates |  5 consejos y trucos para la depuración

Si tomamos esta medida, debemos volver a LuckyTemplates y colocarla en una medida de tarjeta. Por lo general, la tabla da un error, pero a través de CONCATENATEX, convirtió esa tabla en un escalador. Puede ver que es bastante primitivo, pero devuelve exactamente lo que esperamos y lo hace de forma dinámica.

Tabla virtual de LuckyTemplates |  5 consejos y trucos para la depuración

Es una forma de llevar una tabla a una medida y mostrarla en su informe. Es un truco de depuración realmente útil. Proporcionará un buen formato en un valor de tarjeta que puede usar en un informe.


Tablas virtuales maestras en LuckyTemplates usando
tablas virtuales DAX dentro de funciones de iteración en LuckyTemplates:
tablas de conceptos DAX en LuckyTemplates: tipos y distinciones

Conclusión

Con suerte, este tutorial le dará algo de reflexión en términos de trabajar con una tabla virtual de LuckyTemplates. Estos son algunos consejos y trucos adicionales para comprender lo que sucede dentro de sus mesas virtuales. Espero que hayas encontrado eso útil.

Visite nuestro sitio web para obtener más tutoriales de LuckyTemplates y consulte los enlaces a continuación para obtener más contenido relacionado.

¡Mis mejores deseos!

Leave a Comment

Time Intelligence en LuckyTemplates: cómo calcular el número de transacciones realizadas en los últimos N días

Time Intelligence en LuckyTemplates: cómo calcular el número de transacciones realizadas en los últimos N días

Descubra cómo calcular el total de transacciones realizadas en los últimos N días y obtenga información útil utilizando la inteligencia de tiempo en LuckyTemplates.

Cómo evaluar clústeres en sus datos mediante la técnica DAX en LuckyTemplates

Cómo evaluar clústeres en sus datos mediante la técnica DAX en LuckyTemplates

En este tutorial, demuestro cómo mostrar clústeres en sus datos permite extraer información valiosa usando técnicas DAX avanzadas.

¿Cuánto personal tenemos actualmente? Lógica de fechas múltiples en LuckyTemplates usando DAX

¿Cuánto personal tenemos actualmente? Lógica de fechas múltiples en LuckyTemplates usando DAX

En este tutorial, aprenderá a calcular la <strong>población actual del personal</strong> para las relaciones múltiples de la tabla de calendario mediante la función COUNTROWS y FILTER en LuckyTemplates.

Hacer una solicitud HTTP en Power Automate

Hacer una solicitud HTTP en Power Automate

Aprenda a crear una solicitud HTTP con Power Automate y cómo implementar soluciones efectivas para la automatización de tareas.

Programe un flujo de escritorio para que se ejecute en Power Automate

Programe un flujo de escritorio para que se ejecute en Power Automate

En este tutorial, aprenda cómo programar un flujo de escritorio en Power Automate para automatizar tareas en la web y su escritorio.

Power Automate Terminar Control de acción en flujos

Power Automate Terminar Control de acción en flujos

Aprenda a usar correctamente el control Terminar acción de Power Automate que termina las acciones en un flujo si no se cumple alguna de las condiciones.

Power Query: combinar archivos de varias carpetas

Power Query: combinar archivos de varias carpetas

Aprenda a combinar archivos de varias carpetas en su red, escritorio, OneDrive o SharePoint utilizando Power Query.

Tipos de flujo de Power Automate y cuándo usarlos

Tipos de flujo de Power Automate y cuándo usarlos

En este blog, analizamos las similitudes y diferencias entre los tipos de flujo de Power Automate y determinamos cuándo usar cada flujo. Encuentra la mejor opción de automatización.

Conectores de Power Automate: número, texto y fecha y hora

Conectores de Power Automate: número, texto y fecha y hora

Familiarízate con algunos conectores Power Automate integrados que transforman cadenas en otro formato: número, texto y fecha y hora.

Tutorial del analizador VertiPaq: relaciones e integridad referencial

Tutorial del analizador VertiPaq: relaciones e integridad referencial

Este tutorial detallado sobre el analizador VertiPaq en DAX Studio le enseñará cómo usar la pestaña Relaciones para optimizar su DAX y resolver problemas de integridad referencial.