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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

Crear una nueva medida: mostrar una lista de personas con valor <50

hola

Tengo una lista de personas con valor asignado y me gustaría crear una nueva medida para crear una nueva lista que mostraría la lista de personas cuyo valor está por debajo de 50. Eso parece muy simple en Excel, pero no soy capaz de encontrar la fórmula correcta en Power BI.

El objetivo final es crear un gráfico con % de personas <50 y % de personas > = 50

Gracias por su ayuda!

2 ACCEPTED SOLUTIONS

@Ce13 , a veces ayuda visualizarlo para entenderlo, por lo que si tomé la parte de la medida que se usó para crear la tabla y usé el botón Nueva tabla, este sería el resultado de lo que hice. Espero que ayude.above12.PNG

Déjame saber si tienes alguna pregunta.

Si esto resuelve sus problemas, por favor márquelo como la solución, para que otros puedan encontrarlo fácilmente. Felicitaciones 👍son agradables también.
Nathaniel

View solution in original post

Gracias @Ce13 , aquí hay otra solución para usted:

Percentage of emp greater than or equal to 50 _1 Filtered by Date =
VAR _minDate =
    DATE ( 2021, 6, 2 ) //I hard coded these dates, but if you were doing this on a visual and had the dates inputted, then use ALLSELECTED()
VAR _maxDate =
    DATE ( 2021, 6, 5 )
VAR _myTableFiltered =
    FILTER ( myTable, myTable[Date] >= _minDate && myTable[Date] <= _maxDate )
VAR _finalCalc =
    ADDCOLUMNS (
        GROUPBY (
            _myTableFiltered,
            myTable[emp],
            "TimeSpent", SUMX ( CURRENTGROUP (), [Time Spent] )
        ),
        "x", IF ( [TimeSpent] >= 50, 1 )
    )
RETURN
    _finalCalc

Capture1.PNG

Mi tabla está arriba.

Capture.PNG

Como digo, si esto es en un objeto visual con las fechas en el objeto visual, podría utilizar ALLSELECTED(). El quid aquí es filtrar la tabla por las fechas mínima y máxima y, a continuación, ejecutar el mismo código que antes.
Esto fue divertido, gracias por publicar esto!
Déjame saber si tienes alguna pregunta.

Si esto resuelve sus problemas, por favor márquelo como la solución, para que otros puedan encontrarlo fácilmente. Felicitaciones 👍son agradables también.
Nathaniel

View solution in original post

9 REPLIES 9
Syndicate_Admin
Administrator
Administrator

No @Ce13

% above 50 = 

var _above =CALCULATE(COUNTROWS(myTable),myTable[score]>50)

Var total = COUNTROWS(myTable)

return
DIVIDE(_above,total)

**************************
Scores above 50% = 

CALCULATE(CONCATENATEX(myTable,IF(myTable[score]>50,myTable[emp])," "))


Déjame saber si tienes alguna pregunta.

Si esto resuelve sus problemas, por favor márquelo como la solución, para que otros puedan encontrarlo fácilmente. Felicitaciones 👍son agradables también.
Nathaniel

Syndicate_Admin
Administrator
Administrator

Hola @Ce13
Aquí tienes

above.PNG

Muchas gracias por su rápida respuesta @Nathaniel_C !

Olvidé mencionar que en la sección de datos, tengo la lista de personas con múltiples valores (tiempo empleado).

Y lo que me gustaría ver es si la suma de estos valores está por encima de 50.

ex:

Bruce:20

Alex:10

Bruce: 10
Bruce:30

Alex:20

Bruce: 60 y Alex 30, por lo que el resultado debería ser del 50%.

¿Cómo puedo especificar este parámetro?

Además, cuando uso la fórmula % que proporcionó y la aplico a mi caso

