-
Notifications
You must be signed in to change notification settings - Fork 19
Expand file tree
/
Copy pathCalendario Extendido.dax
More file actions
155 lines (155 loc) · 5.25 KB
/
Calendario Extendido.dax
File metadata and controls
155 lines (155 loc) · 5.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
Calendario =
// Punto No. 1:
//
// Si necesitas cambiar el separador de lista de esta expresión de Punto y Coma (;) a Coma (,), por favor:
// Abra este archivo con DAX Studio (https://daxstudio.org/) y utilce el comando: Swap Delimertes y luego
// Copie y pegue la expresión desde el propio DAX Studio.
//
// Punto No. 2 (Si es requerido):
//
// Reemplace → "NOMBRE_DE_LA_COLUMNA_CON_LA_FECHA_MÁS_PEQUEÑA" por el nombre de la columna en tu modelo de datos
// De la cual deseas considerar la fecha más pequeña, ejemplo: Pedidos[Fecha de Envio]
// Lo propio con → "NOMBRE_DE_LA_COLUMNA_CON_LA_FECHA_MÁS_GRANDE"
//
// * Realice los cambios en nombres de campos que correspondan
VAR ListaDeFechas =
CALENDARAUTO ()
/*
CALENDAR(
DATE(
YEAR ( MIN( "NOMBRE_DE_LA_COLUMNA_CON_LA_FECHA_MÁS_PEQUEÑA" ) ) ;
1 ;
1
) ;
DATE(
YEAR( MAX( "NOMBRE_DE_LA_COLUMNA_CON_LA_FECHA_MÁS_GRANDE" ) ) ;
12 ;
31
)
)
*/
VAR ListsDeFechasNuevoNombre =
SELECTCOLUMNS(
ListaDeFechas ;
"Fecha" ;
[Date]
)
RETURN
GENERATE (
ListsDeFechasNuevoNombre;
VAR Fecha =
[Fecha]
VAR An =
YEAR ( Fecha )
VAR Semestre =
IF(
MONTH( Fecha ) <= 6 ;
1 ;
2
)
VAR SemestrePrefijo =
"Semestre " &
IF(
MONTH( Fecha ) <= 6 ;
1 ;
2
)
VAR Cuatrimestre =
ROUNDUP(
DIVIDE(
MONTH( Fecha ) ;
4
) ;
0
)
VAR CuatrimestrePrefijo =
"Cuatrimestre " &
ROUNDUP(
DIVIDE(
MONTH( Fecha ) ;
4
) ;
0
)
VAR Trimestre =
-- Si la columna Trimestre te presenta error, por favor utiliza la siguiente función: INT ( FORMAT ( Fecha ; "q" ) )
QUARTER ( Fecha )
VAR TrimestrePrefijo =
-- Si la columna Trimestre Prefijo te presenta error, por favor utiliza la siguiente función: "Trimestre " & FORMAT ( Fecha ; "q" )
"Trimestre " & QUARTER ( Fecha )
VAR Bimestre =
ROUNDUP(
DIVIDE(
MONTH( Fecha ) ;
2
) ;
0
)
VAR BimestrePrefijo =
"Bimestre" &
ROUNDUP(
DIVIDE(
MONTH( Fecha ) ;
2
) ;
0
)
VAR MesNumero =
MONTH ( Fecha )
VAR MesNombre =
FORMAT ( Fecha; "mmmm" )
VAR MesNombreMayuscula =
(
VAR PrimeraLetra =
LEFT( FORMAT ( Fecha; "mmmm" ) )
VAR PrimeraLetraEnMayuscula =
UPPER( PrimeraLetra )
VAR SegundaLetraEnAdelante =
MID(
FORMAT ( Fecha; "mmmm" ) ;
2 ;
LEN( FORMAT ( Fecha; "mmmm" ) )
)
VAR MesPrimeraLetraEnMayuscula =
PrimeraLetraEnMayuscula & SegundaLetraEnAdelante
RETURN
MesPrimeraLetraEnMayuscula
)
VAR DSNumero =
WEEKDAY ( Fecha; 2 )
VAR DSNombre =
FORMAT ( Fecha; "dddd" )
VAR Dia =
DAY( Fecha )
VAR Semana =
WEEKNUM( Fecha )
-- Estas son columnas técnicas, por lo que debería ocultarse en la vista de informe
-- Para más información sobre columnas técnicas: https://www.excelfreeblog.com/tablas-de-calendario-porque-son-la-bomba/
VAR AnMesNumero =
YEAR( Fecha ) * 100 + MONTH( Fecha )
VAR AnTrimestreNumero =
YEAR( Fecha ) * 100 + QUARTER( Fecha )
RETURN
ROW (
"Año"; An;
"Semestre" ; Semestre ;
"Semestre Prefijo" ; SemestrePrefijo ;
"Cuatrimestre" ; Cuatrimestre ;
"Cuatrimestre Prefijo" ; CuatrimestrePrefijo ;
"Trimestre"; Trimestre ;
"Trimestre Prefijo"; TrimestrePrefijo ;
"Bimestre" ; Bimestre ;
"Bimestre Prefijo" ; BimestrePrefijo ;
"Mes Número"; MesNumero ;
"Mes Nombre"; MesNombre ;
"Mes Nombre Mayus" ; MesNombreMayuscula ;
"DS Número"; DSNumero ;
"DS Nombre"; DSNombre ;
"Día"; Dia ;
"Semana" ; Semana ;
-- Estas son columnas técnicas, por lo que debería ocultarse en la vista de informe
-- Para más información sobre columnas técnicas: https://www.excelfreeblog.com/tablas-de-calendario-porque-son-la-bomba/
"Año Mes Número" ; AnMesNumero ;
"Año Trimestre Número" ; AnTrimestreNumero
)
)