CEILING https://interactivechaos.ovh/es es Creación de un calendario https://interactivechaos.ovh/es/dax/scenario/creacion-de-un-calendario <span class="field field--name-title field--type-string field--label-hidden">Creación de un calendario</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/es/user/1" typeof="schema:Person" property="schema:name" datatype="">admin</span></span> <span class="field field--name-created field--type-created field--label-hidden">Dom, 07/07/2019 - 18:20</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Una de las preguntas más frecuentes relativas al calendario necesario para utilizar funciones de inteligencia de tiempo es ¿Es mejor crearlo externamente a Power BI? ¿O en el editor de consultas? ¿O tal vez con DAX?</p> <p>En este escenario vamos a crear un calendario completo en DAX, incluyendo el número y nombre del mes, trimestre, día de la semana, etc.</p> <p>Para comenzar, creamos la tabla con el calendario básico usando la función <a href="/es/dax/function/calendarauto">CALENDARAUTO</a>. Esta función crea una tabla con una única columna con una secuencia de fechas cubriendo todas las fechas que aparezcan en nuestro conjunto de datos, por defecto desde el 1 de enero del primer año hasta el 31 de diciembre del último año:</p> <div class="codigo"> <p>Calendar = CALENDARAUTO()</p> </div> <img alt="Calendario creado con CALENDARAUTO" data-entity-type="file" data-entity-uuid="41837857-0178-4e3c-acd4-d56266d5d974" src="/sites/default/files/inline-images/escenario-dax-0075.png" class="align-center" width="284" height="324" loading="lazy" /><p>Sin embargo, queremos añadir a esta tabla básica otros campos, para lo que vamos a usar las siguientes funciones DAX (obsérvese en la imagen anterior que el campo creado recibe el nombre de "<em>Date</em>"):</p> <ul><li>Para crear el año: <a href="/es/dax/function/year">YEAR</a></li> <li>Para crear el número de mes: <a href="/es/dax/function/month">MONTH</a></li> <li>Para crear el número de día: <a href="/es/dax/function/day">DAY</a></li> </ul><p>Estos nuevos campos los vamos a añadir a la tabla básica usando la función <a href="/es/dax/function/addcolumns">ADDCOLUMNS</a>:</p> <div class="codigo"> <p>Calendar = <br />     ADDCOLUMNS(<br />         CALENDARAUTO();<br />         "Year"; YEAR([Date]);<br />         "Month"; MONTH([Date]);<br />         "Day"; DAY([Date])<br />     )</p> </div> <img alt="Campos para el año, número de mes y día del mes" data-entity-type="file" data-entity-uuid="bf2996fb-ebfe-4052-b2eb-fef704e53234" src="/sites/default/files/inline-images/escenario-dax-0076.png" class="align-center" width="407" height="387" loading="lazy" /><p>Los nombres para el mes y el día de la semana podemos crearlos con la función <a href="/es/dax/function/format">FORMAT</a>, y el número de la semana y el número de día de la semana con las funciones <a href="/es/dax/function/weeknum">WEEKNUM</a> y <a href="/es/dax/function/weekday">WEEKDAY</a>, respectivamente:</p> <div class="codigo"> <p>Calendar = <br />     ADDCOLUMNS(<br />         CALENDARAUTO();<br />         "Year"; YEAR([Date]);<br />         "Month"; MONTH([Date]);<br />         "Month Name"; FORMAT([Date]; "MMMM");<br />         "Week #"; WEEKNUM([Date]);<br />         "Day"; DAY([Date]);<br />         "Week Day"; WEEKDAY([Date]);<br />         "Day Name"; FORMAT([Date]; "DDDD")<br />     )</p> </div> <img alt="Campos para el nombre del mes y del día, el número de la semana y el número del día de la semana" data-entity-type="file" data-entity-uuid="4b970cc7-125a-477c-bdb7-83ac11805295" src="/sites/default/files/inline-images/escenario-dax-0077.png" class="align-center" width="696" height="501" loading="lazy" /><p>Por último, para obtener el número de trimestre podemos recurrir a la fórmula:</p> <div class="codigo"> <p>CEILING(MONTH([Date])/3;1)</p> </div> <p>...que calcula el entero más próximo igual o superior al mes dividido entre 3 (con la función <a href="/es/dax/function/ceiling">CEILING</a>) .</p> <p>Si quisiéramos también tener el equivalente precedido por una "Q", podemos volver a recurrir a la función FORMAT y al operador &amp; que nos permite concatenar cadenas de texto:</p> <div class="codigo"> <p>Calendar = <br />     ADDCOLUMNS(<br />         CALENDARAUTO();<br />         "Year"; YEAR([Date]);<br />         "Quarter #"; CEILING(MONTH([Date])/3;1);<br />         "Quarter"; "Q" &amp; FORMAT(CEILING(MONTH([Date])/3;1); "#");<br />         "Month"; MONTH([Date]);<br />         "Month Name"; FORMAT([Date]; "MMMM");<br />         "Week #"; WEEKNUM([Date]);<br />         "Day"; DAY([Date]);<br />         "Week Day"; WEEKDAY([Date]);<br />         "Day Name"; FORMAT([Date]; "DDDD")<br />     )</p> </div> <img alt="Campos para el trimestre" data-entity-type="file" data-entity-uuid="1ce90b45-3e40-4719-89cf-33c23cef9583" src="/sites/default/files/inline-images/escenario-dax-0078.png" class="align-center" width="836" height="575" loading="lazy" /><p> </p> </div> <div class="field field--name-field-funciones-dax-involucradas field--type-entity-reference field--label-above"> <div class="field__label">Funciones DAX involucradas</div> <div class="field__items"> <div class="field__item"><a href="/es/taxonomy/term/90" hreflang="es">CALENDARAUTO</a></div> <div class="field__item"><a href="/es/taxonomy/term/40" hreflang="es">YEAR</a></div> <div class="field__item"><a href="/es/taxonomy/term/42" hreflang="es">MONTH</a></div> <div class="field__item"><a href="/es/taxonomy/term/43" hreflang="es">DAY</a></div> <div class="field__item"><a href="/es/taxonomy/term/84" hreflang="es">ADDCOLUMNS</a></div> <div class="field__item"><a href="/es/taxonomy/term/44" hreflang="es">FORMAT</a></div> <div class="field__item"><a href="/es/taxonomy/term/91" hreflang="es">WEEKNUM</a></div> <div class="field__item"><a href="/es/taxonomy/term/92" hreflang="es">WEEKDAY</a></div> <div class="field__item"><a href="/es/taxonomy/term/93" hreflang="es">CEILING</a></div> </div> </div> <div class="field field--name-field-dax-esc-dificultad field--type-list-string field--label-above"> <div class="field__label">Dificultad</div> <div class="field__item">Baja</div> </div> Sun, 07 Jul 2019 16:20:39 +0000 admin 1156 at https://interactivechaos.ovh