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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Intentando generar una columna calculada para el mes actual y el año actual

Hola, buscando crear una columna calculada que, en función de la tabla de fechas, agregará una nueva columna para mostrar tres estados diferentes Mes actual, Mes anterior y, a continuación, Mes futuro. Por lo tanto, naturalmente para agosto de 2021 debería ser "Mes actual" y luego para enero-julio ser "Mes anterior" y cualquier cosa después de agosto de 2021 (es decir, septiembre de 2021) "Mes futuro". Mi intención es poder cortar rápidamente mi informe con algunas selecciones para mostrar los resultados de los meses anteriores porque es posible que los espectadores no quieran ver el mes actual hasta que termine el mes, pero aún así tienen la capacidad de mostrar el mes actual si es necesario.

He intentado usar múltiples declaraciones IF, pero estoy pensando que puede que necesite usar variables y simplemente comparar mucho. ¿Alguna ayuda/sugerencia?

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

No @ElvirBotic ,

Estos son los pasos que puede seguir:

1. Crear columna calculada.

Switch =
var _currentyear=YEAR(TODAY())
var _currentmonth=MONTH(TODAY())
var _maxcurrentmonthday=EOMONTH(TODAY(),0)
var _maxlastmonth=EOMONTH(TODAY(),-2)
var _switch=
SWITCH(
    TRUE(),
    YEAR('Table'[Date])=_currentyear&&MONTH('Table'[Date])=_currentmonth,"Current Month",
    YEAR('Table'[Date])=_currentyear&&MONTH('Table'[Date])=_currentmonth-1,"Previous Month",
    'Table'[Date]<=_maxlastmonth,"Previous",
    'Table'[Date]>_maxcurrentmonthday,"Future Month")
return
_switch

2. Resultado:

Filtrar los datos para extraer fechas representativas para ver mejor los resultados

vyangliumsft_0-1629183679290.png

Saludos

Liu Yang

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

View solution in original post

10 REPLIES 10
Syndicate_Admin
Administrator
Administrator

No @ElvirBotic ,

Estos son los pasos que puede seguir:

1. Crear columna calculada.

Switch =
var _currentyear=YEAR(TODAY())
var _currentmonth=MONTH(TODAY())
var _maxcurrentmonthday=EOMONTH(TODAY(),0)
var _maxlastmonth=EOMONTH(TODAY(),-2)
var _switch=
SWITCH(
    TRUE(),
    YEAR('Table'[Date])=_currentyear&&MONTH('Table'[Date])=_currentmonth,"Current Month",
    YEAR('Table'[Date])=_currentyear&&MONTH('Table'[Date])=_currentmonth-1,"Previous Month",
    'Table'[Date]<=_maxlastmonth,"Previous",
    'Table'[Date]>_maxcurrentmonthday,"Future Month")
return
_switch

2. Resultado:

Filtrar los datos para extraer fechas representativas para ver mejor los resultados

vyangliumsft_0-1629183679290.png

Saludos

Liu Yang

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

Syndicate_Admin
Administrator
Administrator

No @ElvirBotic ,

¿Está diciendo que desea etiquetar los valores en blanco?

Estos son los pasos que puede seguir:

1. Crear columna calculada.

Column =
var _currentyear=YEAR(TODAY())
var _currentmonth=MONTH(TODAY())
var _switch=
SWITCH(
    TRUE(),
MONTH('Table'[Date])=_currentmonth&&YEAR('Table'[Date])=_currentyear,"Current Month",
'Table'[Date] <DATE(YEAR(TODAY()),MONTH(TODAY()),1),"Previous Month",
MONTH('Table'[Date])>_currentmonth&&YEAR('Table'[Date])>=_currentyear,"Future Month")
return
IF('Table'[Date]=BLANK(),"blank",_switch)

2. Resultado:

vyangliumsft_0-1628756918927.png

Saludos

Liu Yang

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

Esto funcionaría para un año de datos, pero tengo varios años de datos ¿hay alguna manera de que la corrección incluya 2020, 2019, etc.?

Syndicate_Admin
Administrator
Administrator

Sí, tengo varios años de datos, por lo que me lo hace más difícil.

@ElvirBotic

Puede probar esto

Column = if(year('date'[Date])=year(today())&&month('date'[Date])=month(today()),"Current Month",if(year('date'[Date])=year(today())&&month('date'[Date])<month(today()),"Previous Month",if('date'[Date]>EOMONTH(today(),0),"Future Month")))

pls ver el archivo adjunto a continuación.

Vi que para 2020 hay muchos valores en blanco. ¿Hay alguna manera de evitar esto? Básicamente, cada fecha de la dimensión de fecha debe tener un registro anterior, actual y futuro.

@ElvirBotic

entonces, ¿qué quieres mostrar en los últimos años, no lo mencionaste en tu descripción?

Sólo "Anterior"

@ElvirBotic

pls probar esto

Column = if(year('date'[Date])=year(today())&&month('date'[Date])=month(today()),"Current Month",if('date'[Date]<=EOMONTH(today(),-1),"Previous Month",if('date'[Date]>EOMONTH(today(),0),"Future Month")))
Syndicate_Admin
Administrator
Administrator

@ElvirBotic

¿es esto lo que quieres? Supongo que solo tiene datos de un año en la tabla de fechas. Si tiene más de un año de datos, debe modificar el DAX

Column = if(MONTH('Date'[Date])=month(today()),"Current Month",if('Date'[Date]<=EOMONTH(today(),-1),"Previous Month",if('Date'[Date]>EOMONTH(today(),0),"Future Month")))

1.PNG

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.