Advance your Data & AI career with 50 days of live learning, dataviz contests, hands-on challenges, study groups & certifications and more!
Get registeredGet Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now
Tengo un informe como el siguiente en el que muestro la tasa de conversión de los clientes potenciales de marketing a los contactos de marketing.
Para cada canal de marketing (Televisión, Facebook, Instagram, Radio, Correo electrónico, SMS (Mensaje de texto), la primera columna muestra la tasa de conversión para el período anterior y la segunda columna muestra la tasa de conversión para el período seleccionado.
Mi requisito es mostrar el cambio porcentual del primer período al segundo período. El cambio porcentual debe calcularse como (Ratio de conversión - Ratio de conversión en el período anterior) / (Ratio de conversión en el período anterior).
¿Es posible que de alguna manera muestre esto en el gráfico de columnas? No necesariamente tiene que parecerse a las cartas, solo una forma de indicar el valor.
Solo busco evitar tener que colocar imágenes de tarjetas separadas, ya que esto a veces puede convertirse en un problema con el desplazamiento o el zoom de página.
ARCHIVO DE EJEMPLO DE Power BI
Solved! Go to Solution.
Una forma de controlar esto es usar un gráfico de líneas y columnas agrupadas.
Con este método, la línea en sí se oculta, pero las etiquetas de datos se establecen en el cambio porcentual en la tasa de conversión.
He adjuntado un ejemplo que hice con su PBIX.
1. Crear medida Ratio de conversión de un periodo a otro % de cambio
Conversion ratio period-on-period % change =
VAR CurrentConversionRatio =
[Conversion ratio (%)]
VAR PreviousConversionRatio =
[Conversion ratio in previous period (%)]
RETURN
DIVIDE (
CurrentConversionRatio - PreviousConversionRatio,
PreviousConversionRatio
)
2. Cree una medida que defina dónde deben colocarse las etiquetas. Creé dos versiones:
Line position above =
VAR Scale = 1.2
VAR CurrentConversionRatio = [Conversion ratio (%)]
VAR PreviousConversionRatio =
[Conversion ratio in previous period (%)]
VAR Result =
IF (
NOT ISBLANK ( CurrentConversionRatio )
|| NOT ISBLANK ( PreviousConversionRatio ),
CALCULATE (
MAXX (
VALUES ( Data[Marketing Source] ),
MAX (
[Conversion ratio (%)],
[Conversion ratio in previous period (%)]
)
),
ALLSELECTED ( )
)
* Scale
)
RETURN
ResultLine position below =
VAR Position = - 0.05
VAR CurrentConversionRatio = [Conversion ratio (%)]
VAR PreviousConversionRatio =
[Conversion ratio in previous period (%)]
VAR Result =
IF (
NOT ISBLANK ( CurrentConversionRatio )
|| NOT ISBLANK ( PreviousConversionRatio ),
Position
)
RETURN
Result
3. Cambie el tipo de carrito a Línea y columna agrupada
4. Agregue la posición de la línea arriba o la posición de la línea abajo como la medida del eje Y de la línea.
5. Cambie las etiquetas de datos de la línea a Índice de conversión de cambio porcentual de período a período.
6. Cree una medida que devuelva el color de las etiquetas.
Label colour =
IF (
[Conversion ratio (%)]>=[Conversion ratio in previous period (%)],
"#6ADA4F",
"#D64550"
)
7. Establezca el color de la etiqueta de datos de línea en esta medida.
8. Establezca el color de la línea en blanco y desactive la visibilidad de la línea. También cambie el nombre de la línea a " " en el pozo de campo. (Esto garantiza que la línea no aparezca en la leyenda).
Podrías hacer algo muy similar usando cálculos visuales, estoy seguro.
Nota: La configuración de formato en Power BI Desktop era un poco "complicada" y, a veces, el color de la etiqueta de datos de línea se aplicaba a las barras, pero al cambiarlo de un lado a otro, finalmente funcionó.
¿Es este el tipo de cosas que estás buscando?
Hola de nuevo @ERing ,
En realidad, es posible usar el mismo conjunto de medidas en cada gráfico utilizando el método que presenté. En lugar de usar una segmentación de datos para seleccionar el índice de conversión, aplicaría un filtro de nivel visual (junto con el filtro de región).
He actualizado su PBIX v3, eliminando cualquier medida que no sea necesaria para estas imágenes.
He asumido que se seleccionará una sola región para cada objeto visual en la medida Título del gráfico (noté que uno de sus objetos visuales tenía Oeste / Sur filtrados, lo que supongo que fue un accidente).
El conjunto completo de medidas es el siguiente, con la carpeta para mostrar Medidas de _Chart utilizada directamente en los objetos visuales.
Tomando como ejemplo el objeto visual Leads to Contacts SOUTH REGION , los filtros aplicados se muestran a continuación:
Una vez que haya creado un objeto visual, puede copiar/pegar y ajustar los filtros sin ningún otro cambio.
Supongo que todas las leyendas que muestran "Tasa de conversión" en lugar del nombre específico de la medida no son un problema, ya que está capturado en el título del gráfico.
¿Funcionaría esto para ti?
@OwenAuger Se me presentó otro requisito que puedo resolver parcialmente, pero me pregunto si tiene alguna opinión sobre dónde estoy luchando.
Se han agregado varias columnas a mis datos y mis usuarios finales solicitan una forma dinámica de cambiar el eje x en estos gráficos de conversión. Las columnas que se han agregado son Sistema operativo del dispositivo, Agencia de marketing y Grupo de origen de marketing.
Puedo manejar bien el cambio del eje x usando un parámetro en el campo del eje x, pero esto presenta un problema con la medida [Ratio de conversión % Período/Línea de cambio de período anterior] porque la medida hace referencia específicamente a Datos [Fuente de marketing], lo que da como resultado que los valores de % de período/período no se muestren sobre las columnas.
¿Cree que sería posible cambiar dinámicamente esa parte de la medida para que haga referencia a la selección de segmentación (fuente de marketing, sistema operativo del dispositivo, agencia de marketing, grupo de marketing)?
Estaba pensando que SELECTEDVALUE puede funcionar, pero parece que SELECTEDVALUE solo funciona para seleccionar valores de una sola columna donde, en mi caso, estoy tratando de cambiar el colmun al que se hace referencia.
También estaba pensando que tal vez una tabla desconectada podría permitir que esto funcione, pero no estoy seguro.
¿Alguna sugerencia?
Ejemplo
Conversion Ratio % Period/Period Change Line Above =
VAR Scale = 1.2
VAR CurrentConversionRatio = [Conversion Ratio %]
VAR PreviousConversionRatio = [Conversion Ratio % Prior Period]
VAR Result =
IF (
NOT ISBLANK ( CurrentConversionRatio )
|| NOT ISBLANK ( PreviousConversionRatio ),
CALCULATE (
MAXX (
VALUES ( Data[Marketing Source] ),
MAX (
[Conversion Ratio %],
[Conversion Ratio % Prior Period]
)
),
ALLSELECTED ( )
)
* Scale
)
RETURN
Result
@ERing si el campo del eje X es ajustable por un parámetro de campo, recomendaría un cálculo visual para la línea en lugar de una medida.
He adjuntado un ejemplo de un gráfico con la línea definida por este cálculo visual (renombrado a " " para borrar el nombre en la leyenda)
Line Value =
MAXX ( ROWS, MAX ( [Conversion Ratio % Prior Period], [Conversion Ratio %] ) ) * 1.2
Para el eje X, creé una copia ficticia del campo del eje original para crear un parámetro de campo con dos opciones.
Después de crear el cálculo visual y colocarlo en el eje Y de línea, las otras opciones de formato y la etiqueta de datos se pueden configurar de la misma manera que para una medida.
Los cálculos visuales todavía están en vista previa, pero creo que esta sería la opción más indolora. ¿Funcionaría esto para ti?
¡Hola @OwenAuger Gracias! ¡Esto definitivamente funciona! Veo cómo agregaste la opción ficticia para crear el parámetro, sin embargo, no tenía la intención de que tuvieras que hacer eso. Incluí en mi publicación anterior un archivo de ejemplo actualizado columnas adicionales que tenía la intención de usar en el eje x. Disculpas si eso no quedó claro.
Otra cosa que me gustaría poder implementar si es posible es una forma de limitar el eje x a un Top N basado en el número de [Leads]. Esto es fácil de hacer en el panel de filtro cuando el eje x es constante, pero no he encontrado una manera de hacerlo al controlar el eje con un parámetro. Seguiré buscando una solución sobre esto, pero quería ver si tiene alguna sugerencia.
¡Gracias de nuevo!
@ERing Me alegro de que el método funcione, y disculpas, ¡me perdí el enlace de Dropbox en tu publicación anterior!
Para TopN por un campo arbitrario en el eje X, creo que tendría que escribir alguna lógica condicional basada en el valor del parámetro de campo seleccionado, ya que (actualmente) no hay forma de aplicar un filtro basado en cálculos visuales.
¿Podrías volver a compartir tu último pbix (el de tu publicación anterior parece haber sido eliminado), de lo contrario, puedo crear un ejemplo basado en la versión más reciente que tengo?
@OwenAuger Gracias por investigar esto. He adjuntado el último archivo de ejemplo. Esto tiene la línea de cálculo visual anterior para el cambio de % de período a período y también usa el parámetro de campo para controlar el eje x.
La razón por la que necesito la N superior es que mis datos reales tienen muchos valores únicos en cada una de las columnas utilizadas en el parámetro y mostradas en el eje x. Estos datos de muestra tienen como máximo 7 valores (Fuente de marketing), pero mis datos reales tienen columnas con 50 o más valores. Esto no se muestra bien en un gráfico. Idealmente, la solución para Top N permitiría una entrada de usuario para que pudieran cambiar fácilmente entre Top 3, Top 5, Top 10, etc.
Ejemplo de archivo PBI
@ERing ¡Gracias por eso!
Después de un poco de prueba con un filtro de nivel visual usando una medida, en realidad recomendaría un grupo de cálculo con un elemento de cálculo que borre todos los valores excepto los N principales del campo del eje X seleccionado.
Top N using the interface, with associated slicer and measure Top N Value.Filter with the below calculation item Top N X-Axis by Leads. Since it has to cater for all possible X-axis field selections (and DAX doesn't allow tables to be returned by IF or SWITCH), it is quite longwinded!VAR AxisSelection = IF ( COUNTROWS ( X_Axis_Parameter ) = 1, MAX ( X_Axis_Parameter[X_Axis_Parameter] ) )
VAR TopNSelection = [Top N Value]
VAR FilteredMeasure =
SWITCH (
AxisSelection,
"Device OS",
CALCULATE (
SELECTEDMEASURE ( ),
KEEPFILTERS (
TOPN (
TopNSelection,
CALCULATETABLE ( SUMMARIZECOLUMNS ( Data[Device OS], "@Leads", [Leads] ), ALLSELECTED ( ) ),
[@Leads]
)
)
),
"Marketing Agency",
CALCULATE (
SELECTEDMEASURE ( ),
KEEPFILTERS (
TOPN (
TopNSelection,
CALCULATETABLE ( SUMMARIZECOLUMNS ( Data[Marketing Agency], "@Leads", [Leads] ), ALLSELECTED ( ) ),
[@Leads]
)
)
),
"Marketing Source",
CALCULATE (
SELECTEDMEASURE ( ),
KEEPFILTERS (
TOPN (
TopNSelection,
CALCULATETABLE ( SUMMARIZECOLUMNS ( Data[Marketing Source], "@Leads", [Leads] ), ALLSELECTED ( ) ),
[@Leads]
)
)
),
"Marketing Source Group",
CALCULATE (
SELECTEDMEASURE ( ),
KEEPFILTERS (
TOPN (
TopNSelection,
CALCULATETABLE ( SUMMARIZECOLUMNS ( Data[Marketing Source Group], "@Leads", [Leads] ), ALLSELECTED ( ) ),
[@Leads]
)
)
)
)
RETURN
FilteredMeasure
La aplicación de este elemento de cálculo como filtro de nivel visual a cada objeto visual debería funcionar según lo previsto. Ciertamente hay enfoques alternativos para escribir esto, pero creo que la lógica tendría que estar en esta línea.
¿Te funciona esto en tu modelo?
Hola @OwenAuger me disculpo por la respuesta tardía. He estado enfermo y lejos de mi computadora durante la última semana más o menos.
Acabo de poder revisar esto. Esto funciona muy bien. ¡Muchas gracias!
Una forma de controlar esto es usar un gráfico de líneas y columnas agrupadas.
Con este método, la línea en sí se oculta, pero las etiquetas de datos se establecen en el cambio porcentual en la tasa de conversión.
He adjuntado un ejemplo que hice con su PBIX.
1. Crear medida Ratio de conversión de un periodo a otro % de cambio
Conversion ratio period-on-period % change =
VAR CurrentConversionRatio =
[Conversion ratio (%)]
VAR PreviousConversionRatio =
[Conversion ratio in previous period (%)]
RETURN
DIVIDE (
CurrentConversionRatio - PreviousConversionRatio,
PreviousConversionRatio
)
2. Cree una medida que defina dónde deben colocarse las etiquetas. Creé dos versiones:
Line position above =
VAR Scale = 1.2
VAR CurrentConversionRatio = [Conversion ratio (%)]
VAR PreviousConversionRatio =
[Conversion ratio in previous period (%)]
VAR Result =
IF (
NOT ISBLANK ( CurrentConversionRatio )
|| NOT ISBLANK ( PreviousConversionRatio ),
CALCULATE (
MAXX (
VALUES ( Data[Marketing Source] ),
MAX (
[Conversion ratio (%)],
[Conversion ratio in previous period (%)]
)
),
ALLSELECTED ( )
)
* Scale
)
RETURN
ResultLine position below =
VAR Position = - 0.05
VAR CurrentConversionRatio = [Conversion ratio (%)]
VAR PreviousConversionRatio =
[Conversion ratio in previous period (%)]
VAR Result =
IF (
NOT ISBLANK ( CurrentConversionRatio )
|| NOT ISBLANK ( PreviousConversionRatio ),
Position
)
RETURN
Result
3. Cambie el tipo de carrito a Línea y columna agrupada
4. Agregue la posición de la línea arriba o la posición de la línea abajo como la medida del eje Y de la línea.
5. Cambie las etiquetas de datos de la línea a Índice de conversión de cambio porcentual de período a período.
6. Cree una medida que devuelva el color de las etiquetas.
Label colour =
IF (
[Conversion ratio (%)]>=[Conversion ratio in previous period (%)],
"#6ADA4F",
"#D64550"
)
7. Establezca el color de la etiqueta de datos de línea en esta medida.
8. Establezca el color de la línea en blanco y desactive la visibilidad de la línea. También cambie el nombre de la línea a " " en el pozo de campo. (Esto garantiza que la línea no aparezca en la leyenda).
Podrías hacer algo muy similar usando cálculos visuales, estoy seguro.
Nota: La configuración de formato en Power BI Desktop era un poco "complicada" y, a veces, el color de la etiqueta de datos de línea se aplicaba a las barras, pero al cambiarlo de un lado a otro, finalmente funcionó.
¿Es este el tipo de cosas que estás buscando?
@OwenAuger Esto es fantástico. Exactamente lo que estaba buscando. Muchas gracias.
Otra pregunta: ¿Cree que sería posible formatear condicionalmente las columnas para que las columnas de "Tasa de conversión en el período anterior" sean grises y las columnas de "Tasa de conversión" sean verdes si son mayores que el período anterior y rojas si son más bajas que el período anterior?
Esto no es imprescindible, pero es bueno tenerlo si es posible.
@ERing ¡Me alegro de que eso es lo que estabas buscando!
Desafortunadamente, los objetos visuales principales no admiten el formato condicional por punto de datos cuando se agregan varias medidas o una leyenda al gráfico.
Jugué con este truco usando el formato PBIP para formatear las barras en función de la medida de color de la etiqueta, pero, incluso con ese método, el color de las barras se determina una vez a nivel visual, no por punto de datos.
Sin embargo, estoy seguro de que sería posible configurar esto con Deneb o tal vez con otra imagen personalizada.
@OwenAuger No estoy familiarizado con Deneb, pero lo investigaré. Gracias por la sugerencia.
Se me ocurrió otra pregunta y me gustaría su opinión si es posible.
El informe real que estoy desarrollando deberá mostrar múltiples tasas de conversión. Por ejemplo, necesitaré mostrar gráficos para abajo (y probablemente muchos otros).
1. Conversión de cliente potencial a contacto (ya en el primer archivo de muestra)
2. Conversión de contacto a cita
3. Conversión de cita a venta
Después de revisar la solución que proporcionó para mostrar el % de cambio de período a período en el gráfico, me pregunto si sería posible escribir una sola medida para "Posición de línea arriba" o "Posición de línea abajo" y una sola medida para "Color de etiqueta" que tenga en cuenta la tasa de conversión (Lead to contact, contact to appointment, cita para la venta) que se muestra en ese cuadro específico?
Dadas las diversas tasas de conversión que necesitaré mostrar, me pregunto si es posible tener una sola medida de posición de línea y una sola medida de color de etiqueta en lugar de una medida de posición de línea y color de etiqueta para cada tasa de conversión.
Estaba pensando que la función SWITCH podría manejar esto, pero no estoy seguro de cómo escribir la medida y tampoco estoy seguro de que SWITCH sea posible porque no veo cómo la medida podría evaluar / determinar qué tasa de conversión se muestra en el gráfico (y, por lo tanto, qué medida específica de "período a período" mostrar.
¿Quizás haya otra manera? ¿Quizás no vale la pena y debería escribir medidas específicas para cada tasa de conversión?
He proporcionado un archivo de muestra actualizado aquí con medidas para "contactos convertidos en citas" en caso de que tenga alguna sugerencia / solución. Mi nuevo gráfico deberá mostrar [Tasa de conversión de _Contacts a cita en el período anterior (%)] y [Tasa de conversión de contactos a cita (%)] junto con el [Cambio de % de la proporción de conversión de _Contacts a cita período a período] utilizando el método [Posición de línea arriba] o [Posición de línea abajo] y [Color de etiqueta] que proporcionó.
Ciertamente puedo seguir los pasos que ya ha proporcionado para crear el nuevo gráfico, pero realmente estoy más interesado en cualquier solución posible para escribir una sola medida para la posición de la línea y el color de la etiqueta que capture tanto "Conversión de cliente potencial a contacto" como "Conversión de contacto a cita".
Entiendo si es demasiado esfuerzo determinar una solución. Ya ha sido de gran ayuda y ciertamente puedo usar medidas individuales para lograr lo que necesito.
Archivo de muestra actualizado
@ERing en función de esos requisitos, sí, aún puede usar medidas utilizadas en el gráfico que no cambien ese SWITCH según sea necesario según la selección de Conversion Ratio.
He actualizado el PBIX con un ejemplo de cómo podría configurarlo.
La medida de la tasa de conversión (%) es la única que requiere SWITCH. Todas las medidas que se muestran en el gráfico dependen de esta medida directa o indirectamente.
Diagrama aproximado:
Agregué una tabla desconectada Ratio de conversión que se usa para seleccionar la tasa de conversión que se mostrará.
La tasa de conversión medida (%) se convierte en:
Conversion ratio (%) =
SWITCH (
SELECTEDVALUE ( 'Conversion Ratio'[Conversion Ratio] ),
"Lead to Contact", [Conversion Ratio Lead to Contact (%)],
"Contact to Appointment", [Conversion Ratio Contact to Appointment (%)],
"Appointment to Sale", [Conversion Ratio Appointment to Sale (%)]
)
Consulte PBIX para conocer las otras medidas.
¿Es ese el tipo de cosas que querías hacer?
Hola @OwenAuger La solución que proporcionó es una que personalmente tomaría, ya que reduce en gran medida la cantidad de imágenes en la página del informe.
Desafortunadamente, el requisito para mi informe real es mostrar un gráfico para cada "nivel" de conversión y específico para cada región (nuevo atributo / dimensión que he agregado en los datos). Planeo usar filtros de nivel visual para manejar la región.
Así que terminaré con 3 gráficos para cada "Nivel" de conversión. Lleva a la conversión de contactos (3 regiones), la conversión de contactos a citas (3 regiones), etc. para cada "nivel" de atribución. Espero que mi informe real tenga 5 o más "niveles" de conversión.
Actualmente necesitaré una medida [Línea arriba] y una [Color de etiqueta] para cada "nivel" de conversión.
Esperaba que pudiera haber una solución que proporcionara una sola medida [Línea arriba] y una sola [Color de etiqueta].
La solución que proporcionó en v2 usando una segmentación para [Conversion Ratio] ciertamente logra esto, sin embargo, no estoy seguro de que funcione con mi requisito de tener un objeto visual para cada gráfico.
He incluido un archivo v3 que muestra cómo se verá mi informe real. Solo he mostrado dos regiones para cada uno de los 3 niveles de conversión. El informe real tendrá 3 regiones para cada gráfico.
Ejemplo de variación de período a período por dimensión de gráfico de barras V3
Hola de nuevo @ERing ,
En realidad, es posible usar el mismo conjunto de medidas en cada gráfico utilizando el método que presenté. En lugar de usar una segmentación de datos para seleccionar el índice de conversión, aplicaría un filtro de nivel visual (junto con el filtro de región).
He actualizado su PBIX v3, eliminando cualquier medida que no sea necesaria para estas imágenes.
He asumido que se seleccionará una sola región para cada objeto visual en la medida Título del gráfico (noté que uno de sus objetos visuales tenía Oeste / Sur filtrados, lo que supongo que fue un accidente).
El conjunto completo de medidas es el siguiente, con la carpeta para mostrar Medidas de _Chart utilizada directamente en los objetos visuales.
Tomando como ejemplo el objeto visual Leads to Contacts SOUTH REGION , los filtros aplicados se muestran a continuación:
Una vez que haya creado un objeto visual, puede copiar/pegar y ajustar los filtros sin ningún otro cambio.
Supongo que todas las leyendas que muestran "Tasa de conversión" en lugar del nombre específico de la medida no son un problema, ya que está capturado en el título del gráfico.
¿Funcionaría esto para ti?
Hola @OwenAuger Esto es fantástico. ¡Exactamente lo que estaba buscando!
Hay un problema pendiente que no he podido resolver.
Las etiquetas de datos de % de cambio de período a período en mi informe real no se mantienen por encima de las columnas del gráfico. También puede ver la línea blanca en algunas de las columnas.
Intenté combinaciones de eliminar y agregar las etiquetas de valor del eje y primario y secundario, pero eso no lo resolvió.
Estoy un poco perplejo con esto porque funciona perfectamente en los archivos de ejemplo y he repetido todo, desde los archivos de ejemplo hasta mi informe real. Mencionaste que esto era un poco delicado cuando publicaste la solución por primera vez, pero no he podido resolverlo.
Siempre puedo usar la medida [Línea de abajo], pero creo que mis usuarios preferirían la [Línea de arriba].
A continuación, se muestran dos ejemplos, cada uno con un intervalo de fechas diferente. Borré las etiquetas de texto del eje x de la imagen por confidencialidad.
@ERing hmm, no puedo estar seguro de lo que está pasando allí, pero algo parece estar mal con los valores devueltos por la medida de línea.
El problema "delicado" que tuve originalmente fue establecer las etiquetas de datos para la línea. Tuve que configurar repetidamente las etiquetas de datos tanto para las medidas de la barra como para la línea por alguna razón. Sin embargo, no creo que haya tenido ningún problema con la posición de la línea en sí.
Para solucionar problemas, ¿podría seleccionar Más opciones > Mostrar como tabla en el objeto visual para ver qué valores se trazan realmente para la línea (presentación de pantalla a continuación)?
Además, debe ocultar la línea con esta configuración:
¿Algo de eso ayuda a depurar?
@OwenAuger Encontré el problema. Tenía el campo incorrecto en la parte VALORES de las medidas [Línea anterior]. Lo corregí y todo está funcionando muy bien ahora.
¡Gracias de nuevo por toda su ayuda en esto!
Check out the November 2025 Power BI update to learn about new features.
Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!