Fabric is Generally Available. Browse Fabric Presentations. Work towards your Fabric certification with the Cloud Skills Challenge.
Hola a todos
Sólo estoy tratando de entender por qué mi fórmula no funcionaría para las fechas de nacimiento que estaban en el mismo mes que hoy, es decir, mayo, sino sólo para fechas que eran más que la fecha de hoy, es decir, > 20 de mayo si consideramos hoy
Estoy usando esto:
Solved! Go to Solution.
Según su descripción,el ")" en su medida no está en la posición correcta, debe colocarse delante de -1, y el resultado es correcto después de cambiar la posición:
Modifique la medida:
Age (WithoutRound & 365.25) =
IF (
MONTH ( NOW () ) > MONTH ( 'Customer Lookup'[birthdate] ),
YEAR ( NOW () ) - YEAR ( 'Customer Lookup'[birthdate] ),
IF (
MONTH ( NOW () ) < MONTH ( 'Customer Lookup'[birthdate] ),
YEAR ( NOW () ) - YEAR ( 'Customer Lookup'[birthdate] ) - 1,
IF (
DAY ( NOW () ) >= DAY ( 'Customer Lookup'[birthdate] ),
YEAR ( NOW () ) - YEAR ( 'Customer Lookup'[birthdate] ),
YEAR ( NOW () ) - YEAR ( 'Customer Lookup'[birthdate] ) - 1
)
)
)
La salida final se muestra a continuación:
Saludos
Apoyo comunitario Team_ Yalan Wu
Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
@v-yalanwu-msft impresionante
Aprendí de su publicación en esta consulta, y etiquetando a todos @Fowmy, @PaulDBrown, @amitchandak - para que pueda compartir mis hallazgos:-
De las 3 maneras (que se muestran a continuación) solía resolver esto usando columnas calculadas, solo la opción 1 dio resultados en la forma en que celebramos los cumpleaños. Es decir, una persona celebra el cumpleaños cuando llega el mismo día cada año y no considera el 29 de febrero como cumpleaños.
1) Uso de IF lógico con día, mes, año, ahora función
2) Uso de DATEDIFF, PISO & 365.25
3) Uso de ROUNDDOWN, Hoy & 365.25
Digo opción 1 es correcta, porque debido a la aproximación traída por 365.25, noté una anomalía con la opción 2 & opción 3 en edad como se resalta a continuación si el cumpleaños de alguien es hoy
La razón por la que son incorrectas es porque el cumpleaños cuando cae hoy y el año de nacimiento es un año bisiesto- estas fórmulas no ajustan la aproximación presentada por 365.25.
Incluso el método de consulta de potencia sugerido anteriormente por @PaulDBrown no es preciso porque La edad cuando se redondea a Número entero no redondea hacia abajo, pero incluso si redondeamos hacia abajo, la fórmula de lenguaje M de cálculo de edad debe cambiarse en Power Query de 365 a 365,25.
Entonces, el método power query coincidiría con lo que @Fowmy &@amitchandak sugerido, pero incluso esos no son 100% correctos si su cumpleaños cae en un año bisiesto y es hoy.
Me referí a este enlace por alguien- si quieres aprender más- https://blog.magnetismsolutions.com/blog/colinmaitland/2019/10/07/how-to-accurately-calculate-ages-i...
Lo que me di cuenta después de pasar por este enlace & función YEARFRAC es que nuestros métodos pueden ser correctos a nuestra manera, pero no técnicamente preciso - ni siquiera el sugerido por YEARFRAC con cualquiera de las bases como 1 (real) o 3 (365)
Pero, si usamos 365.2422 en lugar de 365.25,todos nuestros valores coincidirán con diferentes métodos y pueden ser más precisos sin anomalías.
Vea cómo coinciden los valores para todos los casos después de eso
¡Espero que ayude! 😊
Gracias, Gaurav
@v-yalanwu-msft impresionante
Aprendí de su publicación en esta consulta, y etiquetando a todos @Fowmy, @PaulDBrown, @amitchandak - para que pueda compartir mis hallazgos:-
De las 3 maneras (que se muestran a continuación) solía resolver esto usando columnas calculadas, solo la opción 1 dio resultados en la forma en que celebramos los cumpleaños. Es decir, una persona celebra el cumpleaños cuando llega el mismo día cada año y no considera el 29 de febrero como cumpleaños.
1) Uso de IF lógico con día, mes, año, ahora función
2) Uso de DATEDIFF, PISO & 365.25
3) Uso de ROUNDDOWN, Hoy & 365.25
Digo opción 1 es correcta, porque debido a la aproximación traída por 365.25, noté una anomalía con la opción 2 & opción 3 en edad como se resalta a continuación si el cumpleaños de alguien es hoy
La razón por la que son incorrectas es porque el cumpleaños cuando cae hoy y el año de nacimiento es un año bisiesto- estas fórmulas no ajustan la aproximación presentada por 365.25.
Incluso el método de consulta de potencia sugerido anteriormente por @PaulDBrown no es preciso porque La edad cuando se redondea a Número entero no redondea hacia abajo, pero incluso si redondeamos hacia abajo, la fórmula de lenguaje M de cálculo de edad debe cambiarse en Power Query de 365 a 365,25.
Entonces, el método power query coincidiría con lo que @Fowmy &@amitchandak sugerido, pero incluso esos no son 100% correctos si su cumpleaños cae en un año bisiesto y es hoy.
Me referí a este enlace por alguien- si quieres aprender más- https://blog.magnetismsolutions.com/blog/colinmaitland/2019/10/07/how-to-accurately-calculate-ages-i...
Lo que me di cuenta después de pasar por este enlace & función YEARFRAC es que nuestros métodos pueden ser correctos a nuestra manera, pero no técnicamente preciso - ni siquiera el sugerido por YEARFRAC con cualquiera de las bases como 1 (real) o 3 (365)
Pero, si usamos 365.2422 en lugar de 365.25,todos nuestros valores coincidirán con diferentes métodos y pueden ser más precisos sin anomalías.
Vea cómo coinciden los valores para todos los casos después de eso
¡Espero que ayude! 😊
Gracias, Gaurav
Según su descripción,el ")" en su medida no está en la posición correcta, debe colocarse delante de -1, y el resultado es correcto después de cambiar la posición:
Modifique la medida:
Age (WithoutRound & 365.25) =
IF (
MONTH ( NOW () ) > MONTH ( 'Customer Lookup'[birthdate] ),
YEAR ( NOW () ) - YEAR ( 'Customer Lookup'[birthdate] ),
IF (
MONTH ( NOW () ) < MONTH ( 'Customer Lookup'[birthdate] ),
YEAR ( NOW () ) - YEAR ( 'Customer Lookup'[birthdate] ) - 1,
IF (
DAY ( NOW () ) >= DAY ( 'Customer Lookup'[birthdate] ),
YEAR ( NOW () ) - YEAR ( 'Customer Lookup'[birthdate] ),
YEAR ( NOW () ) - YEAR ( 'Customer Lookup'[birthdate] ) - 1
)
)
)
La salida final se muestra a continuación:
Saludos
Apoyo comunitario Team_ Yalan Wu
Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Gracias por mostrarme otras maneras, también estoy interesado en entender por qué mi enfoque no funcionó.
Simplemente no funcionó para el mes de hoy y para las fechas de nacimiento más grandes que hoy. Por favor, sugiera
@Gguliani, ¿por qué no estás usando datediff
nueva columna = datediff([birthdate], today(), año)
o
nueva columna = datediff([birthdate], today(), year) +1
@amitchandak Esa cosa datediff funcionó para mí también, comprobar la columna de tick verde en la captura de pantalla anterior.
Quería saber por qué mi enfoque no funcionó ya que no estaba al tanto de DATEDIFF cuando probé eso.
Pensé que habría una razón para por qué esa fórmula no funcionó sólo para los meses de mayo, donde las fechas eran mayores que la fecha de hoy
Check out the November 2023 Power BI update to learn about new features.
Read the latest Fabric Community announcements, including updates on Power BI, Synapse, Data Factory and Data Activator.