<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Finanzas archivos - reportingfinanciero.es</title>
	<atom:link href="https://reportingfinanciero.es/category/finanzas/feed/" rel="self" type="application/rss+xml" />
	<link>https://reportingfinanciero.es/category/finanzas/</link>
	<description>Digitalización financiera</description>
	<lastBuildDate>Wed, 04 Feb 2026 12:54:04 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://reportingfinanciero.es/wp-content/uploads/2024/01/logo-repoting-financiero-190x190-1-150x150.webp</url>
	<title>Finanzas archivos - reportingfinanciero.es</title>
	<link>https://reportingfinanciero.es/category/finanzas/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Anexando datos cuando el ERP almacena la información de cada año en una tabla distinta.</title>
		<link>https://reportingfinanciero.es/anexando-datos-cuando-el-erp-almacena-la-informacion-de-cada-ano-en-una-tabla-distinta/</link>
		
		<dc:creator><![CDATA[Javier San Juan]]></dc:creator>
		<pubDate>Mon, 02 Feb 2026 18:18:02 +0000</pubDate>
				<category><![CDATA[Finanzas]]></category>
		<category><![CDATA[Power Query]]></category>
		<guid isPermaLink="false">https://reportingfinanciero.es/?p=3314</guid>

					<description><![CDATA[<p>En este post voy a detallar el paso a paso de un reto que tuve que afrontar recientemente en un proyecto de consultoría. Reto: El objetivo era construir un cuadro de mando financiero para un cliente, para lo que tenía que capturar de la base de datos SQL Server de su ERP los datos de ... </p>
<p class="read-more-container"><a title="Anexando datos cuando el ERP almacena la información de cada año en una tabla distinta." class="read-more button" href="https://reportingfinanciero.es/anexando-datos-cuando-el-erp-almacena-la-informacion-de-cada-ano-en-una-tabla-distinta/#more-3314" aria-label="Leer más sobre Anexando datos cuando el ERP almacena la información de cada año en una tabla distinta.">Leer más</a></p>
<p>La entrada <a href="https://reportingfinanciero.es/anexando-datos-cuando-el-erp-almacena-la-informacion-de-cada-ano-en-una-tabla-distinta/">Anexando datos cuando el ERP almacena la información de cada año en una tabla distinta.</a> se publicó primero en <a href="https://reportingfinanciero.es">reportingfinanciero.es</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>En este post voy a detallar el paso a paso de un reto que tuve que afrontar recientemente en un proyecto de consultoría.</p>



<p class="has-large-font-size"><strong><u>Reto:</u></strong></p>



<p>El objetivo era construir un cuadro de mando financiero para un cliente, para lo que tenía que capturar de la base de datos SQL Server de su ERP los datos de los movimientos del libro diario.</p>



<p>El cliente quería ver los datos de los últimos 5 años y en la base de datos se generaba una tabla distinta para cada empresa y ejercicio.</p>



<p>Al ser un modelo financiero multiempresa (había que mostrar la información de las 3 empresas del grupo), había que conectarse a 15 tablas distintas para conseguir toda la información contable necesaria (3 empresas * 5 ejercicios).</p>



<p>La nomenclatura de las tablas seguía el siguiente patrón:&nbsp; DATDIXXYY , donde XX refleja el código de la empresa (podía tener los valores 21, 22 o 24) e YY refleja los 2 últimos dígitos del ejercicio (22 para 2022, 23 para 2023 …).</p>



<p>Por tanto, y a modo de ejemplo, DATDI2122 sería la tabla que recoge los apuntes contables de la empresa 21 del ejercicio 2022.</p>



<p>Mi primer acercamiento fue hacer una consulta distinta para cada empresa y ejercicio (15 consultas distintas) y después anexarlas en Power Query.</p>



<p>Conseguía tener toda la información pero tenía un principal problema a resolver:</p>



<p>Cada cambio de ejercicio tenía que modificar el origen de las consultas. Por ejemplo, con la entrada del año 2026, tenía que añadir las tablas DATDIXX26 y eliminar las tablas DATDIXX21 (quiero tener únicamente 5 ejercicios).</p>



<p>Voy a explicar a continuación cómo poder hacer esa búsqueda de las tablas a cargar al modelo de forma dinámica y, además, anexar las 15 tablas dentro del mismo script de Power Query para evitarnos tener que hacer 15 consultas separadas y después anexarlas.</p>



<p class="has-large-font-size"><strong><u>Solución:</u></strong></p>



<p>A efectos de poder simplificar la explicación lo máximo posible, voy a indicar la solución paso a paso apoyándome de un fichero Excel en el que tengo creadas 15 tablas que simulan cada una de las tablas a las que nos conectaríamos a SQL.</p>



<p class="has-base-background-color has-background"><strong>NOTA: </strong>Te dejaré enlace de descarga al final del post con el fichero Excel donde están las tablas, un txt con el script del código M empleado, y el fichero pbix con el reto resuelto. Con una pequeña modificación del paso de Origen que te explicaré más adelante obtendrás el mismo resultado cuando cambies el origen a tablas de una BBDD de SQL Server.</p>



<p>Muestro en la siguiente imagen la primera de las tablas, la de la empresa 21 del ejercicio 2022, es decir, DATDI2122:</p>



<figure class="wp-block-image size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2026/02/image.jpg"><img fetchpriority="high" decoding="async" width="1024" height="487" src="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-1024x487.jpg" alt="" class="wp-image-3316" srcset="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-1024x487.jpg 1024w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-300x143.jpg 300w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-768x366.jpg 768w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image.jpg 1107w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p></p>



<p>Vemos como en el nombre de la tabla hemos indicado “DATDI2122” y, para hacer la comprobación en la carga de los datos, tanto en el importe del Debe (celda B2) como en el concepto (celda D2) he hecho referencia al nombre de la tabla (2122).</p>



<p><strong>NOTA: </strong>He incluido en cada tabla un único apunte contable y unas pocas columnas para visualizar mejor la información una vez que anexemos todas las tablas. En el SQL real tendremos obviamente todos los apuntes contables de la empresa y ejercicio seleccionado, además de todas las columnas que se almacenen en la base de datos.</p>



<p>Explicado esto, vamos a ir a Power Query para ver cómo realizamos la conexión a la información:</p>



<p>Pinchamos en Nuevo Origen → Libro de Excel ; y seleccionamos en nuestro equipo el fichero donde tenemos la información.</p>



<p>Una vez cargado nos aparecen en el navegador todas las posibles conexiones (todas las tablas y hojas).</p>



<p>Como se muestra en la siguiente imagen, en lugar de hacer check en las distintas tablas, hacemos click derecho sobre la parte que tiene el icono de carpeta y el nombre del fichero Excel, y pulsamos sobre “Transformar datos”:</p>



<figure class="wp-block-image size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-6.png"><img decoding="async" width="1024" height="932" src="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-6-1024x932.png" alt="" class="wp-image-3332" srcset="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-6-1024x932.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-6-300x273.png 300w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-6-768x699.png 768w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-6.png 1152w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p></p>



<p>Nos aparecen entonces todas las posibles conexiones pero dentro de una consulta de Power Query:</p>



<figure class="wp-block-image size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-4.png"><img decoding="async" width="1024" height="720" src="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-4-1024x720.png" alt="" class="wp-image-3326" srcset="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-4-1024x720.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-4-300x211.png 300w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-4-768x540.png 768w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-4.png 1105w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p></p>



<p>Si vamos al editor avanzado de Power Query, veremos que tenemos únicamente el paso de Origen:</p>



<figure class="wp-block-image size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-5.png"><img loading="lazy" decoding="async" width="1024" height="164" src="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-5-1024x164.png" alt="" class="wp-image-3327" srcset="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-5-1024x164.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-5-300x48.png 300w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-5-768x123.png 768w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-5.png 1106w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p></p>



<p>Vamos a pegar ahora en el editor avanzado el script que te dejo en el material de descarga y <strong>después lo vamos a explicar paso a paso</strong>.</p>



<p><strong>NOTA: </strong>Debes adaptar en el paso de origen del script la ruta de tu equipo donde guardes el fichero y el nombre que le des al fichero.</p>



<p>Quedaría el editor avanzado como muestro en la siguiente imagen:</p>



<figure class="wp-block-image size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-3.png"><img loading="lazy" decoding="async" width="1024" height="682" src="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-3-1024x682.png" alt="" class="wp-image-3324" srcset="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-3-1024x682.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-3-300x200.png 300w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-3-768x512.png 768w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-3.png 1105w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p></p>



<p>Y si pinchamos en “Listo”, veremos cómo obtenemos el resultado deseado: traernos en una única consulta la información de los apuntes contables de las 3 empresas de los 5 años (vemos en la columna “Debe” como los importes hacen referencia a los códigos de empresa y ejercicios requeridos (XXYY que indicábamos anteriormente):</p>



<figure class="wp-block-image size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-1.png"><img loading="lazy" decoding="async" width="676" height="482" src="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-1.png" alt="" class="wp-image-3317" srcset="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-1.png 676w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-1-300x214.png 300w" sizes="auto, (max-width: 676px) 100vw, 676px" /></a></figure>



<p></p>



<p></p>



<p class="has-large-font-size"><strong><u>Explicación del código M:</u></strong></p>



<p>Una vez conseguido el reto, vamos ahora a explicar cada uno de los pasos aplicados en Power Query:</p>



<p><strong>Paso 1.- Origen:</strong></p>



<p>Ya explicado anteriormente. En la segunda imagen del post vemos en detalle cómo llegar, y el resultado sería el de la tercera imagen.</p>



<p><strong>Paso 2.- ListaEmpresas:</strong></p>



<p>Creamos una lista con las empresas que queremos incorporar a nuestro modelo multiempresa (en nuestro caso las empresas 21, 22 y 24):</p>



<figure class="wp-block-image size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2026/02/image.png"><img loading="lazy" decoding="async" width="769" height="403" src="https://reportingfinanciero.es/wp-content/uploads/2026/02/image.png" alt="" class="wp-image-3319" srcset="https://reportingfinanciero.es/wp-content/uploads/2026/02/image.png 769w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-300x157.png 300w" sizes="auto, (max-width: 769px) 100vw, 769px" /></a></figure>



<p></p>



<p><strong>Paso 3.- Anio:</strong></p>



<p>Nos quedamos con los 2 últimos dígitos del año actual (dinámico con el DateTime.LocalNow), que será el último que queremos incorporar a nuestro modelo. Serían las YY del nombre de las tablas a importar:</p>



<figure class="wp-block-image size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-1.jpg"><img loading="lazy" decoding="async" width="1024" height="429" src="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-1-1024x429.jpg" alt="" class="wp-image-3320" srcset="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-1-1024x429.jpg 1024w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-1-300x126.jpg 300w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-1-768x322.jpg 768w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-1.jpg 1106w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p></p>



<p><strong>Paso 4.- ListaAnios:</strong></p>



<p>Creamos una lista que va hasta el año calculado en el paso anterior (que sería el último ejercicio) y empieza 4 años antes (para traernos los últimos 5 ejercicios requeridos); y los pasamos a formato texto:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="892" height="393" src="https://reportingfinanciero.es/wp-content/uploads/2026/02/Imagen-9.png" alt="" class="wp-image-3345" srcset="https://reportingfinanciero.es/wp-content/uploads/2026/02/Imagen-9.png 892w, https://reportingfinanciero.es/wp-content/uploads/2026/02/Imagen-9-300x132.png 300w, https://reportingfinanciero.es/wp-content/uploads/2026/02/Imagen-9-768x338.png 768w" sizes="auto, (max-width: 892px) 100vw, 892px" /></figure>



<p></p>



<p></p>



<p><strong>Paso 5.- FiltrarTablas:</strong></p>



<p>El código completo de este paso no se ve en la siguiente imagen y es por lo que lo pego en texto a continuación:</p>



<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-8cf370e7 wp-block-group-is-layout-flex">
<p>= Table.SelectRows(Origen, each</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; let</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Nombre = [Item],</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EsTabla = [Kind] = «Table»,</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EmpresaValida = List.AnyTrue(List.Transform(ListaEmpresas, (e) =&gt; Text.StartsWith(Nombre, «DATDI» &amp; e))),</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AnioValido = List.AnyTrue(List.Transform(ListaAnios, (a) =&gt; Text.EndsWith(Nombre, a)))</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; in</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EsTabla and EmpresaValida and AnioValido</p>



<p>&nbsp;&nbsp;&nbsp; )</p>
</div>



<p></p>



<p>Lo que hacemos es seleccionar los registros que nos quedamos del primer paso (Origen), filtrando porque el nombre de la columna “Item” empiece por “DATDI” y cualquiera de los códigos de empresa de la ListaEmpresas del paso 2 (es decir, DATDI21, DATDI22 o DATDI24).</p>



<p>Además, el nombre de la columna “Item” debe acabar por cualquiera de los ejercicios indicados en la lista “ListaAnios” del paso 4 (22 a 26, es decir, de los ejercicios 2022 al 2026).</p>



<p>De forma adicional, la columna “Kind” del paso de Origen tiene que ser del tipo “Table”.</p>



<p>Obtenemos como resultado lo siguiente:</p>



<figure class="wp-block-image size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-2.png"><img loading="lazy" decoding="async" width="1024" height="503" src="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-2-1024x503.png" alt="" class="wp-image-3325" srcset="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-2-1024x503.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-2-300x147.png 300w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-2-768x377.png 768w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-2.png 1106w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p></p>



<p><strong>Paso 6.- TablasConEmpresa:</strong></p>



<p>Detallamos nuevamente el código M de este paso:</p>



<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-8cf370e7 wp-block-group-is-layout-flex">
<p>= Table.AddColumn(</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FiltrarTablas,</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; «DataConEmpresa»,</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; each</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; let</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NombreTabla = [Item],</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Empresa = Number.FromText(Text.Middle(NombreTabla, 5, 2))</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; in</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Table.AddColumn(</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [Data],</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; «id Empresa»,</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; each Empresa,</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Int64.Type</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )</p>
</div>



<p></p>



<p>Lo que hacemos es añadir una nueva columna a los datos que vienen en la columna “Data”.&nbsp; Al ser un modelo multiempresa, necesitamos añadir a los datos que nos vienen en los apuntes el código de la empresa (en mi caso esta información no venía del origen, si en tu caso ya te viene el código de la empresa en las tablas de los apuntes contables te ahorrarías este paso)..</p>



<p>La consulta que estamos construyendo será nuestra tabla de hechos de los movimientos contables, y esta columna del código de empresa será la que relacionaremos con la dimensión empresas para poder filtrar de qué empresa/s queremos mostrar la información.</p>



<p>El código de la empresa lo cogemos de la columna “Item”, con Text.Middle, empezando por la posición 5 y cogiendo 2 caracteres.&nbsp; Por ejemplo, en DATDI2122 nos quedamos con 21.</p>



<p>Además, le damos formato número entero.</p>



<p>Toda la información que venía en las tablas originales, más la nueva columna con el código de la empresa, quedan en la nueva columna “DataConEmpresa”:</p>



<figure class="wp-block-image size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-2.jpg"><img loading="lazy" decoding="async" width="1024" height="463" src="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-2-1024x463.jpg" alt="" class="wp-image-3321" srcset="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-2-1024x463.jpg 1024w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-2-300x136.jpg 300w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-2-768x347.jpg 768w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-2.jpg 1106w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p></p>



<p><strong>Paso 7.- ListaTablas:</strong></p>



<p>Creamos una lista con las tablas de la columna “DataConEmpresa” (posteriormente combinaremos las tablas incluidas en esta lista):</p>



<figure class="wp-block-image size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-4.jpg"><img loading="lazy" decoding="async" width="1024" height="540" src="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-4-1024x540.jpg" alt="" class="wp-image-3323" srcset="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-4-1024x540.jpg 1024w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-4-300x158.jpg 300w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-4-768x405.jpg 768w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-4.jpg 1105w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p></p>



<p><strong>Paso 8.- TablasReducidas:</strong></p>



<p>Nos quedamos únicamente con las columnas que queramos llevar a nuestra consulta definitiva.</p>



<p>Al conectarnos al ERP, nos pueden llegar multitud de columnas y en este paso elegiríamos las columnas que necesitemos:</p>



<figure class="wp-block-image size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-3.jpg"><img loading="lazy" decoding="async" width="1024" height="524" src="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-3-1024x524.jpg" alt="" class="wp-image-3322" srcset="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-3-1024x524.jpg 1024w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-3-300x153.jpg 300w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-3-768x393.jpg 768w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-3.jpg 1105w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p></p>



<p><strong>Paso 9.- CombinarTodo:</strong></p>



<p>Combinamos todas las tablas de la lista anterior y obtendríamos las columnas que hayamos seleccionado para todos los apuntes contables de las 15 tablas que hemos indicado.</p>



<p>En nuestro caso nos salen solo 15 registros porque en el Excel había únicamente 1 apunte por cada tabla, pero cuando llevemos este código a producción nos aparecerán todos los apuntes contables de las 3 empresas de los últimos 5 años, en una única consulta:</p>



<figure class="wp-block-image size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-5.jpg"><img loading="lazy" decoding="async" width="1024" height="532" src="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-5-1024x532.jpg" alt="" class="wp-image-3328" srcset="https://reportingfinanciero.es/wp-content/uploads/2026/02/image-5-1024x532.jpg 1024w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-5-300x156.jpg 300w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-5-768x399.jpg 768w, https://reportingfinanciero.es/wp-content/uploads/2026/02/image-5.jpg 1105w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p></p>



<p>En un último paso daríamos a cada columna su tipo de dato y ya tendríamos toda la información lista para incorporar a nuestro modelo.</p>



<p></p>



<p class="has-large-font-size"><strong><u>Origen SQL:</u></strong></p>



<p>Si queremos cambiar el código para que nos sirva para capturar los datos de una base de datos de SQL, únicamente tendremos que modificar el código del primer paso, el de Origen, indicando lo siguiente:</p>



<p>&nbsp;&nbsp;&nbsp; Origen = Sql.Database(Servidor, BBDD),</p>



<p></p>



<p class="has-large-font-size"><strong><u>Fin:</u></strong></p>



<p>Y con eso ya lo tendríamos!!!</p>



<p>Espero que te haya resultado útil.</p>



<p>Este proyecto ha sido el primero en el que he usado esta técnica y la verdad es que me ha arreglado la papeleta…&nbsp;</p>



<p>Agradecer al gran Ricardo Rincón que me ayudó a encontrar esta solución. Entre su gran soporte, un poco de ChatGPT y adaptando todo a los requisitos del proyecto, llegué a esta solución que funcionó de maravilla.</p>



<p>Seguramente haya otras formas de llegar al objetivo o de simplificar/optimizar esta solución, pero aquí tenéis una propuesta que podéis usar en vuestros futuros proyectos 😉</p>



<p>Te dejo por aquí el material para que puedas replicar el paso a paso y adaptarlo a tus propias necesidades (en el código M adapta la ruta de tu equipo en el primer paso de Origen):</p>



<p></p>



<div class="wp-block-kadence-advancedbtn kb-buttons-wrap kb-btns3314_020fad-c3"><a class="kb-button kt-button button kb-btn3314_61be3d-c4 kt-btn-size-standard kt-btn-width-type-auto kb-btn-global-fill kt-btn-has-text-true kt-btn-has-svg-false  wp-block-kadence-singlebtn" href="https://drive.google.com/drive/folders/1nXiaBXtVCwNLzfOU0WP5kkkTfh-cDKVM?usp=sharing" target="_blank" rel="noreferrer noopener"><span class="kt-btn-inner-text">Descargar</span></a></div>



<p></p>



<p></p>



<p></p>
<p><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fanexando-datos-cuando-el-erp-almacena-la-informacion-de-cada-ano-en-una-tabla-distinta%2F&amp;linkname=Anexando%20datos%20cuando%20el%20ERP%20almacena%20la%20informaci%C3%B3n%20de%20cada%20a%C3%B1o%20en%20una%20tabla%20distinta." title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fanexando-datos-cuando-el-erp-almacena-la-informacion-de-cada-ano-en-una-tabla-distinta%2F&amp;linkname=Anexando%20datos%20cuando%20el%20ERP%20almacena%20la%20informaci%C3%B3n%20de%20cada%20a%C3%B1o%20en%20una%20tabla%20distinta." title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_telegram" href="https://www.addtoany.com/add_to/telegram?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fanexando-datos-cuando-el-erp-almacena-la-informacion-de-cada-ano-en-una-tabla-distinta%2F&amp;linkname=Anexando%20datos%20cuando%20el%20ERP%20almacena%20la%20informaci%C3%B3n%20de%20cada%20a%C3%B1o%20en%20una%20tabla%20distinta." title="Telegram" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fanexando-datos-cuando-el-erp-almacena-la-informacion-de-cada-ano-en-una-tabla-distinta%2F&amp;linkname=Anexando%20datos%20cuando%20el%20ERP%20almacena%20la%20informaci%C3%B3n%20de%20cada%20a%C3%B1o%20en%20una%20tabla%20distinta." title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_x" href="https://www.addtoany.com/add_to/x?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fanexando-datos-cuando-el-erp-almacena-la-informacion-de-cada-ano-en-una-tabla-distinta%2F&amp;linkname=Anexando%20datos%20cuando%20el%20ERP%20almacena%20la%20informaci%C3%B3n%20de%20cada%20a%C3%B1o%20en%20una%20tabla%20distinta." title="X" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fanexando-datos-cuando-el-erp-almacena-la-informacion-de-cada-ano-en-una-tabla-distinta%2F&amp;linkname=Anexando%20datos%20cuando%20el%20ERP%20almacena%20la%20informaci%C3%B3n%20de%20cada%20a%C3%B1o%20en%20una%20tabla%20distinta." title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_skype" href="https://www.addtoany.com/add_to/skype?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fanexando-datos-cuando-el-erp-almacena-la-informacion-de-cada-ano-en-una-tabla-distinta%2F&amp;linkname=Anexando%20datos%20cuando%20el%20ERP%20almacena%20la%20informaci%C3%B3n%20de%20cada%20a%C3%B1o%20en%20una%20tabla%20distinta." title="Skype" rel="nofollow noopener" target="_blank"></a></p><p>La entrada <a href="https://reportingfinanciero.es/anexando-datos-cuando-el-erp-almacena-la-informacion-de-cada-ano-en-una-tabla-distinta/">Anexando datos cuando el ERP almacena la información de cada año en una tabla distinta.</a> se publicó primero en <a href="https://reportingfinanciero.es">reportingfinanciero.es</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Cómo filtrar datos a través de una lista en Power Query.</title>
		<link>https://reportingfinanciero.es/como-filtrar-datos-a-traves-de-una-lista-en-power-query/</link>
		
		<dc:creator><![CDATA[Javier San Juan]]></dc:creator>
		<pubDate>Thu, 18 Dec 2025 21:20:18 +0000</pubDate>
				<category><![CDATA[Finanzas]]></category>
		<category><![CDATA[Power Query]]></category>
		<guid isPermaLink="false">https://reportingfinanciero.es/?p=3295</guid>

					<description><![CDATA[<p>En el post de hoy vamos a ver una técnica para hacer filtros en Power Query de manera dinámica a través de una lista. ¿En qué escenarios nos puede ser útil?. Por ejemplo, si tenemos un grupo de empresas y queremos montar un informe de ventas para algunas de ellas. O si tenemos varios almacenes ... </p>
<p class="read-more-container"><a title="Cómo filtrar datos a través de una lista en Power Query." class="read-more button" href="https://reportingfinanciero.es/como-filtrar-datos-a-traves-de-una-lista-en-power-query/#more-3295" aria-label="Leer más sobre Cómo filtrar datos a través de una lista en Power Query.">Leer más</a></p>
<p>La entrada <a href="https://reportingfinanciero.es/como-filtrar-datos-a-traves-de-una-lista-en-power-query/">Cómo filtrar datos a través de una lista en Power Query.</a> se publicó primero en <a href="https://reportingfinanciero.es">reportingfinanciero.es</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>En el post de hoy vamos a ver una técnica para hacer filtros en Power Query de manera dinámica a través de una lista.</p>



<p><strong>¿En qué escenarios nos puede ser útil?. </strong></p>



<p>Por ejemplo, si tenemos un grupo de empresas y queremos montar un informe de ventas para algunas de ellas. O si tenemos varios almacenes y queremos realizar un informe de rotaciones, ventas o compras para ciertos almacenes (y que podamos cambiar el filtro de manera dinámica en una sola consulta).</p>



<p>Tendremos en Power Query una lista con las empresas/almacenes objeto del análisis y, si modificamos esa lista, se modificarán los filtros que se aplicarán en nuestras consultas.</p>



<p><strong>Veámoslo con un ejemplo.</strong></p>



<p>Supongamos que estamos elaborando un informe de ventas para nuestro grupo empresarial.</p>



<p>En primer lugar, nos conectamos a la base de datos del ERP, concretamente a la tabla que contiene el maestro de empresas, y filtramos las empresas de las que queremos hacer el informe (en nuestro ejemplo, las empresas 1 y 4):</p>



<figure class="wp-block-image size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/12/image-6.png"><img loading="lazy" decoding="async" width="677" height="268" src="https://reportingfinanciero.es/wp-content/uploads/2025/12/image-6.png" alt="" class="wp-image-3306" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/12/image-6.png 677w, https://reportingfinanciero.es/wp-content/uploads/2025/12/image-6-300x119.png 300w" sizes="auto, (max-width: 677px) 100vw, 677px" /></a></figure>



<p></p>



<p>Posteriormente, para ya dejar preparada nuestra dimensión empresas en el modelo, nos quedamos únicamente con los campos CodigoEmpresa y Empresa (que contiene el nombre de la sociedad):</p>



<figure class="wp-block-image size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/12/image.png"><img loading="lazy" decoding="async" width="788" height="269" src="https://reportingfinanciero.es/wp-content/uploads/2025/12/image.png" alt="" class="wp-image-3297" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/12/image.png 788w, https://reportingfinanciero.es/wp-content/uploads/2025/12/image-300x102.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/12/image-768x262.png 768w" sizes="auto, (max-width: 788px) 100vw, 788px" /></a></figure>



<p></p>



<p>A continuación, vamos a hacer referencia a esta consulta dimEmpresas para generar una nueva consulta con la que vamos a generar la lista que nos va a servir para filtrar todos los datos del resto de consultas.</p>



<figure class="wp-block-image size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/12/image-1.png"><img loading="lazy" decoding="async" width="633" height="571" src="https://reportingfinanciero.es/wp-content/uploads/2025/12/image-1.png" alt="" class="wp-image-3298" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/12/image-1.png 633w, https://reportingfinanciero.es/wp-content/uploads/2025/12/image-1-300x271.png 300w" sizes="auto, (max-width: 633px) 100vw, 633px" /></a></figure>



<p></p>



<p>En la nueva consulta, nos vamos a quedar únicamente con la columna “CodigoEmpresa” y, desde el menú “Transformar” vamos a elegir la opción “Convertir en lista”:</p>



<figure class="wp-block-image size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/12/image-2.png"><img loading="lazy" decoding="async" width="800" height="403" src="https://reportingfinanciero.es/wp-content/uploads/2025/12/image-2.png" alt="" class="wp-image-3299" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/12/image-2.png 800w, https://reportingfinanciero.es/wp-content/uploads/2025/12/image-2-300x151.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/12/image-2-768x387.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></figure>



<p></p>



<p>Cambiamos el nombre de la consulta a “Lista empresas” y la consulta quedaría de la siguiente forma (vemos que el icono de la consulta ha cambiado de un icono de tabla a un icono de lista):</p>



<figure class="wp-block-image size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/12/image-3.png"><img loading="lazy" decoding="async" width="596" height="264" src="https://reportingfinanciero.es/wp-content/uploads/2025/12/image-3.png" alt="" class="wp-image-3300" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/12/image-3.png 596w, https://reportingfinanciero.es/wp-content/uploads/2025/12/image-3-300x133.png 300w" sizes="auto, (max-width: 596px) 100vw, 596px" /></a></figure>



<p></p>



<p>Ahora, para construir el modelo de ventas, vamos a imaginar que vamos a necesitar conectarnos, entre otras, a estas 6 tablas: CabeceraOfertaClientes, LineasOfertaClientes, CabeceraPedidoClientes, LineasPedidoClientes, CabeceraAlabaranClientes y LineasAlbaranClientes.</p>



<p>En cada una de las consultas, tendremos que filtrar los datos por el campo CodigoEmpresa, seleccionando únicamente las empresas 1 y 4.</p>



<p>Lo que vamos a conseguir con la técnica explicada en este post, es dejar vinculado ese filtro a nuestra consulta “Lista empresas”, de manera que si cambiamos el filtro de las empresas elegidas en la consulta “dimEmpresas”, como la consulta “Lista empresas” está referenciada a “dimEmpresas”, automáticamente cambien las empresas que se filtran en las 6 tablas relacionadas con las ventas.</p>



<p><strong>Vamos a ver el ejemplo con la tabla “CabeceraOfertaCliente”. </strong></p>



<p>Nos conectamos a la tabla y nos aparece su información:</p>



<figure class="wp-block-image size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/12/image-7.png"><img loading="lazy" decoding="async" width="900" height="422" src="https://reportingfinanciero.es/wp-content/uploads/2025/12/image-7.png" alt="" class="wp-image-3307" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/12/image-7.png 900w, https://reportingfinanciero.es/wp-content/uploads/2025/12/image-7-300x141.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/12/image-7-768x360.png 768w" sizes="auto, (max-width: 900px) 100vw, 900px" /></a></figure>



<p></p>



<p>Ahora, si como planteábamos anteriormente, nuestro informe queremos que incluya únicamente a las empresas 1 y 4, iríamos al campo “CodigoEmpresa” y filtraríamos por los valores 1 y 4 como mostramos en la siguiente imagen:</p>



<figure class="wp-block-image size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/12/image-4.png"><img loading="lazy" decoding="async" width="661" height="675" src="https://reportingfinanciero.es/wp-content/uploads/2025/12/image-4.png" alt="" class="wp-image-3301" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/12/image-4.png 661w, https://reportingfinanciero.es/wp-content/uploads/2025/12/image-4-294x300.png 294w" sizes="auto, (max-width: 661px) 100vw, 661px" /></a></figure>



<p></p>



<p></p>



<p>El código que nos genera este paso de filtrado es el siguiente:</p>



<p><strong>= Table.SelectRows(dbo_CabeceraOfertaCliente, each ([CodigoEmpresa] = 1 or [CodigoEmpresa] = 4))</strong></p>



<p>Lo que pasa es que el filtro se nos queda fijado de forma estática a las empresas 1 y 4.</p>



<p>Si quisiésemos más adelante cambiar las empresas filtradas, tendríamos que venir a este paso y modificarlo (en cada una de las consultas).</p>



<p>Lo que vamos a hacer, es que este filtro de los códigos de empresa dependa de la lista que hemos creado previamente, para que nos quede filtrado de forma dinámica por la lista creada: “Lista empresas”.</p>



<p>Para ello, tocaremos el código M de este paso de filas filtradas, y pondremos el siguiente código:</p>



<p><strong>= Table.SelectRows(dbo_CabeceraOfertaCliente, each List.Contains(#”Lista empresas”, [CodigoEmpresa]))</strong></p>



<p>Lo que estamos haciendo en el código, es indicar que el campo “CodigoEmpresa” se filtre por los valores que estén contenidos en la lista “Lista empresas”.</p>



<p>Si volvemos ahora al campo “CodigoEmpresa” y desplegamos la flecha del filtro, vemos que están únicamente disponibles las empresas de la lista, la 1 y la 4:</p>



<figure class="wp-block-image size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/12/image-8.png"><img loading="lazy" decoding="async" width="1024" height="599" src="https://reportingfinanciero.es/wp-content/uploads/2025/12/image-8-1024x599.png" alt="" class="wp-image-3308" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/12/image-8-1024x599.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/12/image-8-300x176.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/12/image-8-768x450.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/12/image-8.png 1090w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p></p>



<p>Esta técnica de filtrado la usaríamos con el resto de tablas a incorporar al modelo de ventas: LineasOfertaClientes, CabeceraPedidoClientes, LineasPedidoClientes, CabeceraAlabaranClientes y LineasAlbaranClientes….</p>



<p>De esta forma, modificando la selección de las empresas a incorporar en el informe únicamente en la consulta “dimEmpresas”, conseguiremos modificar los códigos de empresa que están incluidos en la lista “Lista empresas” y, con ello, las empresas que se filtran en el resto de consultas que dependen de esa lista.</p>



<p>Espero que te sirva para tus futuros proyectos!!!</p>



<p>Seguimos 👊​</p>



<p></p>
<p><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-filtrar-datos-a-traves-de-una-lista-en-power-query%2F&amp;linkname=C%C3%B3mo%20filtrar%20datos%20a%20trav%C3%A9s%20de%20una%20lista%20en%20Power%20Query." title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-filtrar-datos-a-traves-de-una-lista-en-power-query%2F&amp;linkname=C%C3%B3mo%20filtrar%20datos%20a%20trav%C3%A9s%20de%20una%20lista%20en%20Power%20Query." title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_telegram" href="https://www.addtoany.com/add_to/telegram?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-filtrar-datos-a-traves-de-una-lista-en-power-query%2F&amp;linkname=C%C3%B3mo%20filtrar%20datos%20a%20trav%C3%A9s%20de%20una%20lista%20en%20Power%20Query." title="Telegram" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-filtrar-datos-a-traves-de-una-lista-en-power-query%2F&amp;linkname=C%C3%B3mo%20filtrar%20datos%20a%20trav%C3%A9s%20de%20una%20lista%20en%20Power%20Query." title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_x" href="https://www.addtoany.com/add_to/x?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-filtrar-datos-a-traves-de-una-lista-en-power-query%2F&amp;linkname=C%C3%B3mo%20filtrar%20datos%20a%20trav%C3%A9s%20de%20una%20lista%20en%20Power%20Query." title="X" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-filtrar-datos-a-traves-de-una-lista-en-power-query%2F&amp;linkname=C%C3%B3mo%20filtrar%20datos%20a%20trav%C3%A9s%20de%20una%20lista%20en%20Power%20Query." title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_skype" href="https://www.addtoany.com/add_to/skype?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-filtrar-datos-a-traves-de-una-lista-en-power-query%2F&amp;linkname=C%C3%B3mo%20filtrar%20datos%20a%20trav%C3%A9s%20de%20una%20lista%20en%20Power%20Query." title="Skype" rel="nofollow noopener" target="_blank"></a></p><p>La entrada <a href="https://reportingfinanciero.es/como-filtrar-datos-a-traves-de-una-lista-en-power-query/">Cómo filtrar datos a través de una lista en Power Query.</a> se publicó primero en <a href="https://reportingfinanciero.es">reportingfinanciero.es</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Cómo generar un icono de alerta en nuestra portada de un modelo financiero.</title>
		<link>https://reportingfinanciero.es/como-generar-un-icono-de-alerta-en-nuestra-portada-de-un-modelo-financiero/</link>
		
		<dc:creator><![CDATA[Javier San Juan]]></dc:creator>
		<pubDate>Fri, 01 Aug 2025 22:09:48 +0000</pubDate>
				<category><![CDATA[DAX]]></category>
		<category><![CDATA[Finanzas]]></category>
		<category><![CDATA[Visualizaciones]]></category>
		<guid isPermaLink="false">https://reportingfinanciero.es/?p=3257</guid>

					<description><![CDATA[<p>En el post de hoy vamos a ver un truquillo para generarnos una alerta en nuestra portada de un informe financiero cuando haya algún registro que no cumpla con los valores correctos. En el ejemplo que vamos a ver, tenemos creadas 2 comprobaciones sobre nuestros datos contables: 1️⃣ Un control que indique si hay algún ... </p>
<p class="read-more-container"><a title="Cómo generar un icono de alerta en nuestra portada de un modelo financiero." class="read-more button" href="https://reportingfinanciero.es/como-generar-un-icono-de-alerta-en-nuestra-portada-de-un-modelo-financiero/#more-3257" aria-label="Leer más sobre Cómo generar un icono de alerta en nuestra portada de un modelo financiero.">Leer más</a></p>
<p>La entrada <a href="https://reportingfinanciero.es/como-generar-un-icono-de-alerta-en-nuestra-portada-de-un-modelo-financiero/">Cómo generar un icono de alerta en nuestra portada de un modelo financiero.</a> se publicó primero en <a href="https://reportingfinanciero.es">reportingfinanciero.es</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>En el post de hoy vamos a ver un truquillo para generarnos una alerta en nuestra portada de un informe financiero cuando haya algún registro que no cumpla con los valores correctos.</p>



<p>En el ejemplo que vamos a ver, tenemos creadas 2 comprobaciones sobre nuestros datos contables:</p>



<p>1️⃣ Un control que indique si hay algún asiento descuadrado.&nbsp; En contabilidad es absolutamente esencial que se cumpla el principio de partida doble, es decir, que los importes que van al debe sean los mismos que los que van al haber.&nbsp; Haremos por tanto un chequeo de que todos los asientos cumplan esta regla.</p>



<p>2️⃣ Que todas las cuentas contables a 4 dígitos que usamos en nuestros apuntes contables las tengamos correctamente clasificadas en nuestro maestro de cuentas.&nbsp;</p>



<p></p>



<p>Como sabréis, el plan general contable (PGC) español, recoge únicamente determinadas cuentas a 4 dígitos.</p>



<p>Muestro a continuación una imagen de las cuentas registradas en el PGC para el subgrupo 10:</p>



<figure class="wp-block-image size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/08/image.png"><img loading="lazy" decoding="async" width="511" height="439" src="https://reportingfinanciero.es/wp-content/uploads/2025/08/image.png" alt="" class="wp-image-3258" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/08/image.png 511w, https://reportingfinanciero.es/wp-content/uploads/2025/08/image-300x258.png 300w" sizes="auto, (max-width: 511px) 100vw, 511px" /></a></figure>



<p></p>



<p>En mis modelos financieros, tengo clasificadas en mis dimensiones Balance y Cash Flow absolutamente todas las cuentas a 4 dígitos recogidas en el PGC (y en mi dimensión de Pérdidas y Ganancias únicamente las de los grupos 6 y 7 de gastos o ingresos).</p>



<p>Por ello, en el grupo 1, según la imagen anterior, tengo creados los siguientes registros de cuentas a 4 dígitos: 1000, 1010, 1020, 1030, 1034, 1040, 1044, 1080 y 1090.</p>



<p>No obstante, el PGC es una guía no estrictamente obligatoria, con lo que hay empresas que pueden usar cuentas a 4 dígitos que no estén reflejadas en el PGC.&nbsp; En ese caso, tendré que asegurarme de recoger esas cuentas a 4 dígitos que está utilizando la empresa por fuera del PGC y buscar un sistema para que mis tablas dimensionales clasifiquen correctamente esas cuentas.</p>



<p>Por ello, hago un chequeo de que si se utiliza en un apunte contable una nueva cuenta a 4 dígitos que yo no tenga mapeada, me genere un registro en una tabla que llamo “CuentasSinClasificar” (esto lo hago en la fase de ETL con Power Query normalmente).</p>



<p>Contado esto, os voy a enseñar cómo quedaría una hoja de check list en la que controlo las cuentas a 4 dígitos sin clasificar y los asientos descuadrados:</p>



<figure class="wp-block-image size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/08/image-1.png"><img loading="lazy" decoding="async" width="928" height="688" src="https://reportingfinanciero.es/wp-content/uploads/2025/08/image-1.png" alt="" class="wp-image-3259" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/08/image-1.png 928w, https://reportingfinanciero.es/wp-content/uploads/2025/08/image-1-300x222.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/08/image-1-768x569.png 768w" sizes="auto, (max-width: 928px) 100vw, 928px" /></a></figure>



<p></p>



<p>Como se puede apreciar, actualmente no habría nada fuera de control…. 🕵🏻‍♂️​</p>



<p>En la tabla “Cuentas a 4D sin clasificar” únicamente tengo incluido el campo “Cuenta4D” que viene de la tabla que indiqué que trabajaba en Power Query para quedarme con cuentas a 4 dígitos utilizadas en los apuntes contables que no tenía clasificadas para representar en mis informes de PyG, balance y cash flow.</p>



<p>En la tabla “Asientos descuadrados” llevo el identificador de cada asiento y las medidas “Debe” (que suma los importes del debe de los apuntes), “Haber” (que suma los importes del haber de los apuntes) y “Saldo” (que realiza la diferencia entre las medidas “Debe” y “Haber”).</p>



<p>Por otro lado, os voy a enseñar una imagen de portada estándar, con unos KPIs y unos iconos en el margen izquierdo para navegar entre las distintas páginas del informe:</p>



<figure class="wp-block-image size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/08/image-4.png"><img loading="lazy" decoding="async" width="1024" height="571" src="https://reportingfinanciero.es/wp-content/uploads/2025/08/image-4-1024x571.png" alt="" class="wp-image-3266" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/08/image-4-1024x571.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/08/image-4-300x167.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/08/image-4-768x428.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/08/image-4.png 1106w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p></p>



<p>El primero de los iconos, es a través del cual navegaríamos a la anterior página de check list:</p>



<figure class="wp-block-image size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/08/image-3.png"><img loading="lazy" decoding="async" width="88" height="88" src="https://reportingfinanciero.es/wp-content/uploads/2025/08/image-3.png" alt="" class="wp-image-3260" /></a></figure>



<p></p>



<p>Lo que voy a explicar en este post, es cómo realizar una medida DAX con la que dar formato condicional al borde de esa imagen, de manera que si hay algo que resaltar en mi página de check list, me salga un borde rojo alrededor de ese icono a modo de alerta; y aparezca de esta forma:</p>



<figure class="wp-block-image size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/08/image-2.png"><img loading="lazy" decoding="async" width="101" height="101" src="https://reportingfinanciero.es/wp-content/uploads/2025/08/image-2.png" alt="" class="wp-image-3261" /></a></figure>



<p></p>



<p>Lo primero que vamos a hacer es construir una medida que me indique el número de cuentas sin clasificar a 4 dígitos.&nbsp; Como habíamos dicho que teníamos construida una tabla en fase de ETL que ya me daba esos registros, simplemente será contar las filas de esa tabla:</p>



<p>#CuentasSinClasificar = COUNTROWS(CuentasSinClasificar)</p>



<p></p>



<p>A continuación, haremos una nueva medida DAX con la que obtener el número de asientos descuadrados. Esta nueva medida no es tan básica como la anterior, pero vamos a explicarla paso a paso para entenderla.</p>



<p>La medida sería la siguiente:</p>



<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-8cf370e7 wp-block-group-is-layout-flex">
<p>#AsientosDescuadrados =</p>



<p>CALCULATE (</p>



<p>&nbsp;&nbsp;&nbsp; COUNTROWS (</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FILTER (</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ADDCOLUMNS (</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SUMMARIZE ( factDiario, factDiario[id Asiento] ),</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; «@Saldo», [Saldo]</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ),</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [@Saldo] &lt;&gt; 0</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )</p>



<p>&nbsp;&nbsp;&nbsp; ),</p>



<p>&nbsp;&nbsp;&nbsp; ALL ()</p>



<p>)</p>
</div>



<p></p>



<p>NOTA: &nbsp;Si tenemos el dato del idAsiento únicamente en una dimensión degenerada de apuntes (en lugar de en la tabla de hechos del libro diario), tendremos que hacer el SUMMARIZE de esa tabla dimApuntes.</p>



<p></p>



<p>Y ahora vamos a explicarla (de adentro hacia afuera):</p>



<p>Lo que estamos haciendo es una tabla virtual que nos devuelve los valores únicos del campo idAsiento, con la función SUMMARIZE, y añadimos a esa tabla virtual el saldo de cada asiento con la función ADDCOLUMNS.</p>



<p>Con ello, obtenemos una tabla con las columnas idAsiento y Saldo.</p>



<p>Nos quedaría una tabla similar a esta:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>idAsiento</strong></td><td><strong>Saldo</strong></td></tr><tr><td>1-2023-1</td><td>0</td></tr><tr><td>1-2023-2</td><td>0</td></tr><tr><td>1-2023-3</td><td>0</td></tr><tr><td>1-2023-4</td><td>0</td></tr><tr><td>1-2023-5</td><td>0</td></tr></tbody></table></figure>



<p></p>



<p>A continuación, con la función FILTER, filtramos la tabla por los registros que tengan el saldo distinto de cero ,es decir, los asientos que estén descuadrados.</p>



<p>En el siguiente paso, con la función COUNTROWS, contamos el número de registros que han quedado en nuestra tabla virtual ya filtrada.</p>



<p>Por último, hacemos una modificación del contexto de evaluación con CALCULATE y la función ALL() para eliminar el efecto de los segmentadores de año, mes y empresa que tenemos en la parte superior de la hoja de Inicio (ver imagen anterior).</p>



<p>Este paso es necesario porque queremos que se nos resalte en rojo cuando haya cualquier registro fuera de lo normal, independientemente de los filtros aplicados. Es decir, si hay un asiento descuadrado que es del año 2022 pero yo tengo filtrado el año 2023, si no incluyo el CALCULATE(…….ALL()) no se me resaltará el borde del icono en rojo como un error ese asiento descuadrado; ya que identificaría que para el año filtrado 2023 todo está correcto.</p>



<p>En caso de que esté todo OK (todos los asientos cuadrados) esta medida debería devolver un resultado de cero.</p>



<p>Por último, vamos a hacer la medida DAX con la que vamos a dar el formato condicional al borde de nuestra imagen:</p>



<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-8cf370e7 wp-block-group-is-layout-flex">
<p>Icono Check List =</p>



<p>IF (</p>



<p>&nbsp;&nbsp;&nbsp; [#CuentasSinClasificar] + [#AsientosDescuadrados] &gt; 0,</p>



<p>&nbsp;&nbsp;&nbsp; «Red»,</p>



<p>&nbsp;&nbsp;&nbsp; «White»</p>



<p>)</p>
</div>



<p></p>



<p>En caso de que haya algún caso problemático, nos devolverá el borde en rojo, y en caso contrario en blanco (como el fondo que tiene la imagen).</p>



<p>Ahora lo que nos toca es ir al formato de la imagen que tiene nuestro icono de check list y configurar el formato condicional del borde de la siguiente manera:</p>



<figure class="wp-block-image size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/08/image-5.png"><img loading="lazy" decoding="async" width="1024" height="494" src="https://reportingfinanciero.es/wp-content/uploads/2025/08/image-5-1024x494.png" alt="" class="wp-image-3267" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/08/image-5-1024x494.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/08/image-5-300x145.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/08/image-5-768x371.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/08/image-5.png 1152w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p></p>



<p>Al estar todos los datos comprobados en el check list correctos no notamos ninguna diferencia, pero vamos a ver&nbsp; lo que pasa si fuerzo a que un asiento esté descuadrado…</p>



<p>Voy a modificar el asiento 50 de la empresa 1 del ejercicio 2022 (en el modelo se correspondería con el identificador de asiento 1_2022_50):</p>



<figure class="wp-block-image size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/08/image-1.jpg"><img loading="lazy" decoding="async" width="1024" height="68" src="https://reportingfinanciero.es/wp-content/uploads/2025/08/image-1-1024x68.jpg" alt="" class="wp-image-3263" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/08/image-1-1024x68.jpg 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/08/image-1-300x20.jpg 300w, https://reportingfinanciero.es/wp-content/uploads/2025/08/image-1-768x51.jpg 768w, https://reportingfinanciero.es/wp-content/uploads/2025/08/image-1.jpg 1106w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p></p>



<p>Y mirad el efecto que tiene sobre el icono del check list cuando actualizamos los datos:</p>



<figure class="wp-block-image size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/08/image-3.jpg"><img loading="lazy" decoding="async" width="1024" height="577" src="https://reportingfinanciero.es/wp-content/uploads/2025/08/image-3-1024x577.jpg" alt="" class="wp-image-3265" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/08/image-3-1024x577.jpg 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/08/image-3-300x169.jpg 300w, https://reportingfinanciero.es/wp-content/uploads/2025/08/image-3-768x433.jpg 768w, https://reportingfinanciero.es/wp-content/uploads/2025/08/image-3.jpg 1105w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p></p>



<p>Nuestro icono se ha resaltado con un borde rojo.</p>



<p>Y si pincho sobre el icono para realizar la navegación entre páginas y que vaya a la página de check list, encontramos el detalle de lo que está generando la alerta:</p>



<figure class="wp-block-image size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/08/image.jpg"><img loading="lazy" decoding="async" width="1024" height="788" src="https://reportingfinanciero.es/wp-content/uploads/2025/08/image-1024x788.jpg" alt="" class="wp-image-3262" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/08/image-1024x788.jpg 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/08/image-300x231.jpg 300w, https://reportingfinanciero.es/wp-content/uploads/2025/08/image-768x591.jpg 768w, https://reportingfinanciero.es/wp-content/uploads/2025/08/image.jpg 1105w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p></p>



<p>Nos aparece el asiento 1_2022_50 descuadrado, con lo que tendremos que corregirlo en el ERP (o en el origen que corresponda) para que los informes vuelvan a salir correctos.</p>



<p>Es una técnica que estoy incorporando en todos mis informes financieros y que los usuarios finales agradecen mucho para no tener que estar pendientes de entrar a la hoja de check list, ya que en la propia página de inicio ya tienen el chivato si hay algún error en los datos 😁​</p>



<p>Seguimos!!! 👊​</p>
<p><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-generar-un-icono-de-alerta-en-nuestra-portada-de-un-modelo-financiero%2F&amp;linkname=C%C3%B3mo%20generar%20un%20icono%20de%20alerta%20en%20nuestra%20portada%20de%20un%20modelo%20financiero." title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-generar-un-icono-de-alerta-en-nuestra-portada-de-un-modelo-financiero%2F&amp;linkname=C%C3%B3mo%20generar%20un%20icono%20de%20alerta%20en%20nuestra%20portada%20de%20un%20modelo%20financiero." title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_telegram" href="https://www.addtoany.com/add_to/telegram?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-generar-un-icono-de-alerta-en-nuestra-portada-de-un-modelo-financiero%2F&amp;linkname=C%C3%B3mo%20generar%20un%20icono%20de%20alerta%20en%20nuestra%20portada%20de%20un%20modelo%20financiero." title="Telegram" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-generar-un-icono-de-alerta-en-nuestra-portada-de-un-modelo-financiero%2F&amp;linkname=C%C3%B3mo%20generar%20un%20icono%20de%20alerta%20en%20nuestra%20portada%20de%20un%20modelo%20financiero." title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_x" href="https://www.addtoany.com/add_to/x?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-generar-un-icono-de-alerta-en-nuestra-portada-de-un-modelo-financiero%2F&amp;linkname=C%C3%B3mo%20generar%20un%20icono%20de%20alerta%20en%20nuestra%20portada%20de%20un%20modelo%20financiero." title="X" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-generar-un-icono-de-alerta-en-nuestra-portada-de-un-modelo-financiero%2F&amp;linkname=C%C3%B3mo%20generar%20un%20icono%20de%20alerta%20en%20nuestra%20portada%20de%20un%20modelo%20financiero." title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_skype" href="https://www.addtoany.com/add_to/skype?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-generar-un-icono-de-alerta-en-nuestra-portada-de-un-modelo-financiero%2F&amp;linkname=C%C3%B3mo%20generar%20un%20icono%20de%20alerta%20en%20nuestra%20portada%20de%20un%20modelo%20financiero." title="Skype" rel="nofollow noopener" target="_blank"></a></p><p>La entrada <a href="https://reportingfinanciero.es/como-generar-un-icono-de-alerta-en-nuestra-portada-de-un-modelo-financiero/">Cómo generar un icono de alerta en nuestra portada de un modelo financiero.</a> se publicó primero en <a href="https://reportingfinanciero.es">reportingfinanciero.es</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Automatizando el control de asientos descuadrados</title>
		<link>https://reportingfinanciero.es/automatizando-el-control-de-asientos-descuadrados/</link>
		
		<dc:creator><![CDATA[antonio@gestion23.com]]></dc:creator>
		<pubDate>Mon, 02 Jun 2025 12:15:39 +0000</pubDate>
				<category><![CDATA[Finanzas]]></category>
		<category><![CDATA[Power Automate]]></category>
		<category><![CDATA[Power Query]]></category>
		<guid isPermaLink="false">https://reportingfinanciero.es/?p=3208</guid>

					<description><![CDATA[<p>📝 Uno de los puntos habituales a repasar cuando estamos revisando nuestros cierres contables es el que no haya ningún asiento descuadrado. ⚖️​Es decir, que se cumpla el principio de partida doble (si nos ponemos técnicos), o “las gallinas que entran por las que salen” si hablamos en lenguaje coloquial 😉 Los programas de contabilidad ... </p>
<p class="read-more-container"><a title="Automatizando el control de asientos descuadrados" class="read-more button" href="https://reportingfinanciero.es/automatizando-el-control-de-asientos-descuadrados/#more-3208" aria-label="Leer más sobre Automatizando el control de asientos descuadrados">Leer más</a></p>
<p>La entrada <a href="https://reportingfinanciero.es/automatizando-el-control-de-asientos-descuadrados/">Automatizando el control de asientos descuadrados</a> se publicó primero en <a href="https://reportingfinanciero.es">reportingfinanciero.es</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>📝 Uno de los puntos habituales a repasar cuando estamos revisando nuestros cierres contables es el que no haya ningún asiento descuadrado.</p>



<p>⚖️​Es decir, que se cumpla el principio de partida doble (si nos ponemos técnicos), o “las gallinas que entran por las que salen” si hablamos en lenguaje coloquial 😉</p>



<p>Los programas de contabilidad o ERPs suelen tener avisos que nos protegen ante errores al introducir asientos descuadrados.</p>



<p>En la siguiente imagen, muestro un mensaje que proporciona SAGE 200 Advanced cuando pretendo introducir un asiento descuadrado:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image.png"><img loading="lazy" decoding="async" width="776" height="448" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image.png" alt="" class="wp-image-3210" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image.png 776w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-300x173.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-768x443.png 768w" sizes="auto, (max-width: 776px) 100vw, 776px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p><em>NOTA: Los pasos e imágenes que veremos en el post están basados en SAGE 200 Advanced.</em></p>



<p>No obstante, si el usuario pulsa sobre el botón “Sí”, el asiento se graba en la base de datos tan tranquilamente…🤔</p>



<p>Incluso hay muchos asientos que no les introduce ningún usuario manualmente, sino que se generan automáticamente desde algún proceso que tengamos configurado bien desde la versión estándar del programa, o alguna personalización que hayamos implementado (contabilización automática de facturas de venta/compra, control de riesgos por descuento de efectos, recepción de albaranes de compra…)</p>



<p>En esos casos también corremos el riesgo de que algún asiento automático entre al programa con algún descuadre por alguna incidencia que se haya saltado los controles…</p>



<p>Los programas suelen incluir también una opción para sacar un listado con los asientos descuadrados que se han introducido en el sistema.</p>



<p>En SAGE 200 Advanced la pantalla sería la siguiente (si tenemos la contabilidad de varias empresas en la interfaz de SAGE debemos ir cambiando de empresa para ir consultando la pantalla empresa por empresa, mientras que en Power BI podremos consultar todas las empresas al mismo tiempo):</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-1.png"><img loading="lazy" decoding="async" width="886" height="365" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-1.png" alt="" class="wp-image-3211" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-1.png 886w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-1-300x124.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-1-768x316.png 768w" sizes="auto, (max-width: 886px) 100vw, 886px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Vemos que en el asiento 15.314, del 15/04/2025, hay un descuadre de 201,25 €, ya que hay más gallinas que han entrado por el Debe de las que han salido por el Haber 😉.</p>



<p>Podemos comprobarlo entrando al asiento:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-2.png"><img loading="lazy" decoding="async" width="886" height="345" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-2.png" alt="" class="wp-image-3212" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-2.png 886w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-2-300x117.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-2-768x299.png 768w" sizes="auto, (max-width: 886px) 100vw, 886px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>En el post de hoy vamos a ver cómo generar un proceso que nos compruebe periódicamente si hay algún asiento descuadrado y, en caso afirmativo, nos envíe un email avisándonos de la incidencia para poder corregirla.</p>



<p>Lo primero que vamos a hacer es entrar en Power BI y, a través del conector de SQL Server de Power Query, conectarnos a la base de datos del ERP, concretamente a la tabla “Movimientos”, que es donde se almacena la información de los apuntes contables:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-3.png"><img loading="lazy" decoding="async" width="1024" height="789" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-3-1024x789.png" alt="" class="wp-image-3213" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-3-1024x789.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-3-300x231.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-3-768x591.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-3.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Nos quedamos únicamente con las siguientes columnas:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-4.png"><img loading="lazy" decoding="async" width="1024" height="512" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-4-1024x512.png" alt="" class="wp-image-3214" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-4-1024x512.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-4-300x150.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-4-768x384.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-4.png 1091w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Me voy a quedar a continuación únicamente con los asientos que sean del ejercicio actual o del anterior (de forma dinámica), porque entendemos que los periodos anteriores ya deberían estar cerrados y con la contabilidad revisada y bloqueada.&nbsp; Lo hacemos mediante el siguiente código M:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-5.png"><img loading="lazy" decoding="async" width="1024" height="528" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-5-1024x528.png" alt="" class="wp-image-3215" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-5-1024x528.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-5-300x155.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-5-768x396.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-5.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>A partir de las columnas “CodigoEmpresa”, “Ejercicio” y “Asiento” (las selecciono en ese mismo orden con el “Control” pulsado) nos construimos el identificador único del asiento; ya que el campo “Asiento” se puede repetir para distintos ejercicios y códigos de empresa (resalto en amarillo en la imagen anterior que tenemos asientos de distintas empresas).</p>



<p>Lo hacemos a través de la opción “Transformar” =&gt; “Combinar columnas” y usamos el separador que queramos (yo suelo usar un guión bajo) y el nombre de la nueva columna (en mi caso “idAsiento”):</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-6.png"><img loading="lazy" decoding="async" width="1024" height="434" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-6-1024x434.png" alt="" class="wp-image-3216" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-6-1024x434.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-6-300x127.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-6-768x325.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-6.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Quedaría así la información:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-7.png"><img loading="lazy" decoding="async" width="809" height="581" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-7.png" alt="" class="wp-image-3217" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-7.png 809w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-7-300x215.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-7-768x552.png 768w" sizes="auto, (max-width: 809px) 100vw, 809px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Como vemos, SAGE nos da el importe del apunte en la columna “ImporteAsiento” y en la columna “CargoAbono” nos indica si ese importe va al Debe o al Haber.</p>



<p>En el caso de otros ERPs nos aparecen los importes directamente separados en columnas de Debe y Haber.</p>



<p>Vamos a hacer esa separación a través de agregar nuevas columnas condicionales que nos den los importes de debe y haber por separado.</p>



<p>Muestro a continuación cómo sería la creación de la columna “Debe” y seguiríamos el mismo patrón para crear la del “Haber”:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-8.png"><img loading="lazy" decoding="async" width="1024" height="412" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-8-1024x412.png" alt="" class="wp-image-3218" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-8-1024x412.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-8-300x121.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-8-768x309.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-8.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Con esos pasos ya tendría creadas las nuevas columnas:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-9.png"><img loading="lazy" decoding="async" width="1024" height="457" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-9-1024x457.png" alt="" class="wp-image-3219" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-9-1024x457.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-9-300x134.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-9-768x343.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-9.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Ahora simplemente voy a darle formato Número Decimal Fijo a estas nuevas 2 columnas y voy a eliminar las columnas “ImporteAsiento” y “CargoAbono”, ya que ya no las voy a necesitar.</p>



<p>Llegaríamos a la siguiente situación:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-10.png"><img loading="lazy" decoding="async" width="798" height="581" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-10.png" alt="" class="wp-image-3220" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-10.png 798w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-10-300x218.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-10-768x559.png 768w" sizes="auto, (max-width: 798px) 100vw, 798px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Lo siguiente que voy a hacer es agrupar los datos por el campo “idAsiento” para obtener el total de importe al Debe y total importe al Haber de cada uno de los asientos, ya que mi único objetivo es saber si están descuadrados (los datos vienen a granularidad de apunte contable y cada asiento contable puede tener N apuntes):</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-11.png"><img loading="lazy" decoding="async" width="1024" height="786" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-11-1024x786.png" alt="" class="wp-image-3221" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-11-1024x786.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-11-300x230.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-11-768x589.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-11.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Ahora voy a hacer una nueva columna calculada a la que voy a llamar “Saldo” y que calcularé como la resta de las columnas “Total_Debe” y “Total_Haber”. Tendré que seleccionar las 2 columnas con el Control en el orden indicado (primero Total_Debe y luego Total_Haber), y posteriormente seguir los pasos de la siguiente pantalla:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-12.png"><img loading="lazy" decoding="async" width="1024" height="676" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-12-1024x676.png" alt="" class="wp-image-3222" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-12-1024x676.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-12-300x198.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-12-768x507.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-12.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>En la siguiente pantalla vemos los resultados de la nueva columna. Resalto en amarillo algunos valores que debería ser cero pero cuyo resultado no es exactamente cero. Como se aprecia en el valor marcado en azul, del origen nos vienen valores que no están correctamente redondeados, lo cual es el motivo de esos valores resaltados en amarillo:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-13.png"><img loading="lazy" decoding="async" width="921" height="1024" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-13-921x1024.png" alt="" class="wp-image-3223" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-13-921x1024.png 921w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-13-270x300.png 270w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-13-768x854.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-13.png 1067w" sizes="auto, (max-width: 921px) 100vw, 921px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Vamos a modificar el nombre de la columna “Resta” por el de “Saldo” y modificamos el tipo de dato a la columna para ponerlo como “Numero decimal fijo” para resolver ese problema de los redondeos. Vemos en la siguiente pantalla que los mismos registros que en la pantalla anterior no aparecían con valor cero ahora sí que lo hacen gracias al cambio de tipo de dato:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-14.png"><img loading="lazy" decoding="async" width="1024" height="602" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-14-1024x602.png" alt="" class="wp-image-3224" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-14-1024x602.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-14-300x176.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-14-768x451.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-14.png 1050w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Si filtramos los valores de la columna “Saldo” por los que sean distintos a cero, veremos cómo pasamos a tener un único registro en la tabla, que es precisamente el que nos marcaba la interfaz del ERP, el asiento nº 15314 del ejercicio 2025 de la empresa 1:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-15.png"><img loading="lazy" decoding="async" width="1024" height="535" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-15-1024x535.png" alt="" class="wp-image-3225" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-15-1024x535.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-15-300x157.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-15-768x401.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-15.png 1062w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Por último, eliminaría las columnas Total_Debe y Total_Haber, dado que ya no las necesito, y pulso sobre cerrar y aplicar para llevarme los datos desde Power Query a Power BI.</p>



<p>Vemos a continuación los datos desde la vista de tabla de Power BI Desktop:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-16.png"><img loading="lazy" decoding="async" width="940" height="514" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-16.png" alt="" class="wp-image-3226" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-16.png 940w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-16-300x164.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-16-768x420.png 768w" sizes="auto, (max-width: 940px) 100vw, 940px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Tras esto, haremos una sencilla medida DAX que lo que hará será contar el número de filas de nuestra tabla y que nos dará como el resultado el número de asientos que tenemos descuadrados en nuestra contabilidad. Vemos a continuación el resultado sobre un visual de tarjeta:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-17.png"><img loading="lazy" decoding="async" width="761" height="628" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-17.png" alt="" class="wp-image-3227" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-17.png 761w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-17-300x248.png 300w" sizes="auto, (max-width: 761px) 100vw, 761px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Ahora lo que vamos a hacer es obtener la consulta DAX que genera el objeto visual para después poder pasársela a Power Automate.</p>



<p>Para ello, vamos el menú “Ver” =&gt; “Analizador de rendimiento”. Pulsamos sobre “Actualizar objetos visuales” y copiamos la consulta con el botón “Copiar consulta”:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-18.png"><img loading="lazy" decoding="async" width="1024" height="292" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-18-1024x292.png" alt="" class="wp-image-3228" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-18-1024x292.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-18-300x86.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-18-768x219.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-18.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>El texto que se nos copia en el portapapeles es el siguiente:</p>



<p>// DAX Query</p>



<p>EVALUATE</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ROW(</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; «v__Asientos_Descuadrados», &#8216;Movimientos'[# Asientos Descuadrados]</p>



<p>)</p>



<p>Ahora lo que vamos a hacer es publicar nuestro informe en el servicio de Power BI desde el botón “Publicar”, y seleccionar el área de trabajo donde queramos publicarlo.</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-19.png"><img loading="lazy" decoding="async" width="1024" height="924" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-19-1024x924.png" alt="" class="wp-image-3229" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-19-1024x924.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-19-300x271.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-19-768x693.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-19.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Una vez publicado, configuraremos la sincronización con la puerta de enlace al servidor donde esté la base de datos del ERP; y estableceremos las actualizaciones programadas que consideremos (en nuestro caso una actualización diaria a las 01:00 a.m.).</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-20.png"><img loading="lazy" decoding="async" width="1024" height="426" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-20-1024x426.png" alt="" class="wp-image-3230" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-20-1024x426.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-20-300x125.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-20-768x320.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-20.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>A continuación, nos vamos a Power Automate y creamos un flujo de nube programado que se ejecute todos los días a las 02:00 a.m. (como hemos indicado en el servicio de Power BI que el informe se actualice a las 01:00 a.m., a las 02:00 a.m. ya nos aseguremos que el informe esté actualizado y que podamos “pillar” a los nuevos asientos descuadrados):</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-21.png"><img loading="lazy" decoding="async" width="1024" height="549" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-21-1024x549.png" alt="" class="wp-image-3231" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-21-1024x549.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-21-300x161.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-21-768x411.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-21.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>A continuación, añadimos una nueva acción al flujo y elegimos la acción de ejecutar una consulta contra un conjunto de datos de Power BI.</p>



<p>Debemos seleccionar el área de trabajo y el modelo semántico y, posteriormente, pegar en el “Texto de la consulta” la consulta DAX que copiamos en el portapapeles cuando seguimos los pasos de ver el analizador de rendimiento de Power BI Desktop:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-22.png"><img loading="lazy" decoding="async" width="1024" height="533" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-22-1024x533.png" alt="" class="wp-image-3232" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-22-1024x533.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-22-300x156.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-22-768x400.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-22.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Tras ello, añadimos una nueva acción y elegimos la acción “Seleccionar”.&nbsp;</p>



<p>En el apartado “Desde” pulsamos sobre el icono de un rayo que nos permite obtener datos del paso anterior:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-23.png"><img loading="lazy" decoding="async" width="1024" height="438" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-23-1024x438.png" alt="" class="wp-image-3233" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-23-1024x438.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-23-300x128.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-23-768x329.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-23.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Elegimos la opción “Primeras filas de la tabla”:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-24.png"><img loading="lazy" decoding="async" width="705" height="292" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-24.png" alt="" class="wp-image-3234" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-24.png 705w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-24-300x124.png 300w" sizes="auto, (max-width: 705px) 100vw, 705px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Dejamos configurados los campos de la opción “Mapa” de la siguiente forma:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-25.png"><img loading="lazy" decoding="async" width="876" height="426" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-25.png" alt="" class="wp-image-3235" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-25.png 876w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-25-300x146.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-25-768x373.png 768w" sizes="auto, (max-width: 876px) 100vw, 876px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>A continuación, añadimos un nuevo paso con la acción “Redactar” e introducimos la siguiente expresión desde el botón con las iniciales “fx”:</p>



<p><strong>first(first(body(&#8216;Seleccionar&#8217;))[&#8216;#Asientos&#8217;])[&#8216;[v__Asientos_Descuadrados]&#8217;]</strong></p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-26.png"><img loading="lazy" decoding="async" width="1024" height="872" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-26-1024x872.png" alt="" class="wp-image-3236" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-26-1024x872.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-26-300x255.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-26-768x654.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-26.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>‘Seleccionar’ hace referencia al nombre del paso anterior del flujo de Power Automate.</p>



<p>‘#Asientos’ es el nombre que hemos dado al parámetro en la sección “Mapa” de la imagen del paso anterior.</p>



<p>&#8216;[v__Asientos_Descuadrados]&#8217; nos viene establecido desde la consulta DAX del objeto visual de tarjeta.</p>



<p>Este último paso ya nos devuelve como Output el valor de la tarjeta, en nuestro caso, la salida es el valor “1”. Lo podemos comprobar si ejecutamos el flujo manualmente y comprobamos los resultados:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-27.png"><img loading="lazy" decoding="async" width="663" height="1024" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-27-663x1024.png" alt="" class="wp-image-3237" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-27-663x1024.png 663w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-27-194x300.png 194w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-27-768x1186.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-27.png 887w" sizes="auto, (max-width: 663px) 100vw, 663px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>A continuación, añadimos un nuevo paso de condición con el objetivo de que si el valor de salida del paso anterior (que es el valor de la tarjeta de Power BI) es mayor que cero, nos envíe un email de alerta para que sepamos que hay algún asiento descuadrado:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-28.png"><img loading="lazy" decoding="async" width="1024" height="975" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-28-1024x975.png" alt="" class="wp-image-3238" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-28-1024x975.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-28-300x286.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-28-768x731.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-28.png 1086w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-29.png"><img loading="lazy" decoding="async" width="776" height="425" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-29.png" alt="" class="wp-image-3239" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-29.png 776w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-29-300x164.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-29-768x421.png 768w" sizes="auto, (max-width: 776px) 100vw, 776px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Posteriormente, indicamos en si se cumple la condición, envíe un email al destinatario que indiquemos y en el cuerpo del email añadimos el nº de asientos descuadrados a través de la salida del paso “Redactar”:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-30.png"><img loading="lazy" decoding="async" width="1024" height="508" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-30-1024x508.png" alt="" class="wp-image-3240" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-30-1024x508.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-30-300x149.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-30-768x381.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-30.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Ya lo tendríamos todo preparado….</p>



<p>Falta ver que todo funcione y a continuación os muestro la prueba de que puntualmente a las 02:00, tenía un email en mi buzón de entrada:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-31.png"><img loading="lazy" decoding="async" width="1024" height="409" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-31-1024x409.png" alt="" class="wp-image-3241" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-31-1024x409.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-31-300x120.png 300w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-31-768x307.png 768w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-31.png 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Podríamos adaptar el proceso si queremos incluir en el aviso las cuentas contables que intervienen en los apuntes de cada asiento, o incluso los conceptos, y enviar por email una tabla que represente el asiento tal y como lo vemos en el ERP.</p>



<p>Por simplificarlo lo hemos dejado en una notificación que nos indique que hay algún asiento descuadrado y ya con ese aviso iremos nosotros a ver la pantalla de descuadres al ERP y modificaremos los errores que detectemos.</p>



<p>También podemos incorporar a Power BI una sencilla tabla con los asientos de Power BI y comprobarlos desde nuestro informe en Power BI:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-32.png"><img loading="lazy" decoding="async" width="472" height="209" src="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-32.png" alt="" class="wp-image-3242" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/06/image-32.png 472w, https://reportingfinanciero.es/wp-content/uploads/2025/06/image-32-300x133.png 300w" sizes="auto, (max-width: 472px) 100vw, 472px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Sencillo y realmente útil, ¿no crees?.</p>



<p>La verdad es que esta combinación de Power Automate y Power BI es realmente potente y es uno de los desafíos en los que quiero centrarme en el corto plazo.</p>



<p>Veremos a dónde nos lleva y, como siempre, os iré compartiendo nuevos retos y funcionalidades.</p>



<p>Seguimos!!!&nbsp;👊</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<p><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizando-el-control-de-asientos-descuadrados%2F&amp;linkname=Automatizando%20el%20control%20de%20asientos%20descuadrados" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizando-el-control-de-asientos-descuadrados%2F&amp;linkname=Automatizando%20el%20control%20de%20asientos%20descuadrados" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_telegram" href="https://www.addtoany.com/add_to/telegram?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizando-el-control-de-asientos-descuadrados%2F&amp;linkname=Automatizando%20el%20control%20de%20asientos%20descuadrados" title="Telegram" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizando-el-control-de-asientos-descuadrados%2F&amp;linkname=Automatizando%20el%20control%20de%20asientos%20descuadrados" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_x" href="https://www.addtoany.com/add_to/x?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizando-el-control-de-asientos-descuadrados%2F&amp;linkname=Automatizando%20el%20control%20de%20asientos%20descuadrados" title="X" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizando-el-control-de-asientos-descuadrados%2F&amp;linkname=Automatizando%20el%20control%20de%20asientos%20descuadrados" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_skype" href="https://www.addtoany.com/add_to/skype?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizando-el-control-de-asientos-descuadrados%2F&amp;linkname=Automatizando%20el%20control%20de%20asientos%20descuadrados" title="Skype" rel="nofollow noopener" target="_blank"></a></p><p>La entrada <a href="https://reportingfinanciero.es/automatizando-el-control-de-asientos-descuadrados/">Automatizando el control de asientos descuadrados</a> se publicó primero en <a href="https://reportingfinanciero.es">reportingfinanciero.es</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Cálculo de saldos medios en modelos financieros</title>
		<link>https://reportingfinanciero.es/calculo-de-saldos-medios-en-modelos-financieros/</link>
		
		<dc:creator><![CDATA[Javier San Juan]]></dc:creator>
		<pubDate>Fri, 21 Mar 2025 21:34:19 +0000</pubDate>
				<category><![CDATA[DAX]]></category>
		<category><![CDATA[Finanzas]]></category>
		<guid isPermaLink="false">https://reportingfinanciero.es/?p=3154</guid>

					<description><![CDATA[<p>En el post de hoy vamos a hablar sobre la forma de calcular en Power BI saldos medios para poder usarlos en nuestros cálculos de ratios de nuestros modelos financieros. Vamos a tomar como base de nuestro ejemplo el cálculo de la rentabilidad económica, también conocida como ROA (Return On Assets). Este ratio se enfoca ... </p>
<p class="read-more-container"><a title="Cálculo de saldos medios en modelos financieros" class="read-more button" href="https://reportingfinanciero.es/calculo-de-saldos-medios-en-modelos-financieros/#more-3154" aria-label="Leer más sobre Cálculo de saldos medios en modelos financieros">Leer más</a></p>
<p>La entrada <a href="https://reportingfinanciero.es/calculo-de-saldos-medios-en-modelos-financieros/">Cálculo de saldos medios en modelos financieros</a> se publicó primero en <a href="https://reportingfinanciero.es">reportingfinanciero.es</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>En el post de hoy vamos a hablar sobre la forma de calcular en Power BI saldos medios para poder usarlos en nuestros cálculos de ratios de nuestros modelos financieros.</p>



<p>Vamos a tomar como base de nuestro ejemplo el cálculo de la <strong>rentabilidad económica</strong>, también conocida como <strong>ROA</strong> (Return On Assets).</p>



<p>Este ratio se enfoca en la eficiencia de la empresa en el uso de sus activos para generar ganancias, y se calcula como el cociente entre el beneficio antes de intereses e impuestos y los activos totales medios.</p>



<p>La fórmula DAX quedaría de la siguiente forma:</p>



<p>ROA = DIVIDE(</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [BAII],</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [AT Medio]</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; )</p>



<p></p>



<p>Y ahora viene la pregunta:<strong> ¿cómo calculamos en Power BI el activo total medio?.</strong></p>



<p>Si somos un <strong>agente externo a la empresa</strong>, únicamente tendremos disponible la información de las cuentas anuales publicadas en el <strong>registro mercantil</strong>, con lo que tendremos que conformarnos con calcular el AT Medio como la media entre el activo del cierre de ejercicio N y el del cierre del ejercicio N-1:</p>



<p>AT Medio = (AT + AT PY)/2</p>



<p>      <em>*AT PY =&gt; Activo Total previous year.</em></p>



<p>Sin embargo, si tenemos <strong>acceso a la contabilidad</strong> de la empresa, ya seamos parte de su equipo financiero o consultores externos, tenemos la opción de montar en Power BI un <strong>informe financiero conectado al libro diario</strong>.</p>



<p>En ese caso, podemos calcular el Total Activo a cada una de las fechas de nuestro modelo.</p>



<p>Por tanto, podríamos optar por sacar un saldo medio del activo a través de una tabla virtual con DAX, que nos refleje el <strong>saldo para cada una de las fechas de nuestro calendario</strong>:</p>



<p>AT Medio = AVERAGEX(</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ADDCOLUMNS(</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; VALUES(dimCalendario[Fecha]),</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; «@TA», [Total Activo]</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ),</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [@TA]</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; )</p>



<p>En esta fórmula, la parte que va dentro del <strong>ADDCOLUMNS </strong>nos creará la tabla virtual con el saldo para cada fecha:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/03/image.png"><img loading="lazy" decoding="async" width="504" height="554" src="https://reportingfinanciero.es/wp-content/uploads/2025/03/image.png" alt="" class="wp-image-3155" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/03/image.png 504w, https://reportingfinanciero.es/wp-content/uploads/2025/03/image-273x300.png 273w" sizes="auto, (max-width: 504px) 100vw, 504px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>El AVERAGEX calculará la media sobre los valores de la columna de la tabla virtual que tiene los valores del total activo (@TA).</p>



<p>Con ello, obtendremos un dato mucho más representativo que si cogemos únicamente los 2 valores de los cierres de ejercicio N y N-1.</p>



<p><strong>Opción 2</strong>: También podríamos optar por calcular la media de los valores del activo únicamente de los <strong>saldos de cada cierre mensual</strong> (y no de todos los días como en la propuesta anterior), ya que quizás solo queremos fiarnos de los datos de cierres mensuales revisados, una vez incluidas amortizaciones, regularización de existencias, asientos de nóminas, periodificaciones….</p>



<p>En ese caso, la fórmula debe crear una tabla virtual con los valores del total activo a cierre de cada uno de los meses:</p>



<p>AT Medio 2 = AVERAGEX(</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ADDCOLUMNS(</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; VALUES(<strong>dimCalendario[Año-Mes]</strong>),</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; «@TA», [Total Activo]</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ),</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [@TA]</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; )</p>



<p>Obtendríamos la siguiente tabla virtual sobre la que calcular el AVERAGEX:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/03/image-1.png"><img loading="lazy" decoding="async" width="487" height="628" src="https://reportingfinanciero.es/wp-content/uploads/2025/03/image-1.png" alt="" class="wp-image-3156" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/03/image-1.png 487w, https://reportingfinanciero.es/wp-content/uploads/2025/03/image-1-233x300.png 233w" sizes="auto, (max-width: 487px) 100vw, 487px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p></p>



<p>Una vez calculado el AT Medio con alguna de las 2 opciones anteriores, la fórmula del ROA quedaría de la siguiente forma:</p>



<p>ROA = DIVIDE(</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [BAII],</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [AT Medio]</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; )</p>



<p></p>



<p>Debemos tener en cuenta que el ROA es calculado comúnmente al cierre de los ejercicios, con lo que el numerador de la función, el BAII, hace referencia al resultado del ejercicio completo.</p>



<p>Por ello, si ponemos nuestros cálculos en una tabla a nivel de año, los cálculos van a ser los esperados:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/03/image-2.png"><img loading="lazy" decoding="async" width="494" height="161" src="https://reportingfinanciero.es/wp-content/uploads/2025/03/image-2.png" alt="" class="wp-image-3157" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/03/image-2.png 494w, https://reportingfinanciero.es/wp-content/uploads/2025/03/image-2-300x98.png 300w" sizes="auto, (max-width: 494px) 100vw, 494px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Sin embargo, si en lugar de poner nuestra tabla a nivel de año, la ponemos a nivel de año-mes, vamos a tener nuestro activo total medio con los saldos medios de cada mes, mientras que el BAII va a ser el resultado de ese mes únicamente, con lo que el ROA va a salir con cifras mucho más bajas de las mostradas para el mismo ratio en la tabla a nivel anual:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2025/03/image-3.png"><img loading="lazy" decoding="async" width="406" height="610" src="https://reportingfinanciero.es/wp-content/uploads/2025/03/image-3.png" alt="" class="wp-image-3158" srcset="https://reportingfinanciero.es/wp-content/uploads/2025/03/image-3.png 406w, https://reportingfinanciero.es/wp-content/uploads/2025/03/image-3-200x300.png 200w" sizes="auto, (max-width: 406px) 100vw, 406px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p></p>



<p>Por ello, debemos tener cuidado del contexto temporal en el que evaluamos nuestra medida y, en caso de que no vaya a evaluarse a nivel anual, debemos darle una vuelta a nuestros cálculos&#8230;</p>



<p>Podríamos optar por calcular un rolling year sobre el BAII (en este post de mi blog explicaba cómo calcular el rolling year:&nbsp;<a href="https://reportingfinanciero.es/uso-del-ano-movil-o-rolling-year-en-power-bi/">Link </a>)&nbsp;, o un year to date ponderado por el número de días que han transcurrido desde el inicio de ejercicio (pudiendo hacer también un year to date del cálculo del activo medio).</p>



<p>También debemos considerar que si optamos por el rolling year para el cálculo del BAII, los cálculos de los primeros 11 meses de nuestros datos (en nuestro ejemplo desde 2022-01 hasta 2022-11) no van a ser representativos, ya que el rolling year no va a poder acumular el BAII de un año completo al no haber datos para los meses del ejercicio 2021.</p>



<p></p>



<p><strong>Conclusión:</strong>  Quizás prefiramos no complicar los cálculos y quedarnos con la evaluación de nuestro ratio únicamente a nivel anual, pero si queremos ver una evolución mensual debemos valorar alguna de estas otras opciones comentadas.</p>



<p></p>



<p>Si estas otras opciones generan interés igual me anime más adelante a grabar un pequeño vídeo sobre el tema, ya que sería demasiado extenso para un post…</p>



<p>Espero que te haya resultado interesante y puedas ponerlo en práctica en tus proyectos.</p>



<p></p>



<p>PD: Si quieres aprender cómo crear modelos financieros en Power BI conectados al libro diario de las empresas y más técnicas como ésta, no dejes pasar la oportunidad de adquirir el curso que he preparado para la academia Namasdata. Te dejo el enlace por aquí : <a href="https://www.namasdata.com/courses/Informes-financieros-con-Power-BI">Link</a></p>



<p>Seguimos!!! 👊​</p>



<p></p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<p><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcalculo-de-saldos-medios-en-modelos-financieros%2F&amp;linkname=C%C3%A1lculo%20de%20saldos%20medios%20en%20modelos%20financieros" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcalculo-de-saldos-medios-en-modelos-financieros%2F&amp;linkname=C%C3%A1lculo%20de%20saldos%20medios%20en%20modelos%20financieros" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_telegram" href="https://www.addtoany.com/add_to/telegram?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcalculo-de-saldos-medios-en-modelos-financieros%2F&amp;linkname=C%C3%A1lculo%20de%20saldos%20medios%20en%20modelos%20financieros" title="Telegram" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcalculo-de-saldos-medios-en-modelos-financieros%2F&amp;linkname=C%C3%A1lculo%20de%20saldos%20medios%20en%20modelos%20financieros" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_x" href="https://www.addtoany.com/add_to/x?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcalculo-de-saldos-medios-en-modelos-financieros%2F&amp;linkname=C%C3%A1lculo%20de%20saldos%20medios%20en%20modelos%20financieros" title="X" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcalculo-de-saldos-medios-en-modelos-financieros%2F&amp;linkname=C%C3%A1lculo%20de%20saldos%20medios%20en%20modelos%20financieros" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_skype" href="https://www.addtoany.com/add_to/skype?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcalculo-de-saldos-medios-en-modelos-financieros%2F&amp;linkname=C%C3%A1lculo%20de%20saldos%20medios%20en%20modelos%20financieros" title="Skype" rel="nofollow noopener" target="_blank"></a></p><p>La entrada <a href="https://reportingfinanciero.es/calculo-de-saldos-medios-en-modelos-financieros/">Cálculo de saldos medios en modelos financieros</a> se publicó primero en <a href="https://reportingfinanciero.es">reportingfinanciero.es</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Cómo representar en un gráfico de líneas una proyección de cuenta de resultados.</title>
		<link>https://reportingfinanciero.es/como-representar-proyeccion-de-cuenta-de-resultados-en-grafico-de-lineas/</link>
		
		<dc:creator><![CDATA[antonio@gestion23.com]]></dc:creator>
		<pubDate>Fri, 18 Oct 2024 07:35:08 +0000</pubDate>
				<category><![CDATA[DAX]]></category>
		<category><![CDATA[Finanzas]]></category>
		<category><![CDATA[Visualizaciones]]></category>
		<guid isPermaLink="false">https://reportingfinanciero.es/?p=3018</guid>

					<description><![CDATA[<p>👨🏻‍💻​ Recientemente impartí un taller de PowerBI aplicado a las finanzas en el que vimos cómo crear una cuenta de pérdidas y ganancias desde el libro diario de varias empresas y cómo compararlo contra el presupuesto. 💡 ​Dentro del taller, Esteban Nardi lanzó una pregunta muy interesante sobre cómo podríamos representar en un gráfico de ... </p>
<p class="read-more-container"><a title="Cómo representar en un gráfico de líneas una proyección de cuenta de resultados." class="read-more button" href="https://reportingfinanciero.es/como-representar-proyeccion-de-cuenta-de-resultados-en-grafico-de-lineas/#more-3018" aria-label="Leer más sobre Cómo representar en un gráfico de líneas una proyección de cuenta de resultados.">Leer más</a></p>
<p>La entrada <a href="https://reportingfinanciero.es/como-representar-proyeccion-de-cuenta-de-resultados-en-grafico-de-lineas/">Cómo representar en un gráfico de líneas una proyección de cuenta de resultados.</a> se publicó primero en <a href="https://reportingfinanciero.es">reportingfinanciero.es</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>👨🏻‍💻​ Recientemente impartí un taller de PowerBI aplicado a las finanzas en el que vimos cómo crear una cuenta de pérdidas y ganancias desde el libro diario de varias empresas y cómo compararlo contra el presupuesto. <br><br>💡 ​Dentro del taller, <a href="https://www.linkedin.com/in/esteban-nardi/">Esteban Nardi</a> lanzó una pregunta muy interesante sobre cómo podríamos representar en un gráfico de líneas por un lado la contabilidad cerrada y por otro lado el presupuesto hasta el cierre del ejercicio.</p>



<p>El resultado sería similar al de la siguiente imagen:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="wp-block-kadence-image kb-image3018_c48cf3-0b"><figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-0-1024x576.png" class="kb-advanced-image-link"><img loading="lazy" decoding="async" width="1024" height="576" src="https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-0-1024x576.png" alt="" class="kb-img wp-image-3024" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-0-1024x576.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-0-300x169.png 300w, https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-0-768x432.png 768w, https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-0.png 1052w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>🖊️ ​En el post de hoy vengo a contarte el detalle de cómo conseguirlo, así que si te mueves en el mundo de las finanzas empresariales y el tema te parece interesante….allá vamos:</p>



<p>Antes de nada, sobra comentar que para aplicar esta solución tendremos que tener montado un modelo financiero en el que elaboremos nuestras medidas.</p>



<p>En nuestro modelo teníamos 2 tablas de hechos, una con los libros diarios de la contabilidad real de las empresas, y otra con los presupuestos.</p>



<p>Tendremos que incorporar a nuestro modelo la fecha del cierre contable que tenemos revisado, que será nuestra fecha de corte para pintar la contabilidad real hasta esa fecha y el presupuesto a partir de la misma.</p>



<p>En el taller, incorporé una consulta desde la opción de “Especificar datos” de Power Query, pero tú puedes incorporarlo desde la fuente que consideres.&nbsp; Lo que sí es importante es que sea una fuente que pueda modificar únicamente el controller, el director financiero o la persona que sea la encargada de dar el OK definitivo a la revisión de los cierres contables.</p>



<p>La consulta tiene simplemente una columna con un único registro, que es la fecha de cierre revisado. A la columna le asigno el tipo de dato “Fecha”.</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/10/1.jpg"><img loading="lazy" decoding="async" width="545" height="417" src="https://reportingfinanciero.es/wp-content/uploads/2024/10/1.jpg" alt="" class="wp-image-3047" style="width:596px;height:auto" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/10/1.jpg 545w, https://reportingfinanciero.es/wp-content/uploads/2024/10/1-300x230.jpg 300w" sizes="auto, (max-width: 545px) 100vw, 545px" /></a></figure>
</div>


<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>A la consulta le doy el nombre de “Revision Cierre” y a la columna “Ultima Revision”.</p>



<p>Dentro de mi informe, tendré que tener calculadas unas medidas para calcular el resultado de PyG de la contabilidad real (a la que llamaré [PyG] ) y de Presupuesto (a la que llamaré [Presupuesto]).</p>



<p>Posteriormente, realizaré la siguiente medida para calcular la fecha de cierre revisado:</p>



<p>Fecha Cierre Revisado = MAX(&#8216;Revision Cierre'[Ultima Revision])</p>



<p>Mi medida DAX para calcular la PyG Proyectada será la siguiente (Nos basamos en la medida [PyG] para calcular el resultado cuando la fecha sea menor o igual a la fecha de cierre revisado y en la medida [Presupuesto] para calcular el resultado cuando la fecha sea mayor a la fecha de cierre revisado):</p>



<p>PyG Proyectada =</p>



<p>CALCULATE (</p>



<p>&nbsp; &nbsp; [PyG],</p>



<p>&nbsp; &nbsp; FILTER ( dimCalendario, dimCalendario[Fecha] &lt;= [Fecha Cierre Revisado] )</p>



<p>)</p>



<p>&nbsp; &nbsp; + CALCULATE (</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; [Presupuesto],</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; FILTER ( dimCalendario, dimCalendario[Fecha] &gt; [Fecha Cierre Revisado] )</p>



<p>&nbsp; &nbsp; )</p>



<p>Si metemos esa medida en un gráfico de líneas, y filtramos por el año 2023, tendremos el siguiente resultado:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-1-1024x569.png"><img loading="lazy" decoding="async" width="1024" height="569" src="https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-1-1024x569.png" alt="" class="wp-image-3019" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-1-1024x569.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-1-300x167.png 300w, https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-1-768x427.png 768w, https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-1.png 1230w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Refleja el resultado real hasta el mes de octubre (la fecha de cierre revisado es el 31/10/2023) y el valor presupuestado para los meses de noviembre y diciembre.</p>



<p>Sin embargo, nos aparece toda la línea continua y no distinguimos en la propia línea hasta dónde llega el dato real y dónde empieza el presupuestado.</p>



<p>Para conseguir ese efecto, vamos a realizar dos nuevas medidas DAX para pintar cada uno de los 2 tramos que queremos conseguir:</p>



<p><strong><u>Medida 1:</u></strong></p>



<p>PyG Proyectada Real =</p>



<p>IF (</p>



<p>&nbsp; &nbsp; MAX ( dimCalendario[Fecha] ) &lt;= [Fecha Cierre Revisado],</p>



<p>&nbsp; &nbsp; [PyG]</p>



<p>)</p>



<p>Esta medida nos reflejará el resultado de PyG únicamente cuando el valor de las fechas sea menor o igual a la fecha de cierre revisado.</p>



<p>Si la llevamos a un gráfico de líneas quedaría así:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-2-1024x569.png"><img loading="lazy" decoding="async" width="1024" height="569" src="https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-2-1024x569.png" alt="" class="wp-image-3020" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-2-1024x569.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-2-300x167.png 300w, https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-2-768x427.png 768w, https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-2.png 1236w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Como puede observarse, a pesar de tener filtrado todo el ejercicio 2023, únicamente se representan valores hasta el mes de Octubre, que es donde llega la fecha de cierre revisado.</p>



<p><strong><u>Medida2:</u></strong></p>



<p>PyG Proyectada Presupuesto =</p>



<p>SWITCH (</p>



<p>&nbsp; &nbsp; TRUE (),</p>



<p>&nbsp; &nbsp; MAX ( dimCalendario[Fecha] ) = [Fecha Cierre Revisado], [PyG],</p>



<p>&nbsp; &nbsp; MAX ( dimCalendario[Fecha] ) &gt; [Fecha Cierre Revisado], [PyG Proyectada],</p>



<p>&nbsp; &nbsp; BLANK ()</p>



<p>)</p>



<p>Se nos mostraría de la siguiente forma en un gráfico de líneas:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-3-1024x573.png"><img loading="lazy" decoding="async" width="1024" height="573" src="https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-3-1024x573.png" alt="" class="wp-image-3021" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-3-1024x573.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-3-300x168.png 300w, https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-3-768x430.png 768w, https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-3.png 1232w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Ahora vemos cómo teniendo filtrado todo el ejercicio 2023 se nos representan valores únicamente desde la fecha de cierre. Destacar que para el valor de Octubre, el dato es el real del PyG de la contabilidad, según indicamos en la primera salida del TRUE().</p>



<p>Esto lo hacemos así para que no haya un salto entre las líneas de real y presupuesto cuando juntemos ambas en un mismo gráfico de líneas.&nbsp; Al final del post os mostraré lo que ocurriría si obviamos esa primera salida del TRUE y dejamos únicamente valores para las fechas que sean superiores a la fecha de cierre revisado.</p>



<p>Ahora que ya tenemos las 2 medidas preparadas, vamos a juntarlas en un mismo gráfico de líneas para ver el resultado:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-4-1024x458.png"><img loading="lazy" decoding="async" width="1024" height="458" src="https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-4-1024x458.png" alt="" class="wp-image-3022" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-4-1024x458.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-4-300x134.png 300w, https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-4-768x343.png 768w, https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-4-1536x687.png 1536w, https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-4-1320x590.png 1320w, https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-4.png 1554w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Como vemos, a partir de Octubre cambia el color de la línea, al pasar de representar el dato real de la contabilidad al dato del presupuesto.</p>



<p>Ahora, para que destaque más, simplemente vamos a dar formato discontinuo a la línea de la medida “PyG Proyectada Presupuesto” para que nos muestre el resultado que estábamos buscando:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="737" height="354" src="https://reportingfinanciero.es/wp-content/uploads/2024/10/55.png" alt="" class="wp-image-3054" style="width:762px;height:auto" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/10/55.png 737w, https://reportingfinanciero.es/wp-content/uploads/2024/10/55-300x144.png 300w" sizes="auto, (max-width: 737px) 100vw, 737px" /></figure>
</div>


<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Una vez conseguido el resultado y, como lo prometido es deuda, simplemente quiero mostrarte lo que pasaría si en la medida 2 “PyG Proyectada Presupuesto” quitásemos la primera salida del TRUE y dejásemos la medida de la siguiente forma:</p>



<p>PyG Proyectada Presupuesto =</p>



<p>SWITCH (</p>



<p>&nbsp; &nbsp; TRUE (),</p>



<p>&nbsp; &nbsp; MAX ( dimCalendario[Fecha] ) &gt; [Fecha Cierre Revisado], [PyG Proyectada],</p>



<p>&nbsp; &nbsp; BLANK ()</p>



<p>)</p>



<p>El gráfico quedaría así:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-5-1024x569.png"><img loading="lazy" decoding="async" width="1024" height="569" src="https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-5-1024x569.png" alt="" class="wp-image-3023" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-5-1024x569.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-5-300x167.png 300w, https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-5-768x427.png 768w, https://reportingfinanciero.es/wp-content/uploads/2024/10/Imagen-5.png 1052w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Como puedes observar, al no darle ningún valor a la medida para el caso en que la fecha sea igual a la fecha de cierre revisado, no conseguimos que la línea del presupuesto parta desde el cierre del mes de Octubre, con lo que nos quedaría un salto entre ambas líneas que evitamos gracias a la primera salida del TRUE que incorporamos a la medida (revisar la <strong><u>Medida 2</u></strong>), y que está basada en la contabilidad real con la medida [PyG].</p>



<p>Espero que te haya parecido interesante la entrada y que puedas aplicar esta técnica en tus próximos proyectos 😉​</p>



<p>Seguimos!!! 👊</p>



<p></p>
<p><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-representar-proyeccion-de-cuenta-de-resultados-en-grafico-de-lineas%2F&amp;linkname=C%C3%B3mo%20representar%20en%20un%20gr%C3%A1fico%20de%20l%C3%ADneas%20una%20proyecci%C3%B3n%20de%20cuenta%20de%20resultados." title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-representar-proyeccion-de-cuenta-de-resultados-en-grafico-de-lineas%2F&amp;linkname=C%C3%B3mo%20representar%20en%20un%20gr%C3%A1fico%20de%20l%C3%ADneas%20una%20proyecci%C3%B3n%20de%20cuenta%20de%20resultados." title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_telegram" href="https://www.addtoany.com/add_to/telegram?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-representar-proyeccion-de-cuenta-de-resultados-en-grafico-de-lineas%2F&amp;linkname=C%C3%B3mo%20representar%20en%20un%20gr%C3%A1fico%20de%20l%C3%ADneas%20una%20proyecci%C3%B3n%20de%20cuenta%20de%20resultados." title="Telegram" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-representar-proyeccion-de-cuenta-de-resultados-en-grafico-de-lineas%2F&amp;linkname=C%C3%B3mo%20representar%20en%20un%20gr%C3%A1fico%20de%20l%C3%ADneas%20una%20proyecci%C3%B3n%20de%20cuenta%20de%20resultados." title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_x" href="https://www.addtoany.com/add_to/x?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-representar-proyeccion-de-cuenta-de-resultados-en-grafico-de-lineas%2F&amp;linkname=C%C3%B3mo%20representar%20en%20un%20gr%C3%A1fico%20de%20l%C3%ADneas%20una%20proyecci%C3%B3n%20de%20cuenta%20de%20resultados." title="X" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-representar-proyeccion-de-cuenta-de-resultados-en-grafico-de-lineas%2F&amp;linkname=C%C3%B3mo%20representar%20en%20un%20gr%C3%A1fico%20de%20l%C3%ADneas%20una%20proyecci%C3%B3n%20de%20cuenta%20de%20resultados." title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_skype" href="https://www.addtoany.com/add_to/skype?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-representar-proyeccion-de-cuenta-de-resultados-en-grafico-de-lineas%2F&amp;linkname=C%C3%B3mo%20representar%20en%20un%20gr%C3%A1fico%20de%20l%C3%ADneas%20una%20proyecci%C3%B3n%20de%20cuenta%20de%20resultados." title="Skype" rel="nofollow noopener" target="_blank"></a></p><p>La entrada <a href="https://reportingfinanciero.es/como-representar-proyeccion-de-cuenta-de-resultados-en-grafico-de-lineas/">Cómo representar en un gráfico de líneas una proyección de cuenta de resultados.</a> se publicó primero en <a href="https://reportingfinanciero.es">reportingfinanciero.es</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Automatizar procesos de control con PBI y Automate</title>
		<link>https://reportingfinanciero.es/automatizar-procesos-de-control-con-pbi-y-automate/</link>
		
		<dc:creator><![CDATA[antonio@gestion23.com]]></dc:creator>
		<pubDate>Wed, 04 Sep 2024 13:29:52 +0000</pubDate>
				<category><![CDATA[Finanzas]]></category>
		<category><![CDATA[Power Automate]]></category>
		<guid isPermaLink="false">https://reportingfinanciero.es/?p=2970</guid>

					<description><![CDATA[<p>Una de las principales funciones que solemos desempeñar desde los departamentos financieros y de control de gestión es preservar el correcto tratamiento de los datos que se introducen en el ERP y detectar lo antes posible cualquier tipo de error que vaya a influir en el análisis de la información que llega a nuestros sistemas ... </p>
<p class="read-more-container"><a title="Automatizar procesos de control con PBI y Automate" class="read-more button" href="https://reportingfinanciero.es/automatizar-procesos-de-control-con-pbi-y-automate/#more-2970" aria-label="Leer más sobre Automatizar procesos de control con PBI y Automate">Leer más</a></p>
<p>La entrada <a href="https://reportingfinanciero.es/automatizar-procesos-de-control-con-pbi-y-automate/">Automatizar procesos de control con PBI y Automate</a> se publicó primero en <a href="https://reportingfinanciero.es">reportingfinanciero.es</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Una de las principales funciones que solemos desempeñar desde los departamentos financieros y de control de gestión es preservar el correcto tratamiento de los datos que se introducen en el ERP y detectar lo antes posible cualquier tipo de error que vaya a influir en el análisis de la información que llega a nuestros sistemas de reporting 🔎.</p>



<p>¡¡¡Quién no ha estado horas buscando el por qué de algún dato que le olía a chamusquina y al final ha acabado detectando que alguien había metido un gazapo en toda regla al introducir algún dato en el sistema!!!…😩</p>



<p>Recientemente me ha surgido la necesidad de controlar errores que se estaban cometiendo al crear nuevos clientes en el ERP.</p>



<p>Cuando un usuario da de alta al cliente, además del “Código cliente” debe informar también el “Código contable”.&nbsp; De acuerdo a nuestros procesos internos, esos códigos deberían ser iguales pero, en ocasiones, se informan con valores diferentes por error humano.</p>



<p>Ello implica que las facturas que se emitan al cliente 43009998 puedan ser contabilizadas en la cuenta contable 4300999<strong>7</strong>, como pasaría si se rellenan los datos como en la siguiente imagen:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen1.png"><img loading="lazy" decoding="async" width="567" height="181" src="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen1.png" alt="" class="wp-image-2972" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen1.png 567w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen1-300x96.png 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Incluso el problema podría ir más allá. Si el usuario comete el error al teclear los primeros dígitos e informar como código contable <strong>1</strong>3009998, el saldo de ese cliente irá representado en el balance en el subgrupo 130 dentro del patrimonio neto (subvenciones) en lugar de en el activo corriente (deudores comerciales).</p>



<p>Para tener controlados estor errores y corregirlos antes de que lleguen a provocar problemas mayores, realicé un informe en Power BI que me arrojaba el detalle de los casos en los que se cometía algún error.</p>



<p>El trabajo en PBI es realmente sencillo. Simplemente importo los campos «CodigoEmpresa», «CodigoCliente» y «CodigoContable» de la tabla de clientes de la BBDD del ERP (me traigo el campo código empresa porque hay varias empresas activas y necesito concatenar los códigos de empresa con los campos de código de cliente y código contable), y acabo generando 2 columnas “Cod.Cliente” y “Cod.Contable” (con el código de empresa como prefijo combinando las columnas, ya que el cliente 43000002 puede existir en N empresas diferentes).</p>



<p>Posteriormente agrego una columna personalizada que devuelve un Check True/False para la comprobación de si los códigos son coincidentes:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen2.png"><img loading="lazy" decoding="async" width="682" height="323" src="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen2.png" alt="" class="wp-image-2973" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen2.png 682w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen2-300x142.png 300w" sizes="auto, (max-width: 682px) 100vw, 682px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Y, por último, filtro los valores del campo “Check” por “FALSE”, quedando como único registro el caso que exponíamos como ejemplo:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen3.png"><img loading="lazy" decoding="async" width="1024" height="113" src="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen3-1024x113.png" alt="" class="wp-image-2974" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen3-1024x113.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen3-300x33.png 300w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen3-768x84.png 768w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen3.png 1028w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Tras esto, cerramos y aplicamos en Power Query y pasamos a Power BI, donde construimos como visuales simplemente una tabla con los campos Cod.Cliente y Cod.Contable, y una tarjeta con la medida del número de casos a revisar, que será un conteo de las filas de nuestra tabla elaborada en Power Query:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/09/imagen4.jpg"><img loading="lazy" decoding="async" width="1934" height="779" src="https://reportingfinanciero.es/wp-content/uploads/2024/09/imagen4.jpg" alt="" class="wp-image-3003" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/09/imagen4.jpg 1934w, https://reportingfinanciero.es/wp-content/uploads/2024/09/imagen4-300x121.jpg 300w, https://reportingfinanciero.es/wp-content/uploads/2024/09/imagen4-1024x412.jpg 1024w, https://reportingfinanciero.es/wp-content/uploads/2024/09/imagen4-768x309.jpg 768w, https://reportingfinanciero.es/wp-content/uploads/2024/09/imagen4-1536x619.jpg 1536w, https://reportingfinanciero.es/wp-content/uploads/2024/09/imagen4-1320x532.jpg 1320w" sizes="auto, (max-width: 1934px) 100vw, 1934px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Publicamos en el servicio de Power BI este modelo semántico + informe y le programamos una actualización diaria, en mi caso a las 01:00 a.m., a través del gateway previamente instalado.</p>



<p>Con ello conseguimos que todas las noches se actualice de forma automática y compruebe en la BBDD posibles errores que hayan cometido los usuarios a la hora de crear nuevos clientes (o modificaciones incorrectas de clientes que ya estuviesen creados previamente).</p>



<p>Mi primera idea para controlar este proceso fue crear una alerta en el servicio de Power BI anclando el visual de tarjeta que indica el nº de casos a revisar en un panel y configurando una alerta que me avise cuando esa medida sea mayor a cero.</p>



<p>Realizando pruebas, detecté que en la primera actualización la alerta me llegó correctamente:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen5.png"><img loading="lazy" decoding="async" width="373" height="343" src="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen5.png" alt="" class="wp-image-2976" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen5.png 373w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen5-300x276.png 300w" sizes="auto, (max-width: 373px) 100vw, 373px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Entré con el enlace al informe y……bingo: allí estaba el detalle del cliente con el error cometido.</p>



<p>El problema que encontré al sistema de alertas es que seguí haciendo pruebas y me topé con un funcionamiento que no me permitía seguir haciendo el control por esta vía.</p>



<p>La limitación es que el aviso de las alertas te llega únicamente si cambian los datos del visual, como se resalta en la siguiente imagen:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen6-1024x704.png"><img loading="lazy" decoding="async" width="1024" height="704" src="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen6-1024x704.png" alt="" class="wp-image-2977" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen6-1024x704.png 1024w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen6-300x206.png 300w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen6-768x528.png 768w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen6.png 1062w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Por lo tanto, en nuestro ejemplo, solo llegará nueva alerta en la siguiente actualización si la medida está por encima de cero (el umbral que he marcado en la alerta) y no es 1 (ya que es el valor que tenía en la última actualización).</p>



<p>Realicé pruebas y, en efecto, puede haber un caso como el que expongo a continuación en el que las alertas del servicio de Power BI no nos avisen del error:</p>



<p>•&nbsp; El lunes un usuario crea un cliente con error.</p>



<p>•&nbsp; La noche del lunes al martes nos salta la alerta en el servicio de Power BI con el valor de 1 en la medida.</p>



<p>•&nbsp; El martes a primera hora, al ver la alerta, corregimos en el ERP el error (con lo que en ese momento volvemos a tener cero errores en la BBDD del ERP).</p>



<p>•&nbsp; El mismo martes, otro usuario comete un nuevo error al crear otro cliente.</p>



<p>•&nbsp; En la actualización de la noche del martes al miércoles, la medida vuelve a tener valor de 1 pero, en esta ocasión, no nos salta alerta porque los datos en el servicio no han cambiado entre ambas actualizaciones (tanto el lunes por la noche como el martes por la noche había 1 error en la BBDD).</p>



<p>Al no haber usado demasiado el sistema de alertas no estaba seguro de si había alguna opción de configurarlo de otro modo, pero pregunté en el grupo de Telegram de Power BI Español y el gran Ricardo Rincón salió a mi rescate indicándome que el comportamiento de las alertas era el que yo había experimentado, y que al no haber cambio no recibía una nueva alerta.</p>



<p>Por ello, tal como me comentaba también Ricardo, tuve que pasar al plan B que tenía previsto: utilizar Power Automate y la DAX Query del visual de PBI para que me llegasen avisos con las actualizaciones siempre que el valor de la medida sea mayor que 0 (independientemente del valor que tuviese anteriormente).</p>



<p>Para ello, seguí un proceso muy similar al explicado por Sara Alonso en sus artículos con el paso a paso del flujo de Automate que usamos en nuestra ponencia <a>de los PBI Days Bilbao el pasado mes de Junio “Estrategias avanzadas de inventario y compras con Power BI y Power Automate”. </a>(os dejo los enlaces por si queréis ver más en detalle alguno de los pasos que yo resumiré):</p>



<p><a href="https://medium.com/@salonsobernardo/automatiza-pedidos-de-compra-a-proveedores-con-power-bi-power-automate-parte-i-745e1c773d5f">https://medium.com/@salonsobernardo/automatiza-pedidos-de-compra-a-proveedores-con-power-bi-power-automate-parte-i-745e1c773d5f</a></p>



<p><a href="https://medium.com/@salonsobernardo/automatiza-pedidos-de-compra-a-proveedores-con-power-bi-power-automate-parte-ii-554350b3381c">https://medium.com/@salonsobernardo/automatiza-pedidos-de-compra-a-proveedores-con-power-bi-power-automate-parte-ii-554350b3381c</a></p>



<p><a href="https://medium.com/@salonsobernardo/automatiza-pedidos-de-compra-a-proveedores-con-power-bi-power-automate-parte-iii-2b358a57b247">https://medium.com/@salonsobernardo/automatiza-pedidos-de-compra-a-proveedores-con-power-bi-power-automate-parte-iii-2b358a57b247</a></p>



<p>La DAX Query de mi visual de tarjeta es la siguiente (obtenida tal y como explica Sara en sus artículos):</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen7.png"><img loading="lazy" decoding="async" width="718" height="374" src="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen7.png" alt="" class="wp-image-2978" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen7.png 718w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen7-300x156.png 300w" sizes="auto, (max-width: 718px) 100vw, 718px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Voy a Power Automate y me creo un nuevo flujo de nube programado:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen8.png"><img loading="lazy" decoding="async" width="718" height="391" src="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen8.png" alt="" class="wp-image-2979" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen8.png 718w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen8-300x163.png 300w" sizes="auto, (max-width: 718px) 100vw, 718px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Lo configuro a las 03:00 a.m. porque al actualizarse el informe de PBI a las 01:00 y no haber actividad nocturna en la empresa, me llegará notificación siempre que la medida sea superior a cero, independientemente del valor que tuviese en la anterior actualización.</p>



<p>A continuación, añadimos un nuevo paso y elegimos la opción de ejecutar una consulta de PBI contra un conjunto de datos. Seleccionamos el Workspace, el Dataset y pegamos la DAX Query que lanza el objeto visual:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen9.png"><img loading="lazy" decoding="async" width="718" height="471" src="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen9.png" alt="" class="wp-image-2980" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen9.png 718w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen9-300x197.png 300w" sizes="auto, (max-width: 718px) 100vw, 718px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>El siguiente paso de nuestro flujo va a ser seleccionar el contenido dinámico del query DAX con el paso de “Seleccionar” operación de datos y la opción de primeras filas:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen10.png"><img loading="lazy" decoding="async" width="718" height="399" src="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen10.png" alt="" class="wp-image-2981" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen10.png 718w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen10-300x167.png 300w" sizes="auto, (max-width: 718px) 100vw, 718px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>A continuación, inserto un paso de Compose (Redactar operación de datos) y en la expresión indico lo siguiente (debo reconocer que me echó una mano chat-gpt porque mis conocimientos de Automate son bastante básicos… 😅​):</p>



<p><strong>first(body(&#8216;Select&#8217;))[&#8216;#Casos&#8217;][0][&#8216;[v__Casos_a_revisar]&#8217;]</strong></p>



<p>Siendo “Select” el nombre del paso anterior:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen11.png"><img loading="lazy" decoding="async" width="718" height="502" src="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen11.png" alt="" class="wp-image-2982" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen11.png 718w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen11-300x210.png 300w" sizes="auto, (max-width: 718px) 100vw, 718px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Este paso me devuelve el valor de la tarjeta de Power BI con el número de casos de clientes a revisar por tener el código contable distinto al código de cliente.</p>



<p>Ya solo me queda capturar ese valor y meterle una condición para que, si es mayor que cero, me envíe un email para avisarme de que debo revisar mi informe y ver los clientes en los que se ha cometido algún error:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen12.png"><img loading="lazy" decoding="async" width="718" height="477" src="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen12.png" alt="" class="wp-image-2983" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen12.png 718w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen12-300x199.png 300w" sizes="auto, (max-width: 718px) 100vw, 718px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Os muestro un ejemplo de email recibido puntualmente a las 03:00 🕒​:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen13.png"><img loading="lazy" decoding="async" width="718" height="152" src="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen13.png" alt="" class="wp-image-2984" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen13.png 718w, https://reportingfinanciero.es/wp-content/uploads/2024/09/Imagen13-300x64.png 300w" sizes="auto, (max-width: 718px) 100vw, 718px" /></a></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>De esta forma, conseguimos pasar de un sistema de control en el que nosotros tengamos que perseguir los errores a un sistema en el que nuestros flujos de trabajo (nuestros detectives nocturnos como yo les llamo… 🕵🏻‍♂️​🤖​🌙​) nos notifican cuando detectan cualquier error.</p>



<p>Al email que nos llega también podríamos añadirle una tabla html con los valores de los clientes a revisar, a través del Query DAX de la visualización de tabla de nuestro informe de Power BI, pero no he querido extender demasiado la construcción del flujo.</p>



<p>Otros casos de uso para estas notificaciones que combinan Power BI y Automate podrían ser:</p>



<ul class="wp-block-list">
<li>Clientes que sobrepasen X € de riesgo.</li>



<li>Asientos contables que estén descuadrados.</li>



<li>Albaranes de venta que se facturan con una fecha de factura anterior a la fecha del albarán.</li>



<li>Cambios de tarifa en artículos que sobrepasen X % de variación respecto al precio anterior.</li>
</ul>



<p>Quizás algún día me anime a presentar alguna sesión en algún evento sobre este tipo de chequeos “robotizados” 🤔​</p>



<p>Espero que te haya parecido útil y puedas utilizarlo para casos similares que encuentres en tu día a día.</p>



<p>Seguimos!!!&nbsp; 👊​</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<p><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizar-procesos-de-control-con-pbi-y-automate%2F&amp;linkname=Automatizar%20procesos%20de%20control%20con%20PBI%20y%20Automate" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizar-procesos-de-control-con-pbi-y-automate%2F&amp;linkname=Automatizar%20procesos%20de%20control%20con%20PBI%20y%20Automate" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_telegram" href="https://www.addtoany.com/add_to/telegram?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizar-procesos-de-control-con-pbi-y-automate%2F&amp;linkname=Automatizar%20procesos%20de%20control%20con%20PBI%20y%20Automate" title="Telegram" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizar-procesos-de-control-con-pbi-y-automate%2F&amp;linkname=Automatizar%20procesos%20de%20control%20con%20PBI%20y%20Automate" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_x" href="https://www.addtoany.com/add_to/x?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizar-procesos-de-control-con-pbi-y-automate%2F&amp;linkname=Automatizar%20procesos%20de%20control%20con%20PBI%20y%20Automate" title="X" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizar-procesos-de-control-con-pbi-y-automate%2F&amp;linkname=Automatizar%20procesos%20de%20control%20con%20PBI%20y%20Automate" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_skype" href="https://www.addtoany.com/add_to/skype?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fautomatizar-procesos-de-control-con-pbi-y-automate%2F&amp;linkname=Automatizar%20procesos%20de%20control%20con%20PBI%20y%20Automate" title="Skype" rel="nofollow noopener" target="_blank"></a></p><p>La entrada <a href="https://reportingfinanciero.es/automatizar-procesos-de-control-con-pbi-y-automate/">Automatizar procesos de control con PBI y Automate</a> se publicó primero en <a href="https://reportingfinanciero.es">reportingfinanciero.es</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>¿Cómo representar el saldo acumulado en la ficha de mayor de una cuenta contable con Power BI?</title>
		<link>https://reportingfinanciero.es/como-representar-el-saldo-acumulado-en-la-ficha-de-mayor-de-una-cuenta-contable-con-power-bi/</link>
		
		<dc:creator><![CDATA[antonio@gestion23.com]]></dc:creator>
		<pubDate>Wed, 24 Jul 2024 13:06:52 +0000</pubDate>
				<category><![CDATA[DAX]]></category>
		<category><![CDATA[Finanzas]]></category>
		<category><![CDATA[Visualizaciones]]></category>
		<guid isPermaLink="false">https://reportingfinanciero.es/?p=2889</guid>

					<description><![CDATA[<p>El representar correctamente el saldo acumulado del libro mayor de una cuenta contable es un problema muy común entre los que nos dedicamos al mundo financiero y estamos implementando nuestros modelos financieros con Power BI. Solemos llegar a soluciones parciales, pero no conseguimos llegar al resultado que nos ofrece cualquier ERP de mostrarnos correctamente el ... </p>
<p class="read-more-container"><a title="¿Cómo representar el saldo acumulado en la ficha de mayor de una cuenta contable con Power BI?" class="read-more button" href="https://reportingfinanciero.es/como-representar-el-saldo-acumulado-en-la-ficha-de-mayor-de-una-cuenta-contable-con-power-bi/#more-2889" aria-label="Leer más sobre ¿Cómo representar el saldo acumulado en la ficha de mayor de una cuenta contable con Power BI?">Leer más</a></p>
<p>La entrada <a href="https://reportingfinanciero.es/como-representar-el-saldo-acumulado-en-la-ficha-de-mayor-de-una-cuenta-contable-con-power-bi/">¿Cómo representar el saldo acumulado en la ficha de mayor de una cuenta contable con Power BI?</a> se publicó primero en <a href="https://reportingfinanciero.es">reportingfinanciero.es</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>El representar correctamente el saldo acumulado del libro mayor de una cuenta contable es un problema muy común entre los que nos dedicamos al mundo financiero y estamos implementando nuestros modelos financieros con Power BI.</p>



<p>Solemos llegar a soluciones parciales, pero no conseguimos llegar al resultado que nos ofrece cualquier ERP de mostrarnos correctamente el saldo acumulado que tiene la cuenta contable después de cada uno de los apuntes, tal y como se muestra en la siguiente imagen:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="533" height="307" src="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen1-1.png" alt="" class="wp-image-2890" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen1-1.png 533w, https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen1-1-300x173.png 300w" sizes="auto, (max-width: 533px) 100vw, 533px" /></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Obviamente, la fórmula DAX a emplear dependerá de cómo tengas montado tu modelo de datos.</p>



<p>Para el ejemplo de este post el modelo de datos sería el siguiente:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="813" height="623" src="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen2-1.png" alt="" class="wp-image-2891" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen2-1.png 813w, https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen2-1-300x230.png 300w, https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen2-1-768x589.png 768w" sizes="auto, (max-width: 813px) 100vw, 813px" /></figure>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Una tabla de hechos con los movimientos del libro diario, y las distintas dimensiones para filtrar la información.</p>



<p>La fórmula DAX que yo estaba usando para calcular el saldo acumulado del libro mayor era la siguiente:</p>



<p>Saldo Ac. Mayor =</p>



<p>IF (</p>



<p>&nbsp;&nbsp;&nbsp; [Saldo],</p>



<p>&nbsp;&nbsp;&nbsp; CALCULATE (</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [Saldo],</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ALLSELECTED ( dimApuntes ),</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FILTER ( ALL ( dimFecha[Fecha] ), dimFecha[Fecha] &lt;= MAX ( dimFecha[Fecha] ) )</p>



<p>&nbsp;&nbsp;&nbsp; ),</p>



<p>&nbsp;&nbsp;&nbsp; BLANK ()</p>



<p>)</p>



<p>Esta fórmula es una adaptación de una aportación que hizo hace ya un par de años ( o algo más 😅​) Leonardo Bergua dentro de la comunidad de Power Platform University.</p>



<p>Te muestro cómo queda en una hoja de detalle de un libro mayor:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter"><img loading="lazy" decoding="async" width="756" height="606" src="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen3.jpg" alt="" class="wp-image-2892" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen3.jpg 756w, https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen3-300x240.jpg 300w" sizes="auto, (max-width: 756px) 100vw, 756px" /><figcaption class="wp-element-caption"><em><strong>Imagen 1</strong></em></figcaption></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Esta medida va acumulando correctamente el saldo acumulado pero tiene un principal inconveniente: si hay varios asientos en la misma fecha (como se destaca en los recuadros rojos y azules de la anterior imagen), la medida muestra el mismo valor para todos los registros de esa fecha (cuando lo esperado sería que diese a cada registro su saldo acumulado y no a todos el saldo resultante al final del día del contexto).</p>



<p>Cuando vi el siguiente vídeo del gran David Uyarra sobre la nueva funcionalidad de cálculos visuales aplicada a calcular saldos contables, enseguida pensé en probarlo para adaptar mi informe financiero y evitar el inconveniente citado anteriormente:</p>



<p class="kt-adv-heading2889_52503f-1f wp-block-kadence-advancedheading has-global-color-9-color has-text-color" data-kb-block="kb-adv-heading2889_52503f-1f"><strong><a href="https://www.youtube.com/watch?v=kM0_sqF-fR4">https://www.youtube.com/watch?v=kM0_sqF-fR4</a></strong></p>



<p>Sin embargo, la funcionalidad del vídeo anterior se ejecuta correctamente cuando no filtramos fechas o, si filtramos fechas, necesitamos que el filtro no deje fuera del contexto el saldo de apertura para que los saldos se arrastren correctamente desde el movimiento de apertura.</p>



<p>Como en mis modelos yo me quedo únicamente con el saldo de apertura del año inicial, esta restricción era un gran escollo, ya que me serviría únicamente si no filtro ninguna fecha y tengo la totalidad de apuntes que afectan al libro mayor.</p>



<p>En una conversación que tuve con Diego Duque en el reciente evento de Power BI Days Bilbao, estuvimos hablando sobre esta problemática que él también estaba afrontando. Se nos fueron ocurriendo varias opciones que se iban cayendo porque no llegaban a resolver el problema😥​</p>



<p>Pero una de las opciones, que combinaba cálculos DAX con los nuevos cálculos visuales, parecía que podía llegar a solucionar el requisito…estas conversaciones en comunidad sin duda que son lo mejor para desatascar problemas 😊</p>



<p>Hasta ahora no había sacado tiempo de ponerme a cacharrear. He podido probar la alternativa y me ha funcionado correctamente, así que voy a desarrollar a continuación los pasos seguidos por si a alguien más le es de utilidad:</p>



<p><strong>1.-</strong> Partimos del saldo inicial de la cuenta contable reflejada en el libro mayor. Ese saldo inicial sería el saldo acumulado de la cuenta contable en el día justamente anterior al contexto seleccionado. Esa medida es la que se muestra en el recuadro sombreado en amarillo en la imagen 1 (19.808,05 €).</p>



<p>Esa medida de “Saldo Inicial” en mi modelo tiene el siguiente código DAX:</p>



<p>Saldo Inicial Libro Mayor =</p>



<p>IF ([Saldo],</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; //Para que solo pinte saldo inicial en caso de que esté en un asiento con saldo para el contexto filtrado</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; IF (</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LEFT ( SELECTEDVALUE ( dimCuentasContables[Subcuenta contable] ), 1 )</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IN { “6”, “7” },</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Si está en una cuenta de gasto o ingreso no quiero que suma al saldo inicial los saldos anteriores a la fecha mínima (si son cuentas de balance sí), sino que quiero que el saldo inicial sea cero y el saldo que pinte el libro mayor vaya sumando únicamente los importes del periodo seleccionado en el contexto.</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0,</p>



<p>CALCULATE (</p>



<p>[Saldo],</p>



<p>FILTER (ALL ( dimFecha[Fecha] ), dimFecha[Fecha] &lt; MIN ( dimFecha[Fecha] ) )</p>



<p>)),</p>



<p>BLANK ()</p>



<p>)</p>



<p><strong>2.-</strong> Necesito construir una medida que repita ese valor en todas las filas del visual de tabla del libro mayor (imagen 1) y que pueda usar posteriormente en los cálculos visuales de esa tabla.</p>



<p>La medida que construyo es la siguiente:</p>



<p>//Calculo la fecha mínima del contexto seleccionado en los filtros externos a la tabla:</p>



<p>VAR FechaMinima =</p>



<p>&nbsp; &nbsp; CALCULATE ( MIN ( dimFecha[Fecha] ), ALLSELECTED ( dimFecha ) )</p>



<p>//Calculo el saldo inicial acumulando el saldo de las fechas que sean anteriores a la anterior variable:</p>



<p>VAR SaldoInicial =</p>



<p>&nbsp; &nbsp; IF (</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; [Saldo],</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; //Para que solo pinte saldo inicial en caso de que esté en un asiento con saldo para el contexto filtrado</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; IF (</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LEFT ( SELECTEDVALUE ( dimCuentasContables[Subcuenta contable] ), 1 )</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IN { “6”, “7” },</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Si está en una cuenta de gasto o ingreso no quiero que sume al saldo los saldos anteriores a la fecha mínima (si son cuentas de balance sí), sino que quiero que el saldo inicial sea cero y el saldo que pinte el libro mayor vaya sumando únicamente los importes del periodo seleccionado en el contexto.</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0,</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CALCULATE (</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [Saldo],</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ALLSELECTED ( dimApuntes ),</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ALLSELECTED ( dimFecha ),</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dimFecha[Fecha] &lt; FechaMinima</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; )</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; ),</p>



<p>&nbsp; &nbsp; &nbsp; &nbsp; BLANK ()</p>



<p>&nbsp; &nbsp; )</p>



<p>RETURN</p>



<p>&nbsp; &nbsp; SaldoInicial</p>



<p>Vemos cómo queda esa medida con el saldo inicial de 19.808,05 € repetido en cada una de las filas de la tabla:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="633" height="450" src="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen4-1.png" alt="" class="wp-image-2894" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen4-1.png 633w, https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen4-1-300x213.png 300w" sizes="auto, (max-width: 633px) 100vw, 633px" /></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p><strong>3.-</strong> A continuación, hago un cálculo visual con el saldo acumulado, que hace un RUNNINGSUM de la medida “Saldo”, tal y como se explicaba en el vídeo de David Uyarra.</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="645" height="466" src="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen5-1.png" alt="" class="wp-image-2898" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen5-1.png 645w, https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen5-1-300x217.png 300w" sizes="auto, (max-width: 645px) 100vw, 645px" /></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Recuerda que tienes que tener activada la opción de Cálculos visuales en las características de versión preliminar de las opciones de configuración de Power BI Desktop.</p>



<p>Te recomiendo revisar el vídeo de David Uyarra que mencioné anteriormente si tienes algún problema a la hora de crear este cálculo visual.</p>



<p><strong>4.-</strong> Por último, hago un nuevo cálculo visual dentro del visual de tabla para sumar la medida “Saldo Inicial Libro Mayor Cálculo Visual” explicada en el punto 2 y el cálculo visual “SaldoAcumulado1” explicado en el punto 3:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="695" height="266" src="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen6-1.png" alt="" class="wp-image-2899" style="width:695px;height:auto" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen6-1.png 695w, https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen6-1-300x115.png 300w" sizes="auto, (max-width: 695px) 100vw, 695px" /></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Esta última medida sí que muestra correctamente el saldo del libro mayor para cada uno de los registros sin tener el inconveniente de que se repita el saldo en los apuntes de la misma fecha.</p>



<p>Ahora ya solo queda jugar con los formatos y dejar visibles únicamente las columnas que necesitemos mostrar para llegar a un resultado similar al que obtendríamos desde un ERP.</p>



<p>En la siguiente imagen muestro cómo quedaría para una cuenta de balance (arrastra el saldo anterior al periodo seleccionado en el contexto):</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="763" height="714" src="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen7.jpg" alt="" class="wp-image-2900" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen7.jpg 763w, https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen7-300x281.jpg 300w" sizes="auto, (max-width: 763px) 100vw, 763px" /></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Y en esta otra imagen vemos cómo quedaría para una cuenta de PyG, donde no queremos que arrastre el saldo anterior sino que muestre el saldo para el periodo filtrado:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="541" height="237" src="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen8-1.png" alt="" class="wp-image-2925" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen8-1.png 541w, https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen8-1-300x131.png 300w" sizes="auto, (max-width: 541px) 100vw, 541px" /></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Espero que te pueda ser de utilidad a la hora de elaborar tus modelos financieros.</p>



<p>Cualquier aporte o mejora son bienvenidos, así que no dudes en contactarme!!!</p>



<p>PD: Gracias a Montse Collantes por su revisión del post, ya que en la primera versión que publiqué únicamente daba solución a las cuentas de balance. Con esta actual versión ya damos solución tanto a cuentas de balance como de PyG.</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<p><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-representar-el-saldo-acumulado-en-la-ficha-de-mayor-de-una-cuenta-contable-con-power-bi%2F&amp;linkname=%C2%BFC%C3%B3mo%20representar%20el%20saldo%20acumulado%20en%20la%20ficha%20de%20mayor%20de%20una%20cuenta%20contable%20con%20Power%20BI%3F" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-representar-el-saldo-acumulado-en-la-ficha-de-mayor-de-una-cuenta-contable-con-power-bi%2F&amp;linkname=%C2%BFC%C3%B3mo%20representar%20el%20saldo%20acumulado%20en%20la%20ficha%20de%20mayor%20de%20una%20cuenta%20contable%20con%20Power%20BI%3F" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_telegram" href="https://www.addtoany.com/add_to/telegram?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-representar-el-saldo-acumulado-en-la-ficha-de-mayor-de-una-cuenta-contable-con-power-bi%2F&amp;linkname=%C2%BFC%C3%B3mo%20representar%20el%20saldo%20acumulado%20en%20la%20ficha%20de%20mayor%20de%20una%20cuenta%20contable%20con%20Power%20BI%3F" title="Telegram" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-representar-el-saldo-acumulado-en-la-ficha-de-mayor-de-una-cuenta-contable-con-power-bi%2F&amp;linkname=%C2%BFC%C3%B3mo%20representar%20el%20saldo%20acumulado%20en%20la%20ficha%20de%20mayor%20de%20una%20cuenta%20contable%20con%20Power%20BI%3F" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_x" href="https://www.addtoany.com/add_to/x?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-representar-el-saldo-acumulado-en-la-ficha-de-mayor-de-una-cuenta-contable-con-power-bi%2F&amp;linkname=%C2%BFC%C3%B3mo%20representar%20el%20saldo%20acumulado%20en%20la%20ficha%20de%20mayor%20de%20una%20cuenta%20contable%20con%20Power%20BI%3F" title="X" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-representar-el-saldo-acumulado-en-la-ficha-de-mayor-de-una-cuenta-contable-con-power-bi%2F&amp;linkname=%C2%BFC%C3%B3mo%20representar%20el%20saldo%20acumulado%20en%20la%20ficha%20de%20mayor%20de%20una%20cuenta%20contable%20con%20Power%20BI%3F" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_skype" href="https://www.addtoany.com/add_to/skype?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fcomo-representar-el-saldo-acumulado-en-la-ficha-de-mayor-de-una-cuenta-contable-con-power-bi%2F&amp;linkname=%C2%BFC%C3%B3mo%20representar%20el%20saldo%20acumulado%20en%20la%20ficha%20de%20mayor%20de%20una%20cuenta%20contable%20con%20Power%20BI%3F" title="Skype" rel="nofollow noopener" target="_blank"></a></p><p>La entrada <a href="https://reportingfinanciero.es/como-representar-el-saldo-acumulado-en-la-ficha-de-mayor-de-una-cuenta-contable-con-power-bi/">¿Cómo representar el saldo acumulado en la ficha de mayor de una cuenta contable con Power BI?</a> se publicó primero en <a href="https://reportingfinanciero.es">reportingfinanciero.es</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Reparto presupuesto mensual a nivel diario</title>
		<link>https://reportingfinanciero.es/reparto-presupuesto-mensual-a-nivel-diario/</link>
		
		<dc:creator><![CDATA[antonio@gestion23.com]]></dc:creator>
		<pubDate>Wed, 03 Jul 2024 17:27:31 +0000</pubDate>
				<category><![CDATA[Finanzas]]></category>
		<category><![CDATA[Power Query]]></category>
		<guid isPermaLink="false">https://reportingfinanciero.es/?p=2805</guid>

					<description><![CDATA[<p>En la entrada de hoy te voy a mostrar cómo utilizo Power Query a la hora de elaborar el presupuesto de ventas. Es habitual que, desde el área comercial, nos envíen los presupuestos de ventas mensualizados para que desde el departamento financiero metamos los datos en la coctelera con la que elaboramos el presupuesto global ... </p>
<p class="read-more-container"><a title="Reparto presupuesto mensual a nivel diario" class="read-more button" href="https://reportingfinanciero.es/reparto-presupuesto-mensual-a-nivel-diario/#more-2805" aria-label="Leer más sobre Reparto presupuesto mensual a nivel diario">Leer más</a></p>
<p>La entrada <a href="https://reportingfinanciero.es/reparto-presupuesto-mensual-a-nivel-diario/">Reparto presupuesto mensual a nivel diario</a> se publicó primero en <a href="https://reportingfinanciero.es">reportingfinanciero.es</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>En la entrada de hoy te voy a mostrar cómo utilizo <strong>Power Query</strong> a la hora de elaborar el <strong>presupuesto de ventas</strong>.</p>



<p>Es habitual que, desde el área comercial, nos envíen los presupuestos de ventas mensualizados para que desde el departamento financiero metamos los datos en la coctelera con la que elaboramos el presupuesto global de la compañía.</p>



<p>A nivel de cierres financieros, con tener las ventas con esa granularidad mensual es suficiente, ya que los cierres contables los realizamos, a lo sumo, con periodicidad mensual.</p>



<p>El problema viene cuando queremos utilizar el presupuesto de ventas para nuestras reuniones periódicas de seguimiento de la evolución de las ventas.</p>



<p>Lo habitual en estas reuniones es hacer una comparativa de nuestras ventas tanto contra periodos anteriores como contra el presupuesto.&nbsp; Y ese seguimiento, en la práctica, se hace ya no solo a nivel semanal, sino que la parte comercial y la gerencia suelen revisar estos datos a nivel diario (incluso varias veces al día si me apuras 😜).</p>



<p>Por ello, para crear esos reportes de seguimiento de ventas, necesitamos trabajar el presupuesto mensualizado que nos llega desde el área comercial y repartir ese presupuesto a <strong>granularidad diaria</strong>.</p>



<p>Vamos a ver a continuación cómo Power Query nos puede facilitar la vida para hacer ese trabajo de reparto:</p>



<p>Partimos de una tabla en la que nos envían el presupuesto de ventas de 2024 para cada una de los departamentos de la empresa (Directas, postventa y distribución) y para cada uno de los meses (la fecha indicada es el último día de cada uno de los 12 meses). Por tanto, tenemos una tabla de presupuesto con 36 registros (12 meses * 3 departamentos):</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="446" height="710" src="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen1.png" alt="" class="wp-image-2807" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen1.png 446w, https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen1-188x300.png 188w" sizes="auto, (max-width: 446px) 100vw, 446px" /></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>El objetivo es repartir esos importes mensuales entre cada uno de los días para que cuando hagamos los seguimientos de ventas a cada fecha, podamos comparar contra presupuesto sin tener que esperar a final de mes.</p>



<p>Para ello, vamos a utilizar nuestra <strong>tabla de calendario</strong>, a la que habremos incorporado una columna con el <strong>número de horas laborables de cada uno de los días</strong>.&nbsp; &nbsp;&nbsp;Yo utilizo este sistema de indicar el número de horas porque hay negocios en los que no todos los días se trabajan el mismo número de horas. En este ejemplo, los días de Nochebuena y Nochevieja se trabaja únicamente media jornada, por lo que esos días en lugar de indicar 8 horas indico 4 horas. Los días de cierre (festivos y fines de semana en este ejemplo) indicamos 0 horas:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="350" height="292" src="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen2.png" alt="" class="wp-image-2808" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen2.png 350w, https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen2-300x250.png 300w" sizes="auto, (max-width: 350px) 100vw, 350px" /></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>En esta tabla de calendario de 2024 tendríamos 366 filas (es año bisiesto), indicado las horas laborables de cada uno de los días.</p>



<p>Lo siguiente que vamos a hacer es duplicar nuestra consulta de Calendario y llamamos a la nueva consulta “<strong>Calendario mensua</strong>l”.</p>



<p>A <strong>cada una</strong> de las <strong>3 consultas </strong>que tenemos (Presupuesto, Calendario y Calendario mensual) las agregamos una nueva columna con el <strong>número de mes</strong>, el cual nos servirá posteriormente para <strong>combinar</strong> las consultas. &nbsp;Para ello, seleccionamos la columna de Fecha en una consulta, vamos al menú de Agregar columna =&gt; Fecha =&gt; Mes =&gt; Mes (como vemos en la siguiente imagen). Esta operación la repetimos en las demás consultas.</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="718" height="265" src="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen3.png" alt="" class="wp-image-2809" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen3.png 718w, https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen3-300x111.png 300w" sizes="auto, (max-width: 718px) 100vw, 718px" /></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>A continuación, en la consulta de Calendario mensual, <strong>agrupamos</strong> los datos por la columna Mes para sumar las horas laborables de cada uno de los meses.</p>



<p>Tenemos que pulsar sobre “Agrupar por” y configurar el menú de la siguiente forma:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="718" height="393" src="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen4.png" alt="" class="wp-image-2810" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen4.png 718w, https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen4-300x164.png 300w" sizes="auto, (max-width: 718px) 100vw, 718px" /></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Obtendremos una tabla con 12 registros que refleja el total de horas laborables de cada uno de los meses:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="418" height="347" src="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen5.png" alt="" class="wp-image-2811" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen5.png 418w, https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen5-300x249.png 300w" sizes="auto, (max-width: 418px) 100vw, 418px" /></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Tras esto, combinamos la consulta del presupuesto con la del calendario mensual por el campo del mes y nos traemos las <strong>horas laborables mensuales</strong> a cada fila del presupuesto:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="702" height="638" src="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen6.png" alt="" class="wp-image-2812" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen6.png 702w, https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen6-300x273.png 300w" sizes="auto, (max-width: 702px) 100vw, 702px" /></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>El resultado sería el siguiente:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="718" height="500" src="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen7.png" alt="" class="wp-image-2813" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen7.png 718w, https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen7-300x209.png 300w" sizes="auto, (max-width: 718px) 100vw, 718px" /></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Ahora combinamos la consulta del presupuesto con la del calendario (el calendario normal, no el mensual) por el campo del número de mes y expandimos los campos de la <strong>fecha</strong> y las <strong>horas laborables diarias</strong>.&nbsp; (nuestra tabla de presupuesto pasará de 36 filas a 1098 =&gt; 366 días * 3 departamentos).</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="702" height="638" src="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen8.png" alt="" class="wp-image-2814" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen8.png 702w, https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen8-300x273.png 300w" sizes="auto, (max-width: 702px) 100vw, 702px" /></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="479" height="341" src="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen9.png" alt="" class="wp-image-2815" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen9.png 479w, https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen9-300x214.png 300w" sizes="auto, (max-width: 479px) 100vw, 479px" /></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>El resultado sería el siguiente:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="718" height="268" src="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen10.png" alt="" class="wp-image-2816" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen10.png 718w, https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen10-300x112.png 300w" sizes="auto, (max-width: 718px) 100vw, 718px" /></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Ahora ya tenemos en nuestra tabla de presupuesto, <strong>para cada combinación de fecha y departamento</strong>, el <strong>presupuesto mensual del departamento</strong>, las <strong>horas laborables mensuales</strong> y las <strong>horas laborables diarias</strong>.</p>



<p>Por ejemplo, en la fila 2 de la anterior imagen observamos que el día 02/01/2024 (columna FECHA.1) tiene 8 horas laborables de un total de 176 horas laborables del mes de enero; y que el presupuesto mensual del departamento DIRECTAS era de 11.591.186 €.</p>



<p>Con todos estos datos, ya podemos calcular la parte proporcional de presupuesto que le toca a cada combinación de departamento-fecha.</p>



<p>Para ello, vamos a crear una <strong>columna personalizada</strong> que llamaremos “<strong>Presupuesto diario</strong>”. Será el resultado de multiplicar el valor del presupuesto mensual por las horas laborables diarias y dividirlo entre las horas laborables mensuales:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="718" height="508" src="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen11.png" alt="" class="wp-image-2817" style="width:718px;height:auto" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen11.png 718w, https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen11-300x212.png 300w" sizes="auto, (max-width: 718px) 100vw, 718px" /></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Ponemos a la nueva columna formato número decimal fijo y el resultado sería el siguiente:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="718" height="234" src="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen12.png" alt="" class="wp-image-2818" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen12.png 718w, https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen12-300x98.png 300w" sizes="auto, (max-width: 718px) 100vw, 718px" /></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Por último, dentro de la consulta de presupuesto nos quedaríamos únicamente con las columnas “Departamento”, “FECHA.1” (a la que renombraremos posteriormente como “Fecha”) y “Presupuesto diario”.</p>



<p>El <strong>resultado</strong> sería el siguiente:</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="733" height="473" src="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen13.png" alt="" class="wp-image-2819" srcset="https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen13.png 733w, https://reportingfinanciero.es/wp-content/uploads/2024/07/Imagen13-300x194.png 300w" sizes="auto, (max-width: 733px) 100vw, 733px" /></figure>
</div>


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Por tanto, gracias a estas transformaciones realizadas en Power Query, ya habríamos conseguido nuestro objetivo de distribuir un presupuesto que nos habían entregado a granularidad mensual y dejarlo distribuido a granularidad diaria.</p>



<p>Espero que te haya resultado útil y puedas utilizarlo cuando te toque elaborar el presupuesto de 2025 😜</p>



<p>Seguimos!!! 👊​</p>



<p>PD: Te dejo preparado un pbix con los datos de este ejercicio para que puedas practicar el paso a paso.</p>



<p>El enlace de descarga es el siguiente:&nbsp;&nbsp;</p>



<div class="wp-block-kadence-advancedbtn kb-buttons-wrap kb-btns2805_db6d82-d3"><a class="kb-button kt-button button kb-btn2805_ed524b-43 kt-btn-size-standard kt-btn-width-type-auto kb-btn-global-inherit kt-btn-has-text-true kt-btn-has-svg-false  wp-block-button__link wp-block-kadence-singlebtn" href="https://reportingfinanciero.es/wp-content/uploads/2024/07/Plantilla-reparto-presupuesto-mensual-a-nivel-diario.pbix" download=""><span class="kt-btn-inner-text">Descargar</span></a></div>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>
<p><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Freportingfinanciero.es%2Freparto-presupuesto-mensual-a-nivel-diario%2F&amp;linkname=Reparto%20presupuesto%20mensual%20a%20nivel%20diario" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Freportingfinanciero.es%2Freparto-presupuesto-mensual-a-nivel-diario%2F&amp;linkname=Reparto%20presupuesto%20mensual%20a%20nivel%20diario" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_telegram" href="https://www.addtoany.com/add_to/telegram?linkurl=https%3A%2F%2Freportingfinanciero.es%2Freparto-presupuesto-mensual-a-nivel-diario%2F&amp;linkname=Reparto%20presupuesto%20mensual%20a%20nivel%20diario" title="Telegram" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=https%3A%2F%2Freportingfinanciero.es%2Freparto-presupuesto-mensual-a-nivel-diario%2F&amp;linkname=Reparto%20presupuesto%20mensual%20a%20nivel%20diario" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_x" href="https://www.addtoany.com/add_to/x?linkurl=https%3A%2F%2Freportingfinanciero.es%2Freparto-presupuesto-mensual-a-nivel-diario%2F&amp;linkname=Reparto%20presupuesto%20mensual%20a%20nivel%20diario" title="X" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Freportingfinanciero.es%2Freparto-presupuesto-mensual-a-nivel-diario%2F&amp;linkname=Reparto%20presupuesto%20mensual%20a%20nivel%20diario" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_skype" href="https://www.addtoany.com/add_to/skype?linkurl=https%3A%2F%2Freportingfinanciero.es%2Freparto-presupuesto-mensual-a-nivel-diario%2F&amp;linkname=Reparto%20presupuesto%20mensual%20a%20nivel%20diario" title="Skype" rel="nofollow noopener" target="_blank"></a></p><p>La entrada <a href="https://reportingfinanciero.es/reparto-presupuesto-mensual-a-nivel-diario/">Reparto presupuesto mensual a nivel diario</a> se publicó primero en <a href="https://reportingfinanciero.es">reportingfinanciero.es</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ruta de aprendizaje de Power BI.</title>
		<link>https://reportingfinanciero.es/ruta-de-aprendizaje-de-power-bi/</link>
		
		<dc:creator><![CDATA[antonio@gestion23.com]]></dc:creator>
		<pubDate>Fri, 24 Nov 2023 14:25:04 +0000</pubDate>
				<category><![CDATA[Finanzas]]></category>
		<guid isPermaLink="false">https://reportingfinanciero.es/?p=181</guid>

					<description><![CDATA[<p>He recibido últimamente varias consultas de personas que querían iniciarse en el mundo de Power BI y me pedían consejo sobre qué formación podría recomendarles. 📝 Me he animado a detallar la ruta de aprendizaje que, en base a mi experiencia y a la formación que conozco, seguiría si tuviese que empezar nuevamente mi camino ... </p>
<p class="read-more-container"><a title="Ruta de aprendizaje de Power BI." class="read-more button" href="https://reportingfinanciero.es/ruta-de-aprendizaje-de-power-bi/#more-181" aria-label="Leer más sobre Ruta de aprendizaje de Power BI.">Leer más</a></p>
<p>La entrada <a href="https://reportingfinanciero.es/ruta-de-aprendizaje-de-power-bi/">Ruta de aprendizaje de Power BI.</a> se publicó primero en <a href="https://reportingfinanciero.es">reportingfinanciero.es</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>He recibido últimamente varias consultas de personas que querían iniciarse en el mundo de Power BI y me pedían consejo sobre qué formación podría recomendarles.</p>



<p>📝 Me he animado a detallar la ruta de aprendizaje que, en base a mi experiencia y a la formación que conozco, seguiría si tuviese que empezar nuevamente mi camino desde cero (enfocada a usuarios de negocio como yo).</p>



<p>1.- <strong>Primer mandamiento</strong> 😜. Empezaría por una primera lectura del libro “Fundamentos de Modelado en Estrella” de <a href="https://www.linkedin.com/in/tonijurado/">Toni Jurado</a>. Un imprescindible para comprender los conceptos clave de modelado, la parte fundamental de todo proyecto de BI. Y digo primera lectura porque seguro que, con el tiempo, querrás volver a repasar los conceptos detallados en el libro.</p>



<p>Después, me pasaría a formación en vídeo, ya que es la que más me gusta. Procuro buscar formación que sea en vídeo bajo demanda para poder adaptarlo a mis horarios; o formación en streaming que permita visualizar los vídeos fuera del horario de la formación.</p>



<p>Me gusta mucho este formato porque sigue una estructura que hace que no me disperse y puedo ir repasando conceptos y tomando anotaciones a mi ritmo.</p>



<p>2.- Realizaría una formación en la plataforma <a href="https://www.linkedin.com/school/namasdata/">NamasData</a>.&nbsp; Bien el “Curso Power BI de 0 a 100”, o el específico de PL-300 (si está entre tus objetivos el certificarte). Me parece una opción ideal para iniciarse y conseguir una visión global de toda la plataforma de Power BI, de la mano de un gran instructor como <a href="https://www.linkedin.com/in/aleayafer/">Alex Ayala</a> , MVP de Microsoft y muy activo en la comunidad.</p>



<p>3.- Si, como en mi caso, tienes un perfil financiero o de controlling, sin duda te recomendaría seguir tu ruta por <a href="https://www.linkedin.com/school/club-power-platform-controlling/">Club Power Platform for Controlling</a>, una plataforma especializada en este tipo de perfiles. Yo llevo formándome con ellos desde hace unos 4 años, cuando realicé una formación que incluía tutorías para implantar un modelo financiero en mi empresa y que cambió mi forma de trabajar. De hecho, la metodología que aprendí e implanté entonces en mi empresa es la que me ha servido para plantar las bases de mis proyectos de consultoría y formación de reporting financiero.&nbsp; Además, sus formaciones abarcan más tecnologías de Power Platform como Power Apps, Power Automate o Dataverse.&nbsp; Estoy seguro de que conseguirás mejorar tus actuales procesos y dar un impulso a tu carrera profesional de la mano de grandes instructores como <a href="https://www.linkedin.com/in/daniel-mart%C3%ADnez-13178145/">Daniel Martínez</a> o <a href="https://www.linkedin.com/in/juanluisrodriguezpardo/">Juan Luis Rodríguez Pardo</a> , dos de los profesionales de los que más he aprendido.</p>



<p>4.- Me leería estos libros centrados en Power Query y DAX:</p>



<ul class="wp-block-list">
<li>“Power BI Dataflows”, de <a href="https://www.linkedin.com/in/franmullor/">Francisco Mullor Cabrera</a> (una persona a la que siempre estaré agradecido porque no he parado de aprender de él desde que empecé con Power BI). Francisco tiene un blog con entradas muy interesantes: powerbisp. Entre el material, hay una dimensión calendario espectacular, que es la que uso en mis proyectos y que también viene detallada en su libro.</li>



<li>“Tratamiento de datos con Power Query”, de <a href="https://www.linkedin.com/in/ambynet/">Ana María Bisbé York</a>, publicado recientemente. No he podido aún leerlo completo, pero lo que he podido leer hasta ahora me parece muy instructivo.</li>



<li>“DAX Para todos Vol 1”, de <a href="https://www.linkedin.com/in/didier-atehort%C3%BAa-morales-83855515b/">Didier Atehortúa Morales</a> y <a href="https://www.linkedin.com/in/ctamayoa/">Christian Tamayo</a>. Leer este libro me ayudó mucho para profundizar en el mundo DAX y comprender conceptos que hasta entonces no dominaba, como las tablas virtuales o las variables.</li>
</ul>



<p>También recomendaría leer el libro “Curso de Power BI”, también de Ana Bisbé, que da un repaso por toda la plataforma.</p>



<p>Y si te mueves en el mundo financiero, me parece muy interesante el libro “Control de gestión con Excel y Power Query”, de <a href="https://www.linkedin.com/in/josempomares/">José Manuel Pomares &#8211; Power BI MVP &#8211; Excel</a> y <a href="https://www.linkedin.com/in/claravega/">Clara Vega Caballero</a> , con casos prácticos que podrás aplicar en Power BI para dar solución a problemáticas concretas de negocio.</p>



<p>5.- Si quieres profundizar en Power Query y lenguaje M, echa un vistazo a las formaciones de <a href="https://www.linkedin.com/company/dataxbi/">dataXbi</a> , de <a href="https://www.linkedin.com/in/diana-aguilera-reyna/">Diana Aguilera Reyna</a> y <a href="https://www.linkedin.com/in/nelson-lopez-centeno/">Nelson Lopez Centeno</a>. He podido estar en varias ponencias suyas y son dos grandes expertos en la materia.</p>



<p>6.- Para mejorar tus habilidades DAX o profundizar en técnicas para optimizar tus modelos, <a href="https://www.linkedin.com/in/nexus150/">Ricardo Rincón</a> es mi referente.&nbsp; Síguelo en Linkedin y en su canal de Youtube “Bitodata” para aprender sobre Dax Studio y Tabular Editor. Periódicamente lanza formaciones en streaming que están en mi lista de pendientes.</p>



<p>7.- Si quieres mejorar en la visualización de datos, revisa las formaciones de <a href="https://www.linkedin.com/school/consultorahache/">Consultora HACHE.</a> , con <a href="https://www.linkedin.com/in/carlos-bergamo/">Carlos Bérgamo Scarso</a> . También en mi lista de futuribles.</p>



<p>8.- En cuanto a canales de YouTube, mis preferidos son los siguientes:</p>



<ul class="wp-block-list">
<li>Miguel Egea. Hay contenido de auténtico lujo en su canal. Recuerdo un escenario de negocio que resolví gracias a uno de sus vídeos. (Gracias de nuevo, <a href="https://www.linkedin.com/in/megea/">Miguel Egea Gómez</a> 😉).</li>



<li><a href="https://www.linkedin.com/in/sandiellyortega/">Sandielly Ortega Polanco</a>. Tiene gran contenido con muy buena edición de vídeo y explicado de lujo.</li>



<li>Women For Technical Talks (W4TT) y @PowerBIEspanolentelegram donde encontrarás multitud de sesiones súper interesantes.</li>



<li><a href="https://www.linkedin.com/in/sanchezdeboeck/">Antonio Sánchez De Boeck</a> y <a href="https://www.linkedin.com/in/dataedu/">DATAEDU IDN</a> . Me gustan porque suelen tocar temas financieros y porque profundizan en el uso de visualizaciones Zebra. Gracias a ellos he empezado a usar estas visualizaciones en alguno de mis proyectos .</li>
</ul>



<p>Eso sí, te recomiendo llegar a YouTube después de haber hecho alguna formación estructurada o para buscar cómo resolver alguna duda concreta, porque si no el riesgo de dispersión es altísimo….😅</p>



<p>9.- También me suscribiría al canal de Telegram de Power BI Español: <a href="http://t.me/powerbiespanol">t.me/powerbiespanol</a></p>



<p>Es una fuente inagotable de conocimiento. Los usuarios podemos lanzar dudas y siempre hay alguien dispuesto a ayudar. Te advierto de que tiene un volumen muy alto de actividad y reconozco que no suelo poder seguir todas las conversaciones, pero en cuanto tengo un rato muerto procuro ver qué dudas se han resuelto. He aprendido un montón a base de ver problemas con los que se han enfrentado otros compañeros. Destacar aquí la impagable labor de <a href="https://www.linkedin.com/in/franmullor/">Francisco Mullor Cabrera</a> , <a href="https://www.linkedin.com/in/nexus150/">Ricardo Rincón</a> y <a href="https://www.linkedin.com/in/francisco-aracil-alarc%C3%B3n-3a587420a/">Francisco Aracil Alarcón</a> , entre otros, ya que suelen ser los más activos resolviendo dudas.</p>



<p>10.- Acudiría a eventos de comunidad donde se comparte mucho conocimiento y conoces a mucha gente con tus mismas inquietudes. Es una pasada el gran ambiente que hay en estos eventos!!!&nbsp; Busca si tienes alguna comunidad cerca de tu residencia y anímate a asistir a sus eventos.</p>



<p>Hay otras opciones (de las que yo solo he probado algunas) que también te recomiendo visitar para ver si lo que ofrecen se adapta mejor a lo que estás buscando: <a href="http://cursospowerbi.es/">cursospowerbi.es</a> , <a href="https://www.linkedin.com/company/sentidoanalitica/">Sentido Analítica</a> , <a href="https://www.linkedin.com/company/temixa/">Temixa Consulting</a> , <a href="http://elfuturodelosdatos.com/">elfuturodelosdatos.com</a> , <a href="https://www.linkedin.com/company/acadevor/">Acadevor</a> , <a href="https://www.linkedin.com/company/excel-y-finanzas-miguel-antunez/">EXCEL Y FINANZAS</a> , <a href="https://www.linkedin.com/company/datagrowup/">Grow Up Data Analytics</a> o LinkedIn Learning.</p>



<p>Seguro que me dejo muchas opciones súper útiles, pero dejo aquí mi selección&#8230;.</p>



<p>🚀 Disfruta de tu aprendizaje!!!!</p>



<p>#powerbi&nbsp; #aprendizaje&nbsp; #cursos&nbsp; #libros&nbsp; #Youtube</p>
<p><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fruta-de-aprendizaje-de-power-bi%2F&amp;linkname=Ruta%20de%20aprendizaje%20de%20Power%20BI." title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fruta-de-aprendizaje-de-power-bi%2F&amp;linkname=Ruta%20de%20aprendizaje%20de%20Power%20BI." title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_telegram" href="https://www.addtoany.com/add_to/telegram?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fruta-de-aprendizaje-de-power-bi%2F&amp;linkname=Ruta%20de%20aprendizaje%20de%20Power%20BI." title="Telegram" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fruta-de-aprendizaje-de-power-bi%2F&amp;linkname=Ruta%20de%20aprendizaje%20de%20Power%20BI." title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_x" href="https://www.addtoany.com/add_to/x?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fruta-de-aprendizaje-de-power-bi%2F&amp;linkname=Ruta%20de%20aprendizaje%20de%20Power%20BI." title="X" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fruta-de-aprendizaje-de-power-bi%2F&amp;linkname=Ruta%20de%20aprendizaje%20de%20Power%20BI." title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_skype" href="https://www.addtoany.com/add_to/skype?linkurl=https%3A%2F%2Freportingfinanciero.es%2Fruta-de-aprendizaje-de-power-bi%2F&amp;linkname=Ruta%20de%20aprendizaje%20de%20Power%20BI." title="Skype" rel="nofollow noopener" target="_blank"></a></p><p>La entrada <a href="https://reportingfinanciero.es/ruta-de-aprendizaje-de-power-bi/">Ruta de aprendizaje de Power BI.</a> se publicó primero en <a href="https://reportingfinanciero.es">reportingfinanciero.es</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
