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
hunterc
Frequent Visitor

La salida de medida se invierte en el gráfico de columnas apiladas

Hola

Tengo una medida que puse en un gráfico de columnas apiladas, pero los datos se invierten. En la captura de pantalla, enero debe ser PM Complete? 9,63% á verdadero y 90,37% falso, pero como se puede ver, se invierte.

BI Help2.jpg

¿Mi medida es la cuestión? La medida está tomando esencialmente un % del total si se cumplen ciertas condiciones (mes 1 y Completo?-true).

if(values('Dates'[Month '])'"01",
CALCULATE(COUNT('WorkOrders'[Complete?]),
'Fechas'[Mes]-"01",
'WorkOrders'[Comlete?] "true")/[TotalWorkOrders],FALSE())
No creo que la medida sea el problema, he desglosado la medida en partes y la he probado en una tarjeta visual para asegurarme de que los números que se producen son lo que deberían ser, y lo son. Parece que hay un error cuando tiro la medida en el gráfico.
Además - No estoy seguro de por qué en la información sobre herramientas generada automáticamente de la captura de pantalla, junto a la %, hay un cero. En realidad, hay miles que cumplieron con los criterios de la medida. Esto es algo secundario a la pregunta publicada anteriormente, pero sigue siendo un problema sin embargo.
Cualquier ayuda muy apreciada, gracias!!
1 ACCEPTED SOLUTION

Hola @hunterc

Actualizo la tabla de hechos, la tabla Dimdate y la medida.

Tabla Dimdate:

DimDate = 
ADDCOLUMNS (
    CALENDAR ( DATE ( 2020, 01, 01 ), DATE ( 2020, 12, 31 ) ),
    "Year", YEAR ( [Date] ),
    "Month #", MONTH ( [Date] ),
    "Quarter", QUARTER([Date]),
    "Fulldate Month", FORMAT([Date],"MMMM"),
    "Day", DAY ( [Date] ),
    "Datekey",
        FORMAT ( [Date], "yyyy" ) & ""
            & FORMAT ( [Date], "mm" ) & ""
            & FORMAT ( [Date], "DD" )
)

Agregue una columna Qtr en la tabla de hechos.

Qtr # = RELATED(DimDate[Quarter])

Actualizar medida:

Measure = 
VAR _PerC =
    CALCULATE (
        COUNTROWS ( WorkOrders ),
        FILTER (
            ALLEXCEPT (
                WorkOrders,
                WorkOrders[u_asset_type_display_value],
                WorkOrders[Complete?]
            ),
            WorkOrders[Month #] <= MAX ( WorkOrders[Month #] )
                && WorkOrders[Qtr #] = MAX ( WorkOrders[Qtr #] )
        )
    )
VAR _Total =
    CALCULATE (
        COUNTROWS ( 'WorkOrders' ),
        FILTER (
            ALLEXCEPT ( WorkOrders, WorkOrders[u_asset_type_display_value] ),
            WorkOrders[Month #] <= MAX ( WorkOrders[Month #] )
                && WorkOrders[Qtr #] = MAX ( WorkOrders[Qtr #] )
        )
    )
RETURN
    DIVIDE ( _PerC, _Total )

El resultado es el siguiente.

Predeterminado:

1.png

Seleccione el tipo en la segmentación:

2.png

Puede descargar el archivo pbix desde este enlace: La salida de medida se invierte en el gráfico de columnas apiladas

Saludos

Rico Zhou

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

11 REPLIES 11
v-rzhou-msft
Community Support
Community Support

Hola @hunterc

¿Podría decirme si su problema ha sido resuelto? Si es así, acédi es la solución. Más gente se beneficiará de ello. O todavía está confundido al respecto, por favor proporcione más detalles sobre su tabla y su problema o compártame con su archivo pbix de su Onedrive for Business.

Saludos

Rico Zhou

v-rzhou-msft
Community Support
Community Support

Hola @hunterc

Creo que desea calcular el porcentaje en esta lógica:

Si el mes es 1, false/true por total (1 mes) dividir total 1 mes.

Si el mes 2, false/true por total (1&2 meses) dividir el total 1&2 mes.

Y mostrar el resultado en el gráfico de columnas 100% apiladas.

Construyo un WorkOrders y una tabla DimDate para tener una prueba.

Tabla WorkOrders:

1.png

Tabla DimDate:

DimDate = 
ADDCOLUMNS (
    CALENDAR ( DATE ( 2020, 01, 01 ), DATE ( 2020, 12, 31 ) ),
    "Year", YEAR ( [Date] ),
    "Month #", MONTH ( [Date] ),
    "Fulldate Month", FORMAT([Date],"MMMM"),
    "Day", DAY ( [Date] ),
    "Datekey",
        FORMAT ( [Date], "yyyy" ) & ""
            & FORMAT ( [Date], "mm" ) & ""
            & FORMAT ( [Date], "DD" )
)

Resultado:

2.png

Cree relaciones entre las columnas Datekey en dos tablas.

3.png

A continuación, construir una medida para lograr su objetivo.

Measure = 
VAR _PerC =
    CALCULATE (
        COUNTROWS ( WorkOrders ),
        FILTER (
            ALLEXCEPT (
                WorkOrders,
                WorkOrders[u_asset_type_display_value],
                WorkOrders[Complete?]
            ),
            WorkOrders[Month #] <= MAX ( WorkOrders[Month #] )
        )
    )
VAR _Total =
    CALCULATE (
        COUNT ( 'WorkOrders'[u_asset_type_display_value] ),
        FILTER (
            ALLEXCEPT ( WorkOrders, WorkOrders[u_asset_type_display_value] ),
            WorkOrders[Month #] <= MAX ( WorkOrders[Month #] )
        )
    )
RETURN
    DIVIDE ( _PerC, _Total )

Necesitamos ordenar la columna Mes de Fecha Completa por Mes en la Tabla DimDate y, a continuación, compilar el objeto visual.

4.png

Resultado:

5.png

Podemos usar Slicer para elegir qué tipo mostrar.

6.png

Puede descargar el archivo pbix desde este enlace: La salida de medida se invierte en el gráfico de columnas apiladas

Saludos

Rico Zhou

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

@RicoZhou gracias! Esto funciona perfectamente para los datos q1, pero parece que no funciona después de eso, supongo que debido a la portio <-max [month -]. Por ejemplo, en el mes 5, ¿no sería tirar de los meses del 1 al 5 en su medida? Debido a los informes trimestrales, el mes 5 sólo tendría que tener en cuenta los meses 4 y 5, el mes 12 tendría que tener en cuenta 10, 11 y 12 (ya que es un trimestre diferente). Lo mismo para q3, q4, etc. ¿Alguna idea de cómo incorporar eso en la medida también?

Gracias

Cazador

Hola @hunterc

Actualizo la tabla de hechos, la tabla Dimdate y la medida.

Tabla Dimdate:

DimDate = 
ADDCOLUMNS (
    CALENDAR ( DATE ( 2020, 01, 01 ), DATE ( 2020, 12, 31 ) ),
    "Year", YEAR ( [Date] ),
    "Month #", MONTH ( [Date] ),
    "Quarter", QUARTER([Date]),
    "Fulldate Month", FORMAT([Date],"MMMM"),
    "Day", DAY ( [Date] ),
    "Datekey",
        FORMAT ( [Date], "yyyy" ) & ""
            & FORMAT ( [Date], "mm" ) & ""
            & FORMAT ( [Date], "DD" )
)

Agregue una columna Qtr en la tabla de hechos.

Qtr # = RELATED(DimDate[Quarter])

Actualizar medida:

Measure = 
VAR _PerC =
    CALCULATE (
        COUNTROWS ( WorkOrders ),
        FILTER (
            ALLEXCEPT (
                WorkOrders,
                WorkOrders[u_asset_type_display_value],
                WorkOrders[Complete?]
            ),
            WorkOrders[Month #] <= MAX ( WorkOrders[Month #] )
                && WorkOrders[Qtr #] = MAX ( WorkOrders[Qtr #] )
        )
    )
VAR _Total =
    CALCULATE (
        COUNTROWS ( 'WorkOrders' ),
        FILTER (
            ALLEXCEPT ( WorkOrders, WorkOrders[u_asset_type_display_value] ),
            WorkOrders[Month #] <= MAX ( WorkOrders[Month #] )
                && WorkOrders[Qtr #] = MAX ( WorkOrders[Qtr #] )
        )
    )
RETURN
    DIVIDE ( _PerC, _Total )

El resultado es el siguiente.

Predeterminado:

1.png

Seleccione el tipo en la segmentación:

2.png

Puede descargar el archivo pbix desde este enlace: La salida de medida se invierte en el gráfico de columnas apiladas

Saludos

Rico Zhou

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

@RicoZhou funciona muy bien, muchas gracias de nuevo por su ayuda!

Greg_Deckler
Super User
Super User

@hunterc - OK, he intentado replicar esto. Vea mi archivo PBIX adjunto a continuación sig. Quieres Tabla (37).

Greg_Deckler_0-1599534042076.png


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Mastering Power BI 2nd Edition

DAX is easy, CALCULATE makes DAX hard...

@Greg_Deckler Greg, gracias por tu ayuda. Esto es probablemente mi culpa al tratar de reducir los datos de la muestra tanto como sea posible... pero necesitaré crear una medida (aunque con los datos de muestra que proporcioné, lanzarla a un gráfico es lo más lógico). Necesito una medida porque estoy tratando de obtener un %de finalización de qtd acumulativo. Por ejemplo, si el mes 1, tome el % de las órdenes de trabajo completadas en el mes 1. Si el mes 2, entonces necesito sumar la cantidad de órdenes de trabajo completadas desde el mes 1 y el mes 2, dividir por la cantidad total de órdenes de trabajo de esos 2 meses y así sucesivamente para cada trimestre. Esta es la razón por la que en el post original había una medida "si" para decir si mes "x" entonces hacer "y" como quiero que actúe de manera diferente dependiendo de qué mes es. También hay otras opciones además de "mantenimiento preventivo", por lo que había algunos filtros en la instrucción if también. Por favor, avísame si tiene sentido. Gracias de nuevo por su ayuda continua!

@hunterc Si entiendo correctamente, en general, utilizar una medida de esa manera, es necesario utilizar el truco de tabla desconectado como se muestra en este artículo: https://community.powerbi.com/t5/Community-Blog/Solving-Attendance-with-the-Disconnected-Table-Trick...


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Mastering Power BI 2nd Edition

DAX is easy, CALCULATE makes DAX hard...
amitchandak
Super User
Super User

@hunterc , ¿Puede compartir datos de ejemplo y salida de ejemplo en formato de tabla?

Por favor, intente seguir

if(max('Dates'[Mes ?])-"01",divide(
CALCULATE(COUNT('WorkOrders'[Complete?]),
'Fechas'[Mes]-"01",
'WorkOrders'[Comlete?] "true"),[TotalWorkOrders]),FALSE())

O

if(max('Dates'[Mes ?])-"01",divide(
CALCULATE(COUNT('WorkOrders'[Complete?]),
'Fechas'[Mes]-"01",
filter('WorkOrders','WorkOrders'[Comlete?] "true")),[TotalWorkOrders]),FALSE())

@Greg_Deckler @amitchandak - Muchas gracias por su disposición a echar un vistazo.

He añadido datos de muestra a continuación, 1 VERDADERO, 3 FALSO en Ene

El denominador de medida:

TOTALWOs(count('WorkOrders'[u_asset_type_display_value]),'DimDate'[fulldate],'WorkOrders'[u_asset_type_display_value]-"Mantenimiento preventivo"
FYI - 'DimDate' es sólo una tabla de fechas, tel suyo se filtra a nivel visual dependiendo de lo que se muestra (La conexión entre 'DimDate' y 'WorkOrders' se hace a través de [fulldate]). Además, el numerador se filtra por [u_asset_type_display_value] para "Mantenimiento preventivo" a nivel visual
u_asset_type_display_value¿íntegro?DatekeyMes #
Mantenimiento preventivoVerdad2020012101
Mantenimiento preventivoFalso2020012001
Mantenimiento preventivoFalso2020011701
Mantenimiento preventivoFalso2020011601
El resultado de los datos de muestra debe ser 25%% TRUE, 75% FALSE. Desde el gráfico que mostré anteriormente, el indicador FALSE se habría aplicado al 75% en este caso de datos de ejemplo.
¡Gracias de nuevo!
Greg_Deckler
Super User
Super User

@hunterc - Difícil de decir realmente, no veo la fórmula para el cálculo PM Complete? No es realmente suficiente información para seguir adelante, por favor primero compruebe si su problema es un problema común enumerado aquí: https://community.powerbi.com/t5/Community-Blog/Before-You-Post-Read-This/ba-p/1116882

Además, consulte este post sobre cómo obtener respuesta a su pregunta rápidamente: https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490

Las partes más importantes son:
1. Datos de muestra como texto, utilice la herramienta de tabla en la barra de edición
2. Salida esperada de los datos de muestra
3. Explicación en palabras de cómo obtener de 1. a 2.


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Mastering Power BI 2nd Edition

DAX is easy, CALCULATE makes DAX hard...

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