var _above50 = CALCULATE(COUNTROWS(PI1),PI1[Tiempo empleado (Horas)]>=150)
Var total = COUNTROWS(PI1)
devolución
DIVIDE(_arriba,total)
La sintaxis no se reconoce para los dos elementos siguientes "total" y "above".
¿Cómo debo proceder?

Muchas gracias por su ayuda!!

Percentage of emp greater than or equal to 50 =
VAR _newTable =
    ADDCOLUMNS (
        GROUPBY (
            myTable,
            myTable[emp],
            "TimeSpent", SUMX ( CURRENTGROUP (), [Time Spent] )
        ),
        "x", IF ( [TimeSpent] >= 50, 1 )
    )
VAR _howMany =
    SUMX ( _newTable, [x] )
VAR _percentOver =
    DIVIDE ( _howMany, DISTINCTCOUNT ( myTable[emp] ) )
RETURN
    _percentOver

@Ce13 , a veces ayuda visualizarlo para entenderlo, por lo que si tomé la parte de la medida que se usó para crear la tabla y usé el botón Nueva tabla, este sería el resultado de lo que hice. Espero que ayude.above12.PNG

Déjame saber si tienes alguna pregunta.

Si esto resuelve sus problemas, por favor márquelo como la solución, para que otros puedan encontrarlo fácilmente. Felicitaciones 👍son agradables también.
Nathaniel

@Nathaniel_C que funciona! ¡¡Muchas gracias!!

¿Hay alguna manera de agregar una condición en la fórmula que haría la investigación entre dos fechas? entonces si entre las dos fechas la suma de entradas de tiempo es >=50, eso agregaría 1 en la columna X?

Este es un ejemplo de cómo se muestra la hora en mis orígenes de datos:

Alex 1h 6/8/21

Alex 0.5h 6/7/21

Bruce 2h 6/7/21

Bruce 8h 6/9/21

Hola @Ce13 , sí hay. Sin embargo, como solucioné esto, ¿lo marcará como resuelto, para que otros puedan encontrar esto rápidamente? Entonces podremos ir a partir de ahí. Pregunta ¿tienes una tabla de calendario en tu .pbix que creamos las fechas?

Déjame saber si tienes alguna pregunta.

Si esto resuelve sus problemas, por favor márquelo como la solución, para que otros puedan encontrarlo fácilmente. Felicitaciones 👍son agradables también.
Nathaniel

Lo marqué como una solución y agregué Felicitaciones, ¡gracias!

Por ahora, no lo hago, solo tengo los datos de la siguiente manera:

Ce13_0-1623420115656.png

Gracias @Ce13 , aquí hay otra solución para usted:

Percentage of emp greater than or equal to 50 _1 Filtered by Date =
VAR _minDate =
    DATE ( 2021, 6, 2 ) //I hard coded these dates, but if you were doing this on a visual and had the dates inputted, then use ALLSELECTED()
VAR _maxDate =
    DATE ( 2021, 6, 5 )
VAR _myTableFiltered =
    FILTER ( myTable, myTable[Date] >= _minDate && myTable[Date] <= _maxDate )
VAR _finalCalc =
    ADDCOLUMNS (
        GROUPBY (
            _myTableFiltered,
            myTable[emp],
            "TimeSpent", SUMX ( CURRENTGROUP (), [Time Spent] )
        ),
        "x", IF ( [TimeSpent] >= 50, 1 )
    )
RETURN
    _finalCalc

Capture1.PNG

Mi tabla está arriba.

Capture.PNG

Como digo, si esto es en un objeto visual con las fechas en el objeto visual, podría utilizar ALLSELECTED(). El quid aquí es filtrar la tabla por las fechas mínima y máxima y, a continuación, ejecutar el mismo código que antes.
Esto fue divertido, gracias por publicar esto!
Déjame saber si tienes alguna pregunta.

Si esto resuelve sus problemas, por favor márquelo como la solución, para que otros puedan encontrarlo fácilmente. Felicitaciones 👍son agradables también.
Nathaniel

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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