NOT https://interactivechaos.ovh/es es Listado de solicitudes de soporte atrasadas https://interactivechaos.ovh/es/dax/scenario/listado-de-solicitudes-de-soporte-atrasadas <span class="field field--name-title field--type-string field--label-hidden">Listado de solicitudes de soporte atrasadas</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">Sáb, 13/04/2019 - 11:05</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>En este sencillo escenario partimos de una tabla que registra solicitudes de soporte que, simplemente, contiene un identificador de solicitud, una fecha límite de respuesta y un campo en el que se indica si la solicitud fue ya respondida o no:</p> <img alt="Listado de solicitudes de soporte" data-entity-type="file" data-entity-uuid="750f0d0c-46c8-4ccc-a733-8bbc5ef46e19" src="/sites/default/files/inline-images/escenario-dax-0017.PNG" class="align-center" width="346" height="177" loading="lazy" /><p>El objetivo es identificar qué solicitudes no han sido atendidas cuya fecha límite de asistencia haya vencido. Para esto vamos a crear una tabla calculada en la que implementaremos una función cuyo pseudo-código sería el siguiente:</p> <div class="respuesta"> <p>Filtra la tabla de solicitudes<br /> Incluyendo solo aquellas solicitudes no respondidas<br /> Y cuya fecha límite sea anterior a la fecha de hoy</p> </div> <p>Para filtrar la tabla de solicitudes podemos usar la función <a href="/dax/function/calculatetable">CALCULATETABLE</a>, que nos permite modificar el contexto de cálculo añadiendo los filtros que necesitemos, filtros que, además, se aplican de modo simultáneo (es decir, unidos por un operador lógico AND que obliga a que se cumplan todos ellos). Para imponer el filtro que muestre solo las solicitudes no respondidas, aprovechando que el campo <em>Respondida </em>es booleano e incluye el valor TRUE cuando la solicitud ha sido respondida, basta negar dicho campo con la función <a href="/dax/function/not">NOT</a>. Por último, para mostrar solo las solicitudes cuya fecha límite sea anterior a la fecha de hoy utilizaremos la función <a href="/dax/function/today">TODAY</a> que devuelve la fecha actual.</p> <p>El código quedaría de la siguiente forma (supongamos que la fecha devuelta por la función TODAY es 13 de abril de 2019):</p> <div class="codigo"> <p>Solicitudes atrasadas = <br />     CALCULATETABLE(<br />         Solicitudes;<br />         NOT(Solicitudes[Respondida]);<br />         Solicitudes[Fecha límite] &lt; TODAY()<br />     )</p> </div> <img alt="Listado de solicitudes de soporte atrasadas" data-entity-type="file" data-entity-uuid="f8b84cd6-64bf-4ee7-8a07-641132a5cf36" src="/sites/default/files/inline-images/escenario-dax-0018.PNG" class="align-center" width="331" height="75" loading="lazy" /></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/53" hreflang="es">CALCULATETABLE</a></div> <div class="field__item"><a href="/es/taxonomy/term/49" hreflang="es">NOT</a></div> <div class="field__item"><a href="/es/taxonomy/term/76" hreflang="es">TODAY</a></div> </div> </div> Sat, 13 Apr 2019 09:05:02 +0000 admin 1066 at https://interactivechaos.ovh Existencia de registros con cierto valor en un campo https://interactivechaos.ovh/es/dax/scenario/existencia-de-registros-con-cierto-valor-en-un-campo <span class="field field--name-title field--type-string field--label-hidden">Existencia de registros con cierto valor en un campo</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">Jue, 21/03/2019 - 15:20</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>En este sencillo escenario queremos averiguar si, en una tabla dada, hay o no registros (filas) que incluyan, en cierto campo, un determinado valor. Por ejemplo, si partimos de una tabla de localizaciones geográficas (<em>Geography</em>) en la que se incluyan las direcciones de nuestros revendedores, podemos estar interesados en saber si hay o no revendedores en cierto país, digamos, Canadá.</p> <p>Para esto podemos, sencillamente, filtrar la tabla en cuestión con la función <a href="/dax/function/filter">FILTER</a>, de forma que solo se incluyan los registros en los que el campo <em>Country</em> tome el valor Canadá y comprobar si la tabla resultante está o no vacía usando la función <a href="/dax/function/isempty">ISEMPTY</a>. Definimos por tanto la siguiente medida::</p> <div class="codigo"> <p>No hay revendedores en Canadá = ISEMPTY(FILTER(Geography; Geography[Country] = "Canada"))</p> </div> <img alt="¿No hay revendedores en Canadá?" data-entity-type="file" data-entity-uuid="c15fcc8e-d51e-46dd-b8bc-0ac764b978dd" src="/sites/default/files/inline-images/dax_scenario_existencia_registros_01.jpg" class="align-center" width="620" height="191" loading="lazy" /><p>Vemos que el resultado es falso (es decir, la tabla resultante de filtrar los revendedores en Canadá no está vacía).</p> <p>Sin embargo, si buscamos revendedores en Brasil utilizando el mismo método:</p> <div class="codigo"> <p>No hay revendedores en Brasil = ISEMPTY(FILTER(Geography; Geography[Country] = "Brazil"))</p> </div> <img alt="¿No hay revendedores en Brasil?" data-entity-type="file" data-entity-uuid="d641ce2c-e48f-4add-96f5-53888f038b83" src="/sites/default/files/inline-images/dax_scenario_existencia_registros_02.jpg" class="align-center" width="618" height="188" loading="lazy" /><p>...vemos que, en este caso, se devuelve el booleano True, indicando que la tabla resultante de filtrar los revendedores está vacía.</p> <p>Podemos cambiar el "signo" del resultado utilizando la función <a href="/dax/function/not">NOT</a>:</p> <div class="codigo"> <p>Hay revendedores en Brasil = NOT(ISEMPTY(FILTER(Geography; Geography[Country] = "Brazil")))</p> </div> <img alt="¿Hay revendedores en Brasil?" data-entity-type="file" data-entity-uuid="a9de2727-8084-475c-ad0e-667062aee6db" src="/sites/default/files/inline-images/dax_scenario_existencia_registros_03.jpg" class="align-center" width="634" height="184" loading="lazy" /></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/47" hreflang="es">ISEMPTY</a></div> <div class="field__item"><a href="/es/taxonomy/term/48" hreflang="es">FILTER</a></div> <div class="field__item"><a href="/es/taxonomy/term/49" hreflang="es">NOT</a></div> </div> </div> Thu, 21 Mar 2019 14:20:20 +0000 admin 886 at https://interactivechaos.ovh