NOW https://interactivechaos.ovh/es es Uso de variables en expresiones DAX https://interactivechaos.ovh/es/dax/scenario/uso-de-variables-en-expresiones-dax <span class="field field--name-title field--type-string field--label-hidden">Uso de variables en expresiones DAX</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, 03/01/2019 - 17:46</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Se describen a continuación varios ejemplos en los que se utilizan variables dentro de expresiones DAX:</p> <h3>Definición de una medida concatenando textos y números</h3> <div class="codigo"> <p>Sales txt = <br />     VAR TotalSales = SUM(Sales[SalesAmount])<br />     VAR Text1 = "Este mes hemos vendido "<br />     VAR Text2 = "Este mes no hemos vendido nada"<br />     RETURN<br />         IF(<br />             TotalSales &gt; 0;                 -- IF<br />             CONCATENATE(Text1; TotalSales); -- THEN<br />             Text2                           -- ELSE<br />         )</p> </div> <p>En este ejemplo se define una primera variable, <em>TotalSales</em>, conteniendo la suma (contextualizada) de la columna <em>SalesAmount</em> de la tabla <em>Sales</em>, columna que contiene los importes de cada venta. A continuación se definen dos variables conteniendo textos que serán usadas en la salida de la medida.</p> <p>El valor devuelto es el resultado de un <a href="/dax/function/if">IF</a>: Si las ventas (recordemos nuevamente, contextualizadas) son mayores que cero, se devuelve un mensaje indicando las ventas: "<em>Este mes hemos vendido XXXX</em>". En caso contrario, se devuelve directamente la cadena de texto <em>Text2</em>: "<em>Este mes no hemos vendido nada</em>". A pesar de los textos usados, la medida así definida no es capaz de distinguir si el contexto ha reducido las fechas a un mes o no.</p> <p>Para la concatenación de los textos se ha usado la función <a href="/dax/function/concatenate">CONCATENATE</a>.</p> <h3>Medida con SWITCH</h3> <div class="codigo"> <p>Greetings = <br />     VAR CurrentTime = HOUR(NOW())<br />     VAR Period =<br />         SWITCH(<br />             TRUE();<br />             CurrentTime &lt; 12; "morning";<br />             CurrentTime &lt; 17; "afternoon";<br />             "evening"<br />         )<br />     RETURN "Good" &amp; " " &amp; Period</p> </div> <p>Se desea devolver en esta medida un mensaje de buenos días, tardes o noches en función de la hora de que se trate. Para ello extraemos hora con la función <a href="/dax/function/hour">HOUR </a>a partir de la fecha y hora actual que devuelve la función <a href="/dax/function/now">NOW</a>.</p> <p>A continuación, asignamos a la variable <em>Period</em> una cadena de texto en función de la hora calculada: Si la hora es anterior a las 12 del mediodía le asignamos el texto "<em>morning</em>", si es anterior a las 5 de la tarde le asignamos el texto "<em>afternoon</em>" y, si no se cumple ninguna de estas dos condiciones, le asignamos el texto por defecto "<em>evening</em>".</p> <p>Por último, devolvemos la concatenación de la palabra "<em>Good</em>" y el contenido de la variable <em>Period</em>, resultando "<em>Good morning</em>", "<em>Good afternoon</em>" o "<em>Good evening</em>".</p> <h3>Creación de una columna calculada</h3> <div class="codigo"> <p>State &amp; Country =</p> <p>    VAR State = Geography[StateProvinceName]</p> <p>    VAR Country = Geography[Country]</p> <p>    RETURN State &amp; ", " &amp; Country</p> </div> <p>En este ejemplo estamos añadiendo a la tabla <em>Geography </em>un campo al que denominamos <em>State &amp; Country</em> conteniendo la concatenación del estado y del país. Para ello extraemos ambos campos y los almacenamos en sendas variables, y devolvemos la concatenación:</p> <img alt="Creación de una columna calculada con variables" data-entity-type="file" data-entity-uuid="5b4c599e-a800-470c-b4d2-aa320f12a350" src="/sites/default/files/inline-images/dax_scenario_variables_01.jpg" class="align-center" width="1011" height="243" loading="lazy" /><h3>Medida que devuelve el número de elementos de una tabla filtrada</h3> <div class="codigo"> <p>Bikes sales =</p> <p>    VAR Bikes = FILTER(Sales; RELATED(Category[Category]) = "Bikes")</p> <p>    RETURN</p> <p>        COUNTROWS(Bikes)</p> </div> <p>En este ejemplo partimos de una tabla de ventas, <em>Sales</em>, y una tabla conteniendo las posibles categorías a las que pertenecen los productos que se venden, <em>Category</em>, y deseamos saber cuántas ventas han sido de productos de la categoría <em>Bikes</em>.</p> <p>Comenzamos extrayendo el subconjunto de la tabla <em>Sales</em> conteniendo las ventas de productos cuya categoría es la buscada, para lo que filtramos la tabla con <a href="/dax/function/filter">FILTER </a>especificando como filtro que la categoría sea <em>Bikes</em>. Al encontrarse esta información (la categoría de cada producto) en una tabla de dimensiones, se necesario usar la función <a href="/dax/function/related">RELATED </a>para acceder a ella.</p> <p>Por último, devolvemos el recuento de las filas de esta tabla usando la función <a href="/dax/function/countrows">COUNTROWS</a>.</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/29" hreflang="es">IF</a></div> <div class="field__item"><a href="/es/taxonomy/term/62" hreflang="es">CONCATENATE</a></div> <div class="field__item"><a href="/es/taxonomy/term/63" hreflang="es">HOUR</a></div> <div class="field__item"><a href="/es/taxonomy/term/64" hreflang="es">NOW</a></div> <div class="field__item"><a href="/es/taxonomy/term/65" hreflang="es">SWITCH</a></div> <div class="field__item"><a href="/es/taxonomy/term/66" hreflang="es">TRUE</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/57" hreflang="es">RELATED</a></div> <div class="field__item"><a href="/es/taxonomy/term/67" hreflang="es">COUNTROWS</a></div> <div class="field__item"><a href="/es/taxonomy/term/68" hreflang="es">VAR</a></div> </div> </div> Thu, 03 Jan 2019 16:46:46 +0000 admin 337 at https://interactivechaos.ovh