Anónimo
Tengo una tabla dinámica que se parece a esto:
Estoy intentando reemplazar la columna ‘WK 1’ con ‘WK 1 «https://community.powerbi.com/» Num of Active Users’ * 100 (expresado como%). Además, estoy intentando hacer un formato BG condicional solo en las filas WK 1 a WK 5. ¿Cómo puedo hacerlo?
Por lo general, quiero que mi producto final se vea así.
Hice esto en lugar de formar la tabla dinámica como una matriz, hice el pivote en la consulta de edición y pude hacer cálculos en cada columna individual. Los datos que estoy pivotando se ven así:
Mi operación de pivote se ve así:
AnthonyTilley
En respuesta a AnthonyTilley
para aplicar el formateo donde después.
Cree una segunda medida llamada formateo como se muestra a continuación
es casi idéntico a mi primera medida, pero en esta versión en la declaración de cambio, la columna de usuarios activos se reemplaza con un espacio en blanco
Formatting = --get number of active users var activeusers = CALCULATE(sum('Copy of temp (1)'[cnt_pax]),'Copy of temp (1)'[week_diff] = "NUM OF ACTIVE USERS") --get value to divide by var cnt_p = sum('Copy of temp (1)'[cnt_pax]) --find the colunm header value var sv = SELECTEDVALUE('Copy of temp (1)'[week_diff]) -- calculate teh value divided by the active users * 100 var diff = DIVIDE(cnt_p,activeusers)*100 -- switch the value based on the header colunm, for active user header use active user value for all others user DIFF var ret = SWITCH(sv,"NUM OF ACTIVE USERS",blank(),diff) -- return the values return ret
luego, en la sección de formato condicional, seleccione el color de fondo activado, y en las opciones avanzadas use la siguiente configuración
el Basado en archivado use la nueva medida de formato y asegúrese de que el formato predeterminado esté configurado para no
luego asegúrese de que divergir esté marcado y seleccione sus tres colores
AnthonyTilley
¿Puede proporcionar algunos datos de muestra?
O mejor aún, un archivo PBIX de muestra
Anónimo
En respuesta a AnthonyTilley
AnthonyTilley
En respuesta a Anónimo
Lo siento, no estoy seguro de si me falta algo aquí, pero los datos de muestra que proporcionó no tienen nada que ver con el número de usuarios activos.
Anónimo
En respuesta a AnthonyTilley
AnthonyTilley
En respuesta a Anónimo
Está bien para obtener sus valores en la tabla, use la siguiente medida
Measure = --get number of active users var activeusers = CALCULATE(sum('Copy of temp (1)'[cnt_pax]),'Copy of temp (1)'[week_diff] = "NUM OF ACTIVE USERS") --get value to divide by var cnt_p = sum('Copy of temp (1)'[cnt_pax]) --find the colunm header value var sv = SELECTEDVALUE('Copy of temp (1)'[week_diff]) -- calculate teh value divided by the active users * 100 var diff = DIVIDE(cnt_p,activeusers)*100 -- switch the value based on the header colunm, for active user header use active user value for all others user DIFF var ret = SWITCH(sv,"NUM OF ACTIVE USERS",activeusers,diff) -- return the values return ret
simplemente trabajando en cómo formatear conditonalmente sin incluir la primera columna
AnthonyTilley
En respuesta a AnthonyTilley
para aplicar el formateo donde después.
Cree una segunda medida llamada formateo como se muestra a continuación
es casi idéntico a mi primera medida, pero en esta versión en la declaración de cambio, la columna de usuarios activos se reemplaza con un espacio en blanco
Formatting = --get number of active users var activeusers = CALCULATE(sum('Copy of temp (1)'[cnt_pax]),'Copy of temp (1)'[week_diff] = "NUM OF ACTIVE USERS") --get value to divide by var cnt_p = sum('Copy of temp (1)'[cnt_pax]) --find the colunm header value var sv = SELECTEDVALUE('Copy of temp (1)'[week_diff]) -- calculate teh value divided by the active users * 100 var diff = DIVIDE(cnt_p,activeusers)*100 -- switch the value based on the header colunm, for active user header use active user value for all others user DIFF var ret = SWITCH(sv,"NUM OF ACTIVE USERS",blank(),diff) -- return the values return ret
luego, en la sección de formato condicional, seleccione el color de fondo activado, y en las opciones avanzadas use la siguiente configuración
el Basado en archivado use la nueva medida de formato y asegúrese de que el formato predeterminado esté configurado para no
luego asegúrese de que divergir esté marcado y seleccione sus tres colores
Anónimo
En respuesta a AnthonyTilley
@AnthonyTilley ¿Podría contarme un poco más sobre la declaración de cambio, ya que me gustaría entender su código para poder replicarlo en el futuro? ¡Gracias!
AnthonyTilley
En respuesta a Anónimo
Entonces, la instrucción Switch le permite cambiar valores en función de una expresión
SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
así, por ejemplo, una simple declaración de cambio sería la siguiente
digamos que teníamos una medida para la suma (valor de los pedidos)
podríamos crear una declaración de cambio que diga
– este primer bit dice que cambiaremos según el valor de la suma
Cambiar (SUMA (VALOR DE PEDIDOS),
– luego agregamos cualquier número de condiciones y el valor en el que se convertirán
10, «pequeño»,
20, «medio»
30, alto
–el valor final es el valor predeterminado que se usa para cualquier cosa que no se encuentre en las condiciones anteriores
,»OTRO»)
así que en el ejemplo anterior he dicho cambio basado en la suma del valor de mis pedidos
si algunos = 10, reemplácelo con la palabra «Pequeño»
si es igual a 20 entonces medio y 30 entonces alto cualquier otra cosa decir otro
Si luego uso esta medida en un pivote, me dará un valor pequeño, medio, alto u otro según el valor.
así que si el valor total del pedido fuera 21, diría otro
puede utilizar menor que o mayor que o cualquier otra operación para comparar
en tu ejemplo
var ret = SWITCH(sv,"NUM OF ACTIVE USERS",activeusers,diff)
– estamos diciendo que cambie según el valor de SV (sv es un verificable donde tengo el valor en el encabezado el valor seleccionado
Cambiar (sv,
– Entonces digo que si el valor en sv = «NUM OF ACTIVE USERS», entonces use el valor almacenado en los usuarios activos verificables
«NUM DE USUARIOS ACTIVOS», usuarios activos,
– Luego termino la función diciendo si es algo más (en este caso WK1, WK2, Wk3, Wk4, WK5) y luego uso el valor almacenado en la diferencia verificable
, diff)
puede usar la función de cambio para muchas cosas, por ejemplo, para reemplazar el valor de un mes con una palabra
=SWITCH([Month], 1, "January", 2, "February", 3, "March", 4, "April" , 5, "May", 6, "June", 7, "July", 8, "August", 9, "September", 10, "October", 11, "November", 12, "December" , "Unknown month number" )
si desea utilizar operaciones como mayor o menor que, puede utilizar un truco con el método True ()
en este ejemplo reemplazamos la expresión con la función verdadera VERDADERO (), ahora en lugar de tener un valor fijo en las condiciones tales como 10,20,30 podemos reemplazar esto con cualquier expresión
= SWITCH( TRUE(), [MyMeasure]<1,expr1, [MyMeasure]<2,expr2, [MyMeasure]<3,expr3, …)
para obtener más información sobre la función real, consulte este artículo
https://powerpivotpro.com/2015/03/the-diabolical-genius-of-switch-true/
para obtener más información sobre la función de cambio, consulte el enlace a continuación
https://docs.microsoft.com/en-us/dax/switch-function-dax
AnthonyTilley
En respuesta a AnthonyTilley
Aquí hay un archivo de muestra
archivo de muestra