{"id":2142,"date":"2023-11-13T15:22:44","date_gmt":"2023-11-13T14:22:44","guid":{"rendered":"https:\/\/bicontrolling.com\/?p=2142"},"modified":"2026-01-27T11:56:09","modified_gmt":"2026-01-27T10:56:09","slug":"tablas-de-intervalos-de-fechas-y-relaciones-virtuales","status":"publish","type":"post","link":"https:\/\/bicontrolling.com\/index.php\/2023\/11\/13\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\/","title":{"rendered":"Tablas de intervalos de fechas y relaciones virtuales"},"content":{"rendered":"\n<p>En el \u00faltimo art\u00edculo utilizamos DAX para analizar las ventas de una empresa a partir de una tabla en la que dispon\u00edamos de los precios para un determinado cliente, art\u00edculo y rango de fechas.<\/p>\n\n\n\n<p>En este art\u00edculo vamos a complicar un poco m\u00e1s el requisito de negocio y veremos c\u00f3mo podemos <strong>utilizar la funci\u00f3n <code>TREATAS<\/code> para establecer relaciones virtuales en el caso de que existan registros de precios que no dependan de las columnas de relaci\u00f3n<\/strong>, en el ejemplo del art\u00edculo anterior, el <code>IdCliente<\/code> y el <code>IdArticulo<\/code>, sino que utilicen otros atributos dimensionales para la asignaci\u00f3n del importe.<\/p>\n\n\n\n<p>En este ejemplo vamos a trabajar con precios de coste en lugar de con precios de venta. Supongamos que la tabla con la que tenemos que operar ahora es la siguiente:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"629\" height=\"352\" src=\"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2023\/11\/image.png?resize=629%2C352&#038;ssl=1\" alt=\"\" class=\"wp-image-2492\" srcset=\"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2023\/11\/image.png?resize=1024%2C573&amp;ssl=1 1024w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2023\/11\/image.png?resize=300%2C168&amp;ssl=1 300w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2023\/11\/image.png?resize=768%2C430&amp;ssl=1 768w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2023\/11\/image.png?resize=900%2C504&amp;ssl=1 900w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2023\/11\/image.png?w=1068&amp;ssl=1 1068w\" sizes=\"auto, (max-width: 629px) 100vw, 629px\" \/><\/figure>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<!--more-->\n\n\n\n<p>Como vemos, disponemos de registros para distintos tipos de coste (arancel, embalaje&#8230;), cada uno de ellos asociado a un intervalo temporal. Algunos registros tienen un cliente asociado, <strong>pero otros se van a imputar en funci\u00f3n de otros atributos dimensionales de producto o de cliente.<\/strong><\/p>\n\n\n\n<p>Supongamos que el requisito de negocio es el siguiente. Tenemos que calcular, con una medida, el coste del embalaje, el cual <strong>depende del segmento al cual pertenece el cliente seleccionado en el contexto<\/strong> <strong>de filtro<\/strong>. Para realizar este c\u00e1lculo debemos tener en cuenta la unidad asociada al coste, ya que en el caso de que esta sea Eur\/PT o EUR_CJ, el importe de la tabla tenemos que multiplicarlo por el peso del art\u00edculo activo en el contexto. Por \u00faltimo, esta m\u00e9trica solo debe devolvernos un valor en el caso de que otra medida, <code>[LD Ticket]<\/code>, sea igual a cero o igual a <code>BLANK<\/code>.<\/p>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Encontrando la soluci\u00f3n<\/h3>\n\n\n\n<p>Empezamos examinando el modelo con el que trabajamos:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"629\" height=\"426\" src=\"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2023\/08\/image-11.png?resize=629%2C426&#038;ssl=1\" alt=\"\" class=\"wp-image-2153\" srcset=\"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2023\/08\/image-11.png?w=1015&amp;ssl=1 1015w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2023\/08\/image-11.png?resize=300%2C203&amp;ssl=1 300w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2023\/08\/image-11.png?resize=768%2C521&amp;ssl=1 768w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2023\/08\/image-11.png?resize=900%2C610&amp;ssl=1 900w\" sizes=\"auto, (max-width: 629px) 100vw, 629px\" \/><\/figure>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>No hemos establecido ninguna relaci\u00f3n entre la tabla de costes y la dimensi\u00f3n de producto, <strong>ya que el coste no est\u00e1 asociado a un art\u00edculo directamente.<\/strong> Tampoco tenemos una relaci\u00f3n entre el coste y nuestra dimensi\u00f3n temporal porque, como en el art\u00edculo anterior, <strong>estamos trabajando con una tabla de intervalos de fechas,<\/strong> y los filtros para extraer los registros que se encuentran entre las fechas de inicio y fin debemos establecernos mediante c\u00f3digo DAX.<\/p>\n\n\n\n<p>Si que tenemos creada una relaci\u00f3n con la dimensi\u00f3n cliente, pero el coste del embalaje no depende directamente del cliente sino de otro atributo dimensional, en este caso el segmento de negocio al que el cliente pertenece. Esta circunstancia hace que en el c\u00f3digo de la medida tengamos que <strong>crear una relaci\u00f3n virtual con la funci\u00f3n <code>TREATAS<\/code>, pero no nos podemos olvidar que, con el objetivo de que esta relaci\u00f3n funcione correctamente, tenemos que desactivar la relaci\u00f3n f\u00edsica que existe a trav\u00e9s de la clave primaria de la dimensi\u00f3n<\/strong>, el campo <code>IdCliente<\/code>. Para llevar a cabo esto \u00faltimo vamos a utilizar la funci\u00f3n <code>CROSSFILTER<\/code>, que es la \u00fanica funci\u00f3n en DAX que nos permite desactivar una relaci\u00f3n (sin tener que activar otra a la vez) durante el tiempo de procesamiento de una medida. Por tanto, la variable con la que obtendr\u00edamos el importe correcto de la tabla <code>Costes NE<\/code> ser\u00eda:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>VAR _Coste =\n    CALCULATE (\n        MAX ( 'Costes NE'&#91;Coste&#93; ),\n        FILTER (\n            ALL ( 'Costes NE'&#91;Desde Fecha&#93;,\n             'Costes NE'&#91;Hasta Fecha&#93; \n            ),\n            'Costes NE'&#91;Desde Fecha&#93; &lt;= _MaxFecha\n                &amp;&amp; 'Costes NE'&#91;Hasta Fecha&#93; >= _MaxFecha\n        ),\n        'Costes NE'&#91;Tipo Coste&#93; = \"MEDIACI\u00d3N\",\n        TREATAS ( \n            VALUES ( 'Customer'&#91;Business Segment ID&#93; ),\n            'Costes NE'&#91;Segmento&#93; ),\n        CROSSFILTER ( 'Customer'&#91;IdCustomer&#93;, \n                      'Costes NE'&#91;IdCustomer&#93;, NONE )\n    )<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #C586C0\">VAR<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">_Coste<\/span><span style=\"color: #D4D4D4\"> =<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">CALCULATE<\/span><span style=\"color: #D4D4D4\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">MAX<\/span><span style=\"color: #D4D4D4\"> ( <\/span><span style=\"color: #4EC9B0\">&#39;Costes NE&#39;<\/span><span style=\"color: #DCDCAA\">&#91;Coste&#93;<\/span><span style=\"color: #D4D4D4\"> ),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">FILTER<\/span><span style=\"color: #D4D4D4\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #569CD6\">ALL<\/span><span style=\"color: #D4D4D4\"> ( <\/span><span style=\"color: #4EC9B0\">&#39;Costes NE&#39;<\/span><span style=\"color: #DCDCAA\">&#91;Desde Fecha&#93;<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">             <\/span><span style=\"color: #4EC9B0\">&#39;Costes NE&#39;<\/span><span style=\"color: #DCDCAA\">&#91;Hasta Fecha&#93;<\/span><span style=\"color: #D4D4D4\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            ),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #4EC9B0\">&#39;Costes NE&#39;<\/span><span style=\"color: #DCDCAA\">&#91;Desde Fecha&#93;<\/span><span style=\"color: #D4D4D4\"> &lt;= <\/span><span style=\"color: #4FC1FF\">_MaxFecha<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                &amp;&amp; <\/span><span style=\"color: #4EC9B0\">&#39;Costes NE&#39;<\/span><span style=\"color: #DCDCAA\">&#91;Hasta Fecha&#93;<\/span><span style=\"color: #D4D4D4\"> &gt;= <\/span><span style=\"color: #4FC1FF\">_MaxFecha<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        ),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #4EC9B0\">&#39;Costes NE&#39;<\/span><span style=\"color: #DCDCAA\">&#91;Tipo Coste&#93;<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #CE9178\">&quot;MEDIACI\u00d3N&quot;<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">TREATAS<\/span><span style=\"color: #D4D4D4\"> ( <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #569CD6\">VALUES<\/span><span style=\"color: #D4D4D4\"> ( <\/span><span style=\"color: #4EC9B0\">&#39;Customer&#39;<\/span><span style=\"color: #DCDCAA\">&#91;Business Segment ID&#93;<\/span><span style=\"color: #D4D4D4\"> ),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #4EC9B0\">&#39;Costes NE&#39;<\/span><span style=\"color: #DCDCAA\">&#91;Segmento&#93;<\/span><span style=\"color: #D4D4D4\"> ),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">CROSSFILTER<\/span><span style=\"color: #D4D4D4\"> ( <\/span><span style=\"color: #4EC9B0\">&#39;Customer&#39;<\/span><span style=\"color: #DCDCAA\">&#91;IdCustomer&#93;<\/span><span style=\"color: #D4D4D4\">, <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                      <\/span><span style=\"color: #4EC9B0\">&#39;Costes NE&#39;<\/span><span style=\"color: #DCDCAA\">&#91;IdCustomer&#93;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #4FC1FF\">NONE<\/span><span style=\"color: #D4D4D4\"> )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    )<\/span><\/span><\/code><\/pre><span style=\"display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#1E1E1E;color:#c7c7c7;font-size:12px;line-height:1;position:relative\">DAX<\/span><\/div>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Otro aspecto a considerar es la necesidad de obtener el valor de la columna <code>Unidad<\/code>, para decidir por cual variable tenemos que multiplicar el importe del coste obtenido. Para ello, tenemos que realizar una operaci\u00f3n similar a la anterior, <strong>relacionar virtualmente por el segmento de negocio y desactivar la relaci\u00f3n f\u00edsica establecida a trav\u00e9s del <code>IdCliente<\/code>:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>VAR _Unidad =\n    CALCULATE (\n        SELECTEDVALUE ( 'Costes NE'&#91;Unidad&#93; ),\n        CROSSFILTER ( 'Customer'&#91;IdCustomer&#93;, \n                      'Costes NE'&#91;IdCustomer&#93;, NONE \n        ),\n        TREATAS ( VALUES ( Customer&#91;Business Segment ID&#93; ),\n                 'Costes NE'&#91;Segmento&#93; \n       )\n    )<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #C586C0\">VAR<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">_Unidad<\/span><span style=\"color: #D4D4D4\"> =<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">CALCULATE<\/span><span style=\"color: #D4D4D4\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">SELECTEDVALUE<\/span><span style=\"color: #D4D4D4\"> ( <\/span><span style=\"color: #4EC9B0\">&#39;Costes NE&#39;<\/span><span style=\"color: #DCDCAA\">&#91;Unidad&#93;<\/span><span style=\"color: #D4D4D4\"> ),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">CROSSFILTER<\/span><span style=\"color: #D4D4D4\"> ( <\/span><span style=\"color: #4EC9B0\">&#39;Customer&#39;<\/span><span style=\"color: #DCDCAA\">&#91;IdCustomer&#93;<\/span><span style=\"color: #D4D4D4\">, <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                      <\/span><span style=\"color: #4EC9B0\">&#39;Costes NE&#39;<\/span><span style=\"color: #DCDCAA\">&#91;IdCustomer&#93;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #4FC1FF\">NONE<\/span><span style=\"color: #D4D4D4\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        ),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">TREATAS<\/span><span style=\"color: #D4D4D4\"> ( <\/span><span style=\"color: #569CD6\">VALUES<\/span><span style=\"color: #D4D4D4\"> ( <\/span><span style=\"color: #4FC1FF\">Customer<\/span><span style=\"color: #DCDCAA\">&#91;Business Segment ID&#93;<\/span><span style=\"color: #D4D4D4\"> ),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                 <\/span><span style=\"color: #4EC9B0\">&#39;Costes NE&#39;<\/span><span style=\"color: #DCDCAA\">&#91;Segmento&#93;<\/span><span style=\"color: #D4D4D4\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">       )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    )<\/span><\/span><\/code><\/pre><span style=\"display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#1E1E1E;color:#c7c7c7;font-size:12px;line-height:1;position:relative\">DAX<\/span><\/div>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Con todo ello, e implementando un condicional para multiplicar por un valor u otro en funci\u00f3n del campo <code>Unidad<\/code>, y otro para comprobar el valor de la medida <code>[LD Ticket]<\/code>, el c\u00f3digo completo que resuelve el requisito de negocio que establecimos al principio del art\u00edculo ser\u00eda el siguiente:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>Coste Embalaje =\nVAR _MaxFecha =\n    MAX ( Calendario&#91;Fecha&#93; )\nVAR _Unidad =\n    CALCULATE (\n        SELECTEDVALUE ( 'Costes NE'&#91;Unidad&#93; ),\n        CROSSFILTER ( 'Customer'&#91;IdCustomer&#93;, \n                      'Costes NE'&#91;IdCustomer&#93;, NONE \n        ),\n        TREATAS (\n            VALUES ( Customer&#91;Business Segment ID&#93; ),\n            'Costes NE'&#91;Segmento&#93;\n        )\n    )\nVAR _NetWeightItemSelected =\n    SELECTEDVALUE ( 'Item'&#91;Net Weight&#93; )\nVAR _Coste =\n    CALCULATE (\n        MAX ( 'Costes NE'&#91;Coste&#93; ),\n        FILTER (\n            ALL (\n                'Costes NE'&#91;Desde Fecha&#93;,\n                'Costes NE'&#91;Hasta Fecha&#93;\n            ),\n            'Costes NE'&#91;Desde Fecha&#93; &lt;= _MaxFecha\n                &amp;&amp; 'Costes NE'&#91;Hasta Fecha&#93; >= _MaxFecha\n        ),\n        'Costes NE'&#91;Tipo Coste&#93; = \"MEDIACI\u00d3N\",\n        TREATAS (\n            VALUES ( 'Customer'&#91;Business Segment ID&#93; ),\n            'Costes NE'&#91;Segmento&#93;\n        ),\n        CROSSFILTER ( 'Customer'&#91;IdCustomer&#93;,\n                      'Costes NE'&#91;IdCustomer&#93;, NONE \n        )\n    )\nVAR _Rdo1 =\n    _Coste\n        * IF (\n            OR (\n                _Unidad = \"Eur\/PT\",\n                _Unidad = \"EUR_CJ\"\n            ),\n            _NetWeightItemSelected,\n            IF (\n                _Unidad = \"Eur\/UD\",\n                1\n            )\n        )\nVAR _Rdo2 =\n    IF (\n        &#91;LD Ticket&#93; IN { 0, BLANK () },\n        _Rdo1\n    )\nRETURN\n    _Rdo2<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #4FC1FF\">Coste<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">Embalaje<\/span><span style=\"color: #D4D4D4\"> =<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">VAR<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">_MaxFecha<\/span><span style=\"color: #D4D4D4\"> =<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">MAX<\/span><span style=\"color: #D4D4D4\"> ( <\/span><span style=\"color: #4FC1FF\">Calendario<\/span><span style=\"color: #DCDCAA\">&#91;Fecha&#93;<\/span><span style=\"color: #D4D4D4\"> )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">VAR<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">_Unidad<\/span><span style=\"color: #D4D4D4\"> =<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">CALCULATE<\/span><span style=\"color: #D4D4D4\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">SELECTEDVALUE<\/span><span style=\"color: #D4D4D4\"> ( <\/span><span style=\"color: #4EC9B0\">&#39;Costes NE&#39;<\/span><span style=\"color: #DCDCAA\">&#91;Unidad&#93;<\/span><span style=\"color: #D4D4D4\"> ),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">CROSSFILTER<\/span><span style=\"color: #D4D4D4\"> ( <\/span><span style=\"color: #4EC9B0\">&#39;Customer&#39;<\/span><span style=\"color: #DCDCAA\">&#91;IdCustomer&#93;<\/span><span style=\"color: #D4D4D4\">, <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                      <\/span><span style=\"color: #4EC9B0\">&#39;Costes NE&#39;<\/span><span style=\"color: #DCDCAA\">&#91;IdCustomer&#93;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #4FC1FF\">NONE<\/span><span style=\"color: #D4D4D4\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        ),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">TREATAS<\/span><span style=\"color: #D4D4D4\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #569CD6\">VALUES<\/span><span style=\"color: #D4D4D4\"> ( <\/span><span style=\"color: #4FC1FF\">Customer<\/span><span style=\"color: #DCDCAA\">&#91;Business Segment ID&#93;<\/span><span style=\"color: #D4D4D4\"> ),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #4EC9B0\">&#39;Costes NE&#39;<\/span><span style=\"color: #DCDCAA\">&#91;Segmento&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">VAR<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">_NetWeightItemSelected<\/span><span style=\"color: #D4D4D4\"> =<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">SELECTEDVALUE<\/span><span style=\"color: #D4D4D4\"> ( <\/span><span style=\"color: #4EC9B0\">&#39;Item&#39;<\/span><span style=\"color: #DCDCAA\">&#91;Net Weight&#93;<\/span><span style=\"color: #D4D4D4\"> )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">VAR<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">_Coste<\/span><span style=\"color: #D4D4D4\"> =<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">CALCULATE<\/span><span style=\"color: #D4D4D4\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">MAX<\/span><span style=\"color: #D4D4D4\"> ( <\/span><span style=\"color: #4EC9B0\">&#39;Costes NE&#39;<\/span><span style=\"color: #DCDCAA\">&#91;Coste&#93;<\/span><span style=\"color: #D4D4D4\"> ),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">FILTER<\/span><span style=\"color: #D4D4D4\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #569CD6\">ALL<\/span><span style=\"color: #D4D4D4\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                <\/span><span style=\"color: #4EC9B0\">&#39;Costes NE&#39;<\/span><span style=\"color: #DCDCAA\">&#91;Desde Fecha&#93;<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                <\/span><span style=\"color: #4EC9B0\">&#39;Costes NE&#39;<\/span><span style=\"color: #DCDCAA\">&#91;Hasta Fecha&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            ),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #4EC9B0\">&#39;Costes NE&#39;<\/span><span style=\"color: #DCDCAA\">&#91;Desde Fecha&#93;<\/span><span style=\"color: #D4D4D4\"> &lt;= <\/span><span style=\"color: #4FC1FF\">_MaxFecha<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                &amp;&amp; <\/span><span style=\"color: #4EC9B0\">&#39;Costes NE&#39;<\/span><span style=\"color: #DCDCAA\">&#91;Hasta Fecha&#93;<\/span><span style=\"color: #D4D4D4\"> &gt;= <\/span><span style=\"color: #4FC1FF\">_MaxFecha<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        ),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #4EC9B0\">&#39;Costes NE&#39;<\/span><span style=\"color: #DCDCAA\">&#91;Tipo Coste&#93;<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #CE9178\">&quot;MEDIACI\u00d3N&quot;<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">TREATAS<\/span><span style=\"color: #D4D4D4\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #569CD6\">VALUES<\/span><span style=\"color: #D4D4D4\"> ( <\/span><span style=\"color: #4EC9B0\">&#39;Customer&#39;<\/span><span style=\"color: #DCDCAA\">&#91;Business Segment ID&#93;<\/span><span style=\"color: #D4D4D4\"> ),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #4EC9B0\">&#39;Costes NE&#39;<\/span><span style=\"color: #DCDCAA\">&#91;Segmento&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        ),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">CROSSFILTER<\/span><span style=\"color: #D4D4D4\"> ( <\/span><span style=\"color: #4EC9B0\">&#39;Customer&#39;<\/span><span style=\"color: #DCDCAA\">&#91;IdCustomer&#93;<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                      <\/span><span style=\"color: #4EC9B0\">&#39;Costes NE&#39;<\/span><span style=\"color: #DCDCAA\">&#91;IdCustomer&#93;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #4FC1FF\">NONE<\/span><span style=\"color: #D4D4D4\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">VAR<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">_Rdo1<\/span><span style=\"color: #D4D4D4\"> =<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #4FC1FF\">_Coste<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">*<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">IF<\/span><span style=\"color: #D4D4D4\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #569CD6\">OR<\/span><span style=\"color: #D4D4D4\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                <\/span><span style=\"color: #4FC1FF\">_Unidad<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #CE9178\">&quot;Eur\/PT&quot;<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                <\/span><span style=\"color: #4FC1FF\">_Unidad<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #CE9178\">&quot;EUR_CJ&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            ),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #4FC1FF\">_NetWeightItemSelected<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #569CD6\">IF<\/span><span style=\"color: #D4D4D4\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                <\/span><span style=\"color: #4FC1FF\">_Unidad<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #CE9178\">&quot;Eur\/UD&quot;<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                <\/span><span style=\"color: #B5CEA8\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">VAR<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">_Rdo2<\/span><span style=\"color: #D4D4D4\"> =<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">IF<\/span><span style=\"color: #D4D4D4\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #DCDCAA\">&#91;LD Ticket&#93;<\/span><span style=\"color: #D4D4D4\"> IN <\/span><span style=\"color: #569CD6\">{<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">BLANK<\/span><span style=\"color: #D4D4D4\"> () <\/span><span style=\"color: #569CD6\">}<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #4FC1FF\">_Rdo1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">RETURN<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #4FC1FF\">_Rdo2<\/span><\/span><\/code><\/pre><span style=\"display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#1E1E1E;color:#c7c7c7;font-size:12px;line-height:1;position:relative\">DAX<\/span><\/div>\n\n\n\n<p>&nbsp;<\/p>\n<blockquote>\n<p><span style=\"color: #808080;\">Todo el c\u00f3digo DAX de este art\u00edculo ha sido formateado con<em> \u00abDAX Formatter\u00bb <\/em><\/span><br><a href=\"http:\/\/www.daxformatter.com?utm_source=badge-dark&amp;utm_medium=ad&amp;utm_campaign=embed\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.daxformatter.com\/wp-content\/themes\/daxformatter\/images\/daxformatter-badge-small-dark.png?w=629\" alt=\"DAX Formatter by SQLBI\"><\/a><\/p>\n<\/blockquote>\n<div>&nbsp;<\/div>\n<div>&nbsp;<\/div>\n","protected":false},"excerpt":{"rendered":"<p>En el \u00faltimo art\u00edculo utilizamos DAX para analizar las ventas de una empresa a partir de una tabla en la que dispon\u00edamos de los precios para un determinado cliente, art\u00edculo y rango de fechas. En este art\u00edculo vamos a complicar un poco m\u00e1s el requisito de negocio y veremos c\u00f3mo podemos utilizar la funci\u00f3n TREATAS [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[2,3,4],"tags":[27,9,11,31,14,52],"post_series":[],"class_list":["post-2142","post","type-post","status-publish","format-standard","hentry","category-arquitectura-de-datos","category-controlling-dir-financiera","category-dax-power-pivot","tag-bi","tag-dax","tag-inteligencia-de-negocios","tag-modelado-de-datos","tag-power-bi","tag-relaciones-virtuales"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"En el \u00faltimo art\u00edculo utilizamos DAX para analizar las ventas de una empresa a partir de una tabla en la que dispon\u00edamos de los precios para un determinado cliente, art\u00edculo y rango de fechas. En este art\u00edculo vamos a complicar un poco m\u00e1s el requisito de negocio y veremos c\u00f3mo podemos utilizar la funci\u00f3n TREATAS\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Admin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/bicontrolling.com\/index.php\/2023\/11\/13\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Business Intelligence Controlling | La nueva generaci\u00f3n del reporting econ\u00f3mico-financiero y el control de gesti\u00f3n empresarial\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Tablas de intervalos de fechas y relaciones virtuales | Business Intelligence Controlling\" \/>\n\t\t<meta property=\"og:description\" content=\"En el \u00faltimo art\u00edculo utilizamos DAX para analizar las ventas de una empresa a partir de una tabla en la que dispon\u00edamos de los precios para un determinado cliente, art\u00edculo y rango de fechas. En este art\u00edculo vamos a complicar un poco m\u00e1s el requisito de negocio y veremos c\u00f3mo podemos utilizar la funci\u00f3n TREATAS\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/bicontrolling.com\/index.php\/2023\/11\/13\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2023-11-13T14:22:44+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-01-27T10:56:09+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Tablas de intervalos de fechas y relaciones virtuales | Business Intelligence Controlling\" \/>\n\t\t<meta name=\"twitter:description\" content=\"En el \u00faltimo art\u00edculo utilizamos DAX para analizar las ventas de una empresa a partir de una tabla en la que dispon\u00edamos de los precios para un determinado cliente, art\u00edculo y rango de fechas. En este art\u00edculo vamos a complicar un poco m\u00e1s el requisito de negocio y veremos c\u00f3mo podemos utilizar la funci\u00f3n TREATAS\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2023\\\/11\\\/13\\\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\\\/#article\",\"name\":\"Tablas de intervalos de fechas y relaciones virtuales | Business Intelligence Controlling\",\"headline\":\"Tablas de intervalos de fechas y relaciones virtuales\",\"author\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/author\\\/vlozanoluque_sg8t8mat\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/bicontrolling.com\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/image.png?fit=1068%2C598&ssl=1\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2023\\\/11\\\/13\\\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\\\/#articleImage\",\"width\":1068,\"height\":598},\"datePublished\":\"2023-11-13T15:22:44+01:00\",\"dateModified\":\"2026-01-27T11:56:09+01:00\",\"inLanguage\":\"es-ES\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2023\\\/11\\\/13\\\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2023\\\/11\\\/13\\\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\\\/#webpage\"},\"articleSection\":\"Arquitectura de datos, Controlling \\\/ Dir. Financiera, DAX, BI, DAX, Inteligencia de negocios, Modelado de datos, Power BI, relaciones virtuales\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2023\\\/11\\\/13\\\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bicontrolling.com#listItem\",\"position\":1,\"name\":\"Inicio\",\"item\":\"https:\\\/\\\/bicontrolling.com\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/category\\\/arquitectura-de-datos\\\/#listItem\",\"name\":\"Arquitectura de datos\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/category\\\/arquitectura-de-datos\\\/#listItem\",\"position\":2,\"name\":\"Arquitectura de datos\",\"item\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/category\\\/arquitectura-de-datos\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2023\\\/11\\\/13\\\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\\\/#listItem\",\"name\":\"Tablas de intervalos de fechas y relaciones virtuales\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bicontrolling.com#listItem\",\"name\":\"Inicio\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2023\\\/11\\\/13\\\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\\\/#listItem\",\"position\":3,\"name\":\"Tablas de intervalos de fechas y relaciones virtuales\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/category\\\/arquitectura-de-datos\\\/#listItem\",\"name\":\"Arquitectura de datos\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/#organization\",\"name\":\"Business Intelligence Controlling\",\"description\":\"La nueva generaci\\u00f3n del reporting econ\\u00f3mico-financiero y el control de gesti\\u00f3n empresarial\",\"url\":\"https:\\\/\\\/bicontrolling.com\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/author\\\/vlozanoluque_sg8t8mat\\\/#author\",\"url\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/author\\\/vlozanoluque_sg8t8mat\\\/\",\"name\":\"Admin\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2023\\\/11\\\/13\\\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/00c17f691e05a0999c7ea23a9ae4aa6e7ae25f55cd91ae9629fe81a02ae98278?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Admin\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2023\\\/11\\\/13\\\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\\\/#webpage\",\"url\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2023\\\/11\\\/13\\\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\\\/\",\"name\":\"Tablas de intervalos de fechas y relaciones virtuales | Business Intelligence Controlling\",\"description\":\"En el \\u00faltimo art\\u00edculo utilizamos DAX para analizar las ventas de una empresa a partir de una tabla en la que dispon\\u00edamos de los precios para un determinado cliente, art\\u00edculo y rango de fechas. En este art\\u00edculo vamos a complicar un poco m\\u00e1s el requisito de negocio y veremos c\\u00f3mo podemos utilizar la funci\\u00f3n TREATAS\",\"inLanguage\":\"es-ES\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2023\\\/11\\\/13\\\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/author\\\/vlozanoluque_sg8t8mat\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/author\\\/vlozanoluque_sg8t8mat\\\/#author\"},\"datePublished\":\"2023-11-13T15:22:44+01:00\",\"dateModified\":\"2026-01-27T11:56:09+01:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/#website\",\"url\":\"https:\\\/\\\/bicontrolling.com\\\/\",\"name\":\"Business Intelligence Controlling\",\"description\":\"La nueva generaci\\u00f3n del reporting econ\\u00f3mico-financiero y el control de gesti\\u00f3n empresarial\",\"inLanguage\":\"es-ES\",\"publisher\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Tablas de intervalos de fechas y relaciones virtuales | Business Intelligence Controlling","description":"En el \u00faltimo art\u00edculo utilizamos DAX para analizar las ventas de una empresa a partir de una tabla en la que dispon\u00edamos de los precios para un determinado cliente, art\u00edculo y rango de fechas. En este art\u00edculo vamos a complicar un poco m\u00e1s el requisito de negocio y veremos c\u00f3mo podemos utilizar la funci\u00f3n TREATAS","canonical_url":"https:\/\/bicontrolling.com\/index.php\/2023\/11\/13\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/bicontrolling.com\/index.php\/2023\/11\/13\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\/#article","name":"Tablas de intervalos de fechas y relaciones virtuales | Business Intelligence Controlling","headline":"Tablas de intervalos de fechas y relaciones virtuales","author":{"@id":"https:\/\/bicontrolling.com\/index.php\/author\/vlozanoluque_sg8t8mat\/#author"},"publisher":{"@id":"https:\/\/bicontrolling.com\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2023\/11\/image.png?fit=1068%2C598&ssl=1","@id":"https:\/\/bicontrolling.com\/index.php\/2023\/11\/13\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\/#articleImage","width":1068,"height":598},"datePublished":"2023-11-13T15:22:44+01:00","dateModified":"2026-01-27T11:56:09+01:00","inLanguage":"es-ES","mainEntityOfPage":{"@id":"https:\/\/bicontrolling.com\/index.php\/2023\/11\/13\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\/#webpage"},"isPartOf":{"@id":"https:\/\/bicontrolling.com\/index.php\/2023\/11\/13\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\/#webpage"},"articleSection":"Arquitectura de datos, Controlling \/ Dir. Financiera, DAX, BI, DAX, Inteligencia de negocios, Modelado de datos, Power BI, relaciones virtuales"},{"@type":"BreadcrumbList","@id":"https:\/\/bicontrolling.com\/index.php\/2023\/11\/13\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/bicontrolling.com#listItem","position":1,"name":"Inicio","item":"https:\/\/bicontrolling.com","nextItem":{"@type":"ListItem","@id":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/#listItem","name":"Arquitectura de datos"}},{"@type":"ListItem","@id":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/#listItem","position":2,"name":"Arquitectura de datos","item":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/","nextItem":{"@type":"ListItem","@id":"https:\/\/bicontrolling.com\/index.php\/2023\/11\/13\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\/#listItem","name":"Tablas de intervalos de fechas y relaciones virtuales"},"previousItem":{"@type":"ListItem","@id":"https:\/\/bicontrolling.com#listItem","name":"Inicio"}},{"@type":"ListItem","@id":"https:\/\/bicontrolling.com\/index.php\/2023\/11\/13\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\/#listItem","position":3,"name":"Tablas de intervalos de fechas y relaciones virtuales","previousItem":{"@type":"ListItem","@id":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/#listItem","name":"Arquitectura de datos"}}]},{"@type":"Organization","@id":"https:\/\/bicontrolling.com\/#organization","name":"Business Intelligence Controlling","description":"La nueva generaci\u00f3n del reporting econ\u00f3mico-financiero y el control de gesti\u00f3n empresarial","url":"https:\/\/bicontrolling.com\/"},{"@type":"Person","@id":"https:\/\/bicontrolling.com\/index.php\/author\/vlozanoluque_sg8t8mat\/#author","url":"https:\/\/bicontrolling.com\/index.php\/author\/vlozanoluque_sg8t8mat\/","name":"Admin","image":{"@type":"ImageObject","@id":"https:\/\/bicontrolling.com\/index.php\/2023\/11\/13\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/00c17f691e05a0999c7ea23a9ae4aa6e7ae25f55cd91ae9629fe81a02ae98278?s=96&d=mm&r=g","width":96,"height":96,"caption":"Admin"}},{"@type":"WebPage","@id":"https:\/\/bicontrolling.com\/index.php\/2023\/11\/13\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\/#webpage","url":"https:\/\/bicontrolling.com\/index.php\/2023\/11\/13\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\/","name":"Tablas de intervalos de fechas y relaciones virtuales | Business Intelligence Controlling","description":"En el \u00faltimo art\u00edculo utilizamos DAX para analizar las ventas de una empresa a partir de una tabla en la que dispon\u00edamos de los precios para un determinado cliente, art\u00edculo y rango de fechas. En este art\u00edculo vamos a complicar un poco m\u00e1s el requisito de negocio y veremos c\u00f3mo podemos utilizar la funci\u00f3n TREATAS","inLanguage":"es-ES","isPartOf":{"@id":"https:\/\/bicontrolling.com\/#website"},"breadcrumb":{"@id":"https:\/\/bicontrolling.com\/index.php\/2023\/11\/13\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\/#breadcrumblist"},"author":{"@id":"https:\/\/bicontrolling.com\/index.php\/author\/vlozanoluque_sg8t8mat\/#author"},"creator":{"@id":"https:\/\/bicontrolling.com\/index.php\/author\/vlozanoluque_sg8t8mat\/#author"},"datePublished":"2023-11-13T15:22:44+01:00","dateModified":"2026-01-27T11:56:09+01:00"},{"@type":"WebSite","@id":"https:\/\/bicontrolling.com\/#website","url":"https:\/\/bicontrolling.com\/","name":"Business Intelligence Controlling","description":"La nueva generaci\u00f3n del reporting econ\u00f3mico-financiero y el control de gesti\u00f3n empresarial","inLanguage":"es-ES","publisher":{"@id":"https:\/\/bicontrolling.com\/#organization"}}]},"og:locale":"es_ES","og:site_name":"Business Intelligence Controlling | La nueva generaci\u00f3n del reporting econ\u00f3mico-financiero y el control de gesti\u00f3n empresarial","og:type":"article","og:title":"Tablas de intervalos de fechas y relaciones virtuales | Business Intelligence Controlling","og:description":"En el \u00faltimo art\u00edculo utilizamos DAX para analizar las ventas de una empresa a partir de una tabla en la que dispon\u00edamos de los precios para un determinado cliente, art\u00edculo y rango de fechas. En este art\u00edculo vamos a complicar un poco m\u00e1s el requisito de negocio y veremos c\u00f3mo podemos utilizar la funci\u00f3n TREATAS","og:url":"https:\/\/bicontrolling.com\/index.php\/2023\/11\/13\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\/","article:published_time":"2023-11-13T14:22:44+00:00","article:modified_time":"2026-01-27T10:56:09+00:00","twitter:card":"summary","twitter:title":"Tablas de intervalos de fechas y relaciones virtuales | Business Intelligence Controlling","twitter:description":"En el \u00faltimo art\u00edculo utilizamos DAX para analizar las ventas de una empresa a partir de una tabla en la que dispon\u00edamos de los precios para un determinado cliente, art\u00edculo y rango de fechas. En este art\u00edculo vamos a complicar un poco m\u00e1s el requisito de negocio y veremos c\u00f3mo podemos utilizar la funci\u00f3n TREATAS"},"aioseo_meta_data":{"post_id":"2142","title":null,"description":null,"keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"titles":[],"descriptions":[],"socialPosts":{"email":[],"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"created":"2023-08-14 15:36:36","updated":"2026-01-27 10:58:16","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/bicontrolling.com\" title=\"Inicio\">Inicio<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/\" title=\"Arquitectura de datos\">Arquitectura de datos<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tTablas de intervalos de fechas y relaciones virtuales\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Inicio","link":"https:\/\/bicontrolling.com"},{"label":"Arquitectura de datos","link":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/"},{"label":"Tablas de intervalos de fechas y relaciones virtuales","link":"https:\/\/bicontrolling.com\/index.php\/2023\/11\/13\/tablas-de-intervalos-de-fechas-y-relaciones-virtuales\/"}],"jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":2111,"url":"https:\/\/bicontrolling.com\/index.php\/2023\/10\/26\/trabajando-con-tablas-desde-hasta-o-de-rango-de-fechas\/","url_meta":{"origin":2142,"position":0},"title":"Trabajando con tablas &#8216;desde-hasta&#8217; o de rango de fechas en Power BI","author":"Admin","date":"26 octubre, 2023","format":false,"excerpt":"Introducci\u00f3n Uno de los tipos de tabla que nos encontramos frecuentemente a la hora de crear un modelo de datos anal\u00edtico corresponde a las tablas \"desde-hasta\" o de intervalo de fechas. Estas son un tipo de estructura muy vers\u00e1til que utilizan las bases de datos para representar y gestionar informaci\u00f3n\u2026","rel":"","context":"En \u00abArquitectura de datos\u00bb","block_context":{"text":"Arquitectura de datos","link":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2023\/08\/image-5.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2023\/08\/image-5.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2023\/08\/image-5.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2023\/08\/image-5.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":1002,"url":"https:\/\/bicontrolling.com\/index.php\/2019\/07\/04\/presupuestos-y-otros-datos-a-diferente-granularidad-en-power-bi\/","url_meta":{"origin":2142,"position":1},"title":"Integraci\u00f3n de previsiones presupuestarias y otros datos a diferente granularidad en Power BI","author":"Admin","date":"4 julio, 2019","format":false,"excerpt":"Introducci\u00f3n El modelado de previsiones presupuestarias constituye uno de los escenarios m\u00e1s desafiantes en el campo del dise\u00f1o y explotaci\u00f3n de modelos de datos en Power BI. Las estructuras de datos en dicha herramienta se basan en el motor de Analysis Services y en la tecnolog\u00eda xVelocity (previamente denominada VertiPaq);\u2026","rel":"","context":"En \u00abArquitectura de datos\u00bb","block_context":{"text":"Arquitectura de datos","link":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/07\/desviaciones-1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/07\/desviaciones-1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/07\/desviaciones-1.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/07\/desviaciones-1.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/07\/desviaciones-1.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/07\/desviaciones-1.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":816,"url":"https:\/\/bicontrolling.com\/index.php\/2018\/08\/23\/medidas-semi-aditivas-en-dax\/","url_meta":{"origin":2142,"position":2},"title":"Medidas semi-aditivas en DAX","author":"Admin","date":"23 agosto, 2018","format":false,"excerpt":"En cualquier sistema de BI, podemos crear c\u00e1lculos o medidas de 3 tipos distintos: Medidas aditivas: son generalmente la mayor parte de las medidas que nos encontraremos en un modelo de datos anal\u00edtico, y se caracterizan porque podemos usar la funci\u00f3n SUM() para agregar sus valores en funci\u00f3n de cualquier\u2026","rel":"","context":"En \u00abArquitectura de datos\u00bb","block_context":{"text":"Arquitectura de datos","link":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/04\/image-1-1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/04\/image-1-1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/04\/image-1-1.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/04\/image-1-1.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":608,"url":"https:\/\/bicontrolling.com\/index.php\/2018\/07\/25\/userelationship-en-columnas-calculadas\/","url_meta":{"origin":2142,"position":3},"title":"Uso de la funci\u00f3n USERELATIONSHIP en columnas calculadas","author":"Admin","date":"25 julio, 2018","format":false,"excerpt":"Introducci\u00f3n En un modelo tabular con relaciones inactivas podemos usar la funci\u00f3n USERELATIONSHIP() para activar una de ellas durante el tiempo de ejecuci\u00f3n de un determinado c\u00e1lculo con DAX. Para ello, simplemente tenemos que especificar dicha funci\u00f3n (y los par\u00e1metros correspondientes) como uno de los argumentos de filtro de la\u2026","rel":"","context":"En \u00abArquitectura de datos\u00bb","block_context":{"text":"Arquitectura de datos","link":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/08\/image-121-1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/08\/image-121-1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/08\/image-121-1.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/08\/image-121-1.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/08\/image-121-1.png?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":275,"url":"https:\/\/bicontrolling.com\/index.php\/2018\/03\/31\/patron-total-acumulado-en-power-bi\/","url_meta":{"origin":2142,"position":4},"title":"Patr\u00f3n del total acumulado en Power BI","author":"Admin","date":"31 marzo, 2018","format":false,"excerpt":"Una medida com\u00fan que encontraremos \u00fatil con frecuencia es aquella que computa el total acumulado de una m\u00e9trica a lo largo de las categor\u00edas de alguna dimensi\u00f3n, normalmente el tiempo. El acumulado (ya sea como suma, promedio o cualquier otro tipo de agregaci\u00f3n), es uno de los c\u00e1lculos m\u00e1s utilizados\u2026","rel":"","context":"En \u00abDAX\u00bb","block_context":{"text":"DAX","link":"https:\/\/bicontrolling.com\/index.php\/category\/dax-power-pivot\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2017\/12\/image-1-1.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":141,"url":"https:\/\/bicontrolling.com\/index.php\/2018\/04\/28\/seleccion-dinamica-de-medida-en-power-bi\/","url_meta":{"origin":2142,"position":5},"title":"Selecci\u00f3n din\u00e1mica de medida en Power BI","author":"Admin","date":"28 abril, 2018","format":false,"excerpt":"Un escenario com\u00fan a la hora de analizar datos es el querer mostrar distintas medidas evaluadas bajo el mismo contexto de filtro. Podemos hacer esto creando varias visualizaciones, cada una de ellas con una medida distinta. Una opci\u00f3n mejor, ya que hablamos del mismo contexto de filtro, ser\u00eda dejar al\u2026","rel":"","context":"En \u00abDAX\u00bb","block_context":{"text":"DAX","link":"https:\/\/bicontrolling.com\/index.php\/category\/dax-power-pivot\/"},"img":{"alt_text":"Tabla almac\u00e9n","src":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2017\/11\/imagen-11-1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2017\/11\/imagen-11-1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2017\/11\/imagen-11-1.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2017\/11\/imagen-11-1.png?resize=700%2C400&ssl=1 2x"},"classes":[]}],"jetpack_likes_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/posts\/2142","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/comments?post=2142"}],"version-history":[{"count":13,"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/posts\/2142\/revisions"}],"predecessor-version":[{"id":2497,"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/posts\/2142\/revisions\/2497"}],"wp:attachment":[{"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/media?parent=2142"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/categories?post=2142"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/tags?post=2142"},{"taxonomy":"post_series","embeddable":true,"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/post_series?post=2142"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}