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.
Solved! Go to Solution.
Hey @dwidrascuBG ,
basado en mis datos de muestra:
aquí está la medida correcta, tenga en cuenta el primer parámetro ligeramente cambiado de la función SUMX:
measure name =
SUMX(
VALUES('table')
,var _today = TODAY()
var _startdate = [START_DATE]
var _enddate = [END_DATE]
var __enddate = IF(NOT(ISBLANK(_enddate)) , _enddate , _today)
return
DATEDIFF(_startdate,__enddate,DAY)
)
mi tabla visual:
Dudo que el enfoque de la medida acelere el loadig de lo visual.
Un calculado se evalutated una sola vez, esto sucede cuando se carga el modelo de datos. Si hablamos de Power BI Desktop, esto sucede cuando abre el informe, cuando actualiza los datos subyacentes o cuando cambia un calculatio.
De hecho, una medida sólo se aplaudirá cuando sea necesario, por lo que básicamente se debe usar una medida en lugar de una columna calculada, ya que el pie de memoria general será más pequeño usando una medida.
Pero, en este caso especial, si usted está apuntando a acelerar el tiempo de carga de un objeto visual específico, mi suposición es que, la columna calculada será más rápida que la medida, ya que el valor de las columnas calculadas sólo tiene que ser visualizado donde la medida tiene que ser evaluada y luego visualizada.
saludos
Tom
Hey @dwidrascuBG ,
debe considerar este DAX para una columna calculada, ya que esto está utilizando variables para evitar varias evaluaciones de columna dentro del IF
column name =
var _today = TODAY()
var _startdate = [START_DATE]
var _enddate = [END_DATE]
var __enddate = IF(NOT(ISBLANK(_enddate)) , _enddate , _today)
return
DATEDIFF(_startdate,__enddate,DAY)
Como la fecha de inicio y finalización se puede considerar como propiedades de la PERSON_ID la medida tendrá un aspecto similar:
measure name =
SUMX(
VALUES('tablename'[PERSON_ID])
,var _today = TODAY()
var _startdate = [START_DATE]
var _enddate = [END_DATE]
var __enddate = IF(NOT(ISBLANK(_enddate)) , _enddate , _today)
return
DATEDIFF(_startdate,__enddate,DAY)
)
Con suerte, esto proporciona lo que está buscando.
saludos
Tom
Hola Tom,
Gracias por esto, pero desafortunadamente la columna calculada no funcionó, devolvió el mismo valor para cada PERSON_ID. No pude conseguir que la medida funcionara en absoluto debido a la sintaxis. Creo que entiende mi problema, pero parece que no he sido muy claro, dados los comentarios de otros usuarios. Para aclarar:
Tengo una columna calculada con este DAX actual:
Número de días: IF(ISBLANK([END_DATE]),DATEDIFF([START_DATE],TODAY(),DAY),DATEDIFF([START_DATE],[END_DATE],DAY))
Produce esta tabla de datos actual (que es 'PersonTable') :
PERSON_ID | Fecha_inicial | Fecha_final | Número de días (columna calculada) |
1 | 23 de julio de 2004 | 30 de julio de 2004 | 7 |
2 | 10 de abril de 2004 | 10 de abril de 2005 | 365 |
3 | 10 de agosto de 2020 | (en blanco) | 2 |
Tengo una visualización de tablas en mi página de informe de Power BI con PERSON_ID y Número de días como valores. Tengo un filtro para que sólo tenga con PERSON_ID con '(en blanco)' END_DATE en la tabla:
PERSON_ID | Número de días (columna calculada) |
3 | 2 |
Mi columna calculada funciona, pero está pasando por cada fila y está haciendo que la visualización tarde mucho tiempo en cargarse.
Espero que esto esté claro y gracias a todos por sus comentarios!
Hola @dwidrascuBG ,
Por favor, consulte la siguiente medida:
Measure = IF(ISBLANK(MAX('Table'[END_DATE])),DATEDIFF(MAX('Table'[START_DATE]),TODAY(),DAY),DATEDIFF(MAX('Table'[START_DATE]),MAX('Table'[END_DATE]),DAY))
Si este post ayuda, entonces considera Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Saludos
Dedmon Dai
Hola @v-deddai1-msft ,
la medida no funciona ya que devuelve el mismo número de días para cada PERSON_ID, por ejemplo:
PERSON_ID | Número de días de medida |
1 | 100 |
2 | 100 |
3 | 100 |
4 | 100 |
Hey @dwidrascuBG ,
basado en mis datos de muestra:
aquí está la medida correcta, tenga en cuenta el primer parámetro ligeramente cambiado de la función SUMX:
measure name =
SUMX(
VALUES('table')
,var _today = TODAY()
var _startdate = [START_DATE]
var _enddate = [END_DATE]
var __enddate = IF(NOT(ISBLANK(_enddate)) , _enddate , _today)
return
DATEDIFF(_startdate,__enddate,DAY)
)
mi tabla visual:
Dudo que el enfoque de la medida acelere el loadig de lo visual.
Un calculado se evalutated una sola vez, esto sucede cuando se carga el modelo de datos. Si hablamos de Power BI Desktop, esto sucede cuando abre el informe, cuando actualiza los datos subyacentes o cuando cambia un calculatio.
De hecho, una medida sólo se aplaudirá cuando sea necesario, por lo que básicamente se debe usar una medida en lugar de una columna calculada, ya que el pie de memoria general será más pequeño usando una medida.
Pero, en este caso especial, si usted está apuntando a acelerar el tiempo de carga de un objeto visual específico, mi suposición es que, la columna calculada será más rápida que la medida, ya que el valor de las columnas calculadas sólo tiene que ser visualizado donde la medida tiene que ser evaluada y luego visualizada.
saludos
Tom
@TomMartens OK gracias por el consejo, voy a dejar como una columna calculada basado en su entrada!
Para tu información, la medida funciona demasiado 😎
Hey @dwidrascuBG ,
preparar un pbix con datos de muestra, cargar el pibix en onedrive o dropbox y compartir el enlace (asegúrese de que la fecha de inicio y la fecha de finalización tienen un tipo de datos de fecha o fecha y hora). Si está utilizando un xlsx para crear los datos de ejemplo y compartir el xlsx también.
Hmm, preguntándose qué está pasando como puede ver, la instrucción DAX crea diferentes valores, basados en datos de muestra ciertamente pequeños:
saludos
Tom
muchas gracias por su ayuda. Hoy he probado la columna calculada y por alguna razón funciona absolutamente bien ahora, gracias! Esto sin duda ayudará a los problemas de rendimiento y es una gran solución temporal. Ahora me gustaría avanzar a una medida, ya que creo que esto reducirá aún más el tiempo de rendimiento para cargar la visualización.
Sin embargo, la medida no ha sido fructífera. Nota Tuve que editar 'var _startdate' y 'var _enddate' ya que necesitaban tener una función MAX/MIN. Por favor, vea la captura de pantalla a continuación:
Como puede ver, tampoco tomará '_enddate' y '__endate'
Espero que esto signifique que ya no necesitamos los datos de muestra y el archivo pbix, pero por favor hágamelo saber si este sigue siendo el caso.
Muchas gracias Tom!
@dwidrascuBG, no muy claro.
si esto puede ayudar a
@dwidrascuBG Por lo general, se convierte una columna en una medida mediante la adición de aggregatins como MAX/MIN, etc. a referencias de columna. Eso es muy general y depende del contexto. 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.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |