{"id":1582,"date":"2019-08-29T13:08:00","date_gmt":"2019-08-29T11:08:00","guid":{"rendered":"https:\/\/bicontrolling.com\/?p=1582"},"modified":"2020-05-02T00:58:47","modified_gmt":"2020-05-01T22:58:47","slug":"eliminar-y-transformar-columnas-de-forma-segura-en-power-query","status":"publish","type":"post","link":"https:\/\/bicontrolling.com\/index.php\/2019\/08\/29\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\/","title":{"rendered":"Eliminar y transformar columnas de forma segura en Power Query"},"content":{"rendered":"\n<h4 class=\"wp-block-heading\">Introducci\u00f3n<\/h4>\n\n\n\n<p>El editor de consultas de Power Query nos proporciona un <strong>interfaz gr\u00e1fico de usuario<\/strong> que facilita enormemente una gran parte de nuestras tareas de limpieza y optimizaci\u00f3n estructural de los datos, traduciendo los pasos que vamos realizando sobre una vista previa, a un flujo de instrucciones program\u00e1ticas en lenguaje M que podemos ejecutar con el objetivo de automatizar dichas tareas.<\/p>\n\n\n\n<p>Desafortunadamente, esta facilidad a la hora de realizar las tareas de ETL trae consigo la capacidad de cometer, sin que nos demos cuenta, algunos errores que pueden llevarnos a la <strong>creaci\u00f3n de consultas vulnerables<\/strong> que no ser\u00e1n capaces de soportar los cambios en or\u00edgenes de datos din\u00e1micos, y por lo tanto no se actualizar\u00e1n.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Cada paso que se realiza utilizando la interfaz de usuario del editor de consultas genera una l\u00ednea de c\u00f3digo que se a\u00f1ade a la secuencia de transformaciones que se aplican a la consulta cada vez que los datos se actualizan. A medida que se construyen estos pasos, <strong>Power Query tiene que decidir sobre c\u00f3mo traducirlos a c\u00f3digo<\/strong>. Por ejemplo, la transformaci\u00f3n de anular la dinamizaci\u00f3n de columnas utiliza la funci\u00f3n <code>Table.UnpivotOtherColumns<\/code>, y hace referencia a las columnas no seleccionadas de la tabla activa, aquellas que podr\u00edamos denominar columnas de anclaje, en lugar de a las seleccionadas, que son sobre las que se realiza la anulaci\u00f3n de la dinamizaci\u00f3n. <\/p>\n\n\n\n<p>Son estas decisiones de \u00abtraducci\u00f3n\u00bb las que pueden hacer que alguna de las consultas <strong>no sea lo suficientemente robusta como para soportar cambios futuros en los or\u00edgenes de datos<\/strong>, y se produzca un error en el momento de actualizar nuestro modelo. Los escenarios m\u00e1s comunes para estos fallos de actualizaci\u00f3n se originan en los cambios de nombre, de tipo de dato, o en la eliminaci\u00f3n de las columnas en las tablas de origen. En este art\u00edculo vamos a ver c\u00f3mo evitar estos problemas construyendo nuestras consultas pensando con antelaci\u00f3n en los cambios que pueden producirse en nuestros or\u00edgenes de datos en el futuro.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Eliminar columnas de forma segura en Power Query<\/h4>\n\n\n\n<p>Si bien la eliminaci\u00f3n de columnas innecesarias es una parte crucial de la creaci\u00f3n de informes eficientes (menos columnas significa menor consumo de memoria y un menor tama\u00f1o de archivo en disco), cada vez que se elimina una columna, <strong>se debilita la consulta y nos exponemos a la posibilidad de futuros fallos de actualizaci\u00f3n<\/strong> cuando la columna eliminada no se encuentre en la fuente de datos externa. La forma m\u00e1s intuitiva y directa para realizar esta transformaci\u00f3n es usar el bot\u00f3n de \u00abQuitar columnas\u00bb en las columnas seleccionadas:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"629\" height=\"67\" src=\"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-5.png?resize=629%2C67&#038;ssl=1\" alt=\"\" class=\"wp-image-1591\" srcset=\"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-5.png?w=855&amp;ssl=1 855w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-5.png?resize=300%2C32&amp;ssl=1 300w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-5.png?resize=768%2C82&amp;ssl=1 768w\" sizes=\"auto, (max-width: 629px) 100vw, 629px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p>Cuando utilizamos esta funcionalidad, la f\u00f3rmula generada en M utiliza la funci\u00f3n <code>Table.RemoveColumns<\/code> y referencia en el c\u00f3digo las columnas que hemos eliminado.<\/p>\n\n\n\n<p>Ahora, si cuando realizamos una actualizaci\u00f3n, la tabla del origen ya no incluye una de estas columnas eliminadas, la actualizaci\u00f3n fallar\u00e1:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"629\" height=\"231\" src=\"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-2.png?resize=629%2C231&#038;ssl=1\" alt=\"\" class=\"wp-image-1593\" srcset=\"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-2.png?w=677&amp;ssl=1 677w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-2.png?resize=300%2C110&amp;ssl=1 300w\" sizes=\"auto, (max-width: 629px) 100vw, 629px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p>Para reducir la probabilidad de este tipo de errores, la soluci\u00f3n m\u00e1s simple consiste en centrarnos en las columnas a mantener, en vez de en aquellas a eliminar. Desde el editor de consultas podemos usar el bot\u00f3n \u00abElegir columnas\u00bb y la f\u00f3rmula de c\u00f3digo autogenerada incluir\u00e1 la funci\u00f3n <code>Table.SelectColumns<\/code>, <strong>referenciando \u00fanicamente las columnas a mantener<\/strong>, por lo que en el caso de que alguna de las columnas que no queremos incluir en nuestro modelo sea eliminada del origen, la actualizaci\u00f3n de nuestra consulta seguir\u00e1 funcionando correctamente.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Ignorar la columna no encontrada<\/h4>\n\n\n\n<p>A veces, el n\u00famero de columnas a mantener en una consulta es demasiado alto, y el riesgo de eliminar algunas columnas puede ser menor que los problemas asociados a referenciar un gran n\u00famero de columnas en el c\u00f3digo.<\/p>\n\n\n\n<p>En ese caso, tenemos la opci\u00f3n de utilizar un<strong> tercer argumento opcional, <\/strong>tanto de la funci\u00f3n <code>Table.RemoveColumns<\/code> como de <code>Table.SelectColumns<\/code>, que nos permite <strong>ignorar los errores en lugar de no actualizar la consulta<\/strong>. El tercer argumento es <code>MissingField.Ignore<\/code> o <code>MissingField.UseNull<\/code>.<\/p>\n\n\n\n<p><code>MissingField.Ignore<\/code> ignora la columna no encontrada, mientras que <code>MissingField.UseNull<\/code> mantiene el nombre de dicha columna, pero con valores nulos. <code>MissingField.UseNull<\/code> es m\u00e1s pr\u00e1ctico que su hermano <code>MissingField.Ignore<\/code> cuando lo usamos como par\u00e1metro de <code>Table.SelectColumns<\/code>, ya que nos <strong>permite asegurarnos de que los nombres de las columnas seleccionadas se incluir\u00e1n en los resultados finales<\/strong>. Por ejemplo, si en una actualizaci\u00f3n de nuestra tabla de clientes no se encuentra la columna \u00abContinente\u00bb, al usar <code>MissingField.UseNull<\/code> obtendremos el siguiente resultado:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"629\" height=\"285\" src=\"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-6.png?resize=629%2C285&#038;ssl=1\" alt=\"\" class=\"wp-image-1594\" srcset=\"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-6.png?w=893&amp;ssl=1 893w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-6.png?resize=300%2C136&amp;ssl=1 300w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-6.png?resize=768%2C348&amp;ssl=1 768w\" sizes=\"auto, (max-width: 629px) 100vw, 629px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Elegir o eliminar columnas en funci\u00f3n de su posici\u00f3n en la tabla<\/h4>\n\n\n\n<p>En muchos escenarios, donde existe una probabilidad alta de que los nombres de los campos se modifiquen en el origen, pero no su posici\u00f3n dentro de la tabla, <strong>eliminar o seleccionar columnas en funci\u00f3n de su posici\u00f3n<\/strong> es m\u00e1s seguro que referenciarlas por su nombre dentro del c\u00f3digo. El uso de la funci\u00f3n  <code>Table.ColumnNames<\/code> para obtener la lista de todos los nombres de las columnas y de <code>List.Range<\/code> para recuperar un subconjunto de estas, permite seleccionar cualquier subconjunto de columnas en base a su posici\u00f3n. Vamos a ver alg\u00fan ejemplo del uso de estas 2 funciones.<\/p>\n\n\n\n<p>Para eliminar la primera columna de la tabla podemos usar cualquiera de estas dos expresiones:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">= Table.RemoveColumns(Origen, List.First(Table.ColumnNames(Origen)))\n= Table.RemoveColumns(Origen, Table.ColumnNames(Origen){0})<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p>Si usamos <code>List.FirstN<\/code> podemos especificar el n\u00famero de <strong>columnas a borrar desde la primera de la tabla<\/strong>. Por ejemplo, la siguiente f\u00f3rmula eliminar\u00eda las 3 primeras columnas:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">= Table.RemoveColumns(Origen, List.FirstN(Table.ColumnNames(Origen), 3))<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p>De forma an\u00e1loga, podemos utilizar <code>List.Last<\/code> y <code>List.LastN<\/code> para eliminar el n\u00famero de columnas deseadas <strong>situadas al final de la tabla<\/strong>. Por \u00faltimo, <code>List.Range<\/code> recibe una lista como primer par\u00e1metro, un desplazamiento de base cero como segundo, y el recuento de columnas a devolver como tercero. Podemos utilizar el siguiente c\u00f3digo para elegir las columnas segunda y tercera de la tabla:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">= Table.SelectColumns(Source, List.Range(Table.ColumnNames(Source), 1, 2))<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">Cambiar el tipo de dato de las columnas de forma segura en Power Query<\/h4>\n\n\n\n<p>El factor n\u00famero uno para los fallos de actualizaci\u00f3n debido a cambios en el nombre de las columnas <strong>es el paso de \u00abTipo cambiado\u00bb<\/strong>. Este se a\u00f1ade autom\u00e1ticamente en muchas ocasiones, sobre todo cuando utilizamos archivos como origen de datos, y tras aplicar el paso de promover encabezados.  Power Query est\u00e1 dise\u00f1ado para <strong>detectar impl\u00edcitamente los tipos de todas las columnas de la tabla<\/strong>. Esto es as\u00ed, porque sin la definici\u00f3n correcta de los tipos de dato en algunas columnas, no podr\u00edamos realizar operaciones aritm\u00e9ticas con columnas num\u00e9ricas o aplicar las funciones de inteligencia del tiempo usando nuestras columnas de fecha. El problema que surge con esta transformaci\u00f3n es similar al visto en la primera parte de este art\u00edculo, cualquier m\u00ednimo cambio en los nombres de las columnas o la eliminaci\u00f3n de las mismas en la fuente de datos provocar\u00e1 errores de actualizaci\u00f3n, al quedar los nombres de las columnas codificados dentro de la funci\u00f3n <code>Table.TransformColumnTypes<\/code>.<\/p>\n\n\n\n<p>La soluci\u00f3n m\u00e1s simple y com\u00fan para evitar este problema es eliminar el paso de \u00abTipo cambiado\u00bb y <strong>especificar manualmente el tipo de dato de solamente las columnas que lo necesiten<\/strong> (num\u00e9ricas y de fecha), con el objetivo de referenciar el menor n\u00famero de columnas posible en nuestro c\u00f3digo. De la misma forma, es recomendable definir los tipos lo m\u00e1s tarde posible en el proceso, principalmente por la posible <strong>mejora del rendimiento a la hora de actualizar el modelo<\/strong>. Debido a que esta transformaci\u00f3n requiere movilizar ciertos recursos de c\u00e1lculo del motor de M, si vamos a reducir considerablemente el n\u00famero de registros mediante la aplicaci\u00f3n de filtros, siempre ser\u00e1 preferible definir el tipo de dato de las columnas tras esta reducci\u00f3n.<\/p>\n\n\n\n<p>Tambi\u00e9n, podemos <strong>configurar Power Query para que no realice autom\u00e1ticamente<\/strong> la detecci\u00f3n y especificaci\u00f3n del tipo de dato de cada columna. Dentro de las opciones de Power BI, en el apartado \u00abCarga de datos\u00bb del archivo actual, debemos deseleccionar la opci\u00f3n de \u00abDetectar autom\u00e1ticamente encabezados y tipos de columna para or\u00edgenes no estructurados\u00bb:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"629\" height=\"607\" src=\"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-7.png?resize=629%2C607&#038;ssl=1\" alt=\"\" class=\"wp-image-1604\" srcset=\"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-7.png?w=685&amp;ssl=1 685w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-7.png?resize=300%2C289&amp;ssl=1 300w\" sizes=\"auto, (max-width: 629px) 100vw, 629px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p>Desafortunadamente, no existe dicha opci\u00f3n en la parte de las opciones globales, por lo que hay que repetir el proceso para cada archivo pbix.<\/p>\n\n\n\n<p>Para la funci\u00f3n  <code>Table.TransformColumnTypes<\/code> <strong>no existe el par\u00e1metro opcional<\/strong> <code>MissingField<\/code> que hemos usado dentro de la funci\u00f3n  <code>Table.SelectColumns<\/code> para ignorar este tipo de errores de actualizaci\u00f3n, pero como veremos en el pr\u00f3ximo art\u00edculo, podemos imitar el comportamiento de <code>MissingField.Ignore<\/code> mediante el uso de <code>List.Accumulate<\/code>  y la creaci\u00f3n de una <strong>funci\u00f3n personalizada en Power Query<\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introducci\u00f3n El editor de consultas de Power Query nos proporciona un interfaz gr\u00e1fico de usuario que facilita enormemente una gran parte de nuestras tareas de limpieza y optimizaci\u00f3n estructural de los datos, traduciendo los pasos que vamos realizando sobre una vista previa, a un flujo de instrucciones program\u00e1ticas en lenguaje M que podemos ejecutar con [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[2,6],"tags":[27,10,29,40,14,18,39],"post_series":[],"class_list":["post-1582","post","type-post","status-publish","format-standard","hentry","category-arquitectura-de-datos","category-m-power-query","tag-bi","tag-editor-de-consultas","tag-etl","tag-optimizacion","tag-power-bi","tag-power-query","tag-transformaciones"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Introducci\u00f3n El editor de consultas de Power Query nos proporciona un interfaz gr\u00e1fico de usuario que facilita enormemente una gran parte de nuestras tareas de limpieza y optimizaci\u00f3n estructural de los datos, traduciendo los pasos que vamos realizando sobre una vista previa, a un flujo de instrucciones program\u00e1ticas en lenguaje M que podemos ejecutar con\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Admin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/bicontrolling.com\/index.php\/2019\/08\/29\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Business Intelligence Controlling | La nueva generaci\u00f3n del reporting econ\u00f3mico-financiero y el control de gesti\u00f3n empresarial\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Eliminar y transformar columnas de forma segura en Power Query | Business Intelligence Controlling\" \/>\n\t\t<meta property=\"og:description\" content=\"Introducci\u00f3n El editor de consultas de Power Query nos proporciona un interfaz gr\u00e1fico de usuario que facilita enormemente una gran parte de nuestras tareas de limpieza y optimizaci\u00f3n estructural de los datos, traduciendo los pasos que vamos realizando sobre una vista previa, a un flujo de instrucciones program\u00e1ticas en lenguaje M que podemos ejecutar con\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/bicontrolling.com\/index.php\/2019\/08\/29\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-08-29T11:08:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-01T22:58:47+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Eliminar y transformar columnas de forma segura en Power Query | Business Intelligence Controlling\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Introducci\u00f3n El editor de consultas de Power Query nos proporciona un interfaz gr\u00e1fico de usuario que facilita enormemente una gran parte de nuestras tareas de limpieza y optimizaci\u00f3n estructural de los datos, traduciendo los pasos que vamos realizando sobre una vista previa, a un flujo de instrucciones program\u00e1ticas en lenguaje M que podemos ejecutar con\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2019\\\/08\\\/29\\\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\\\/#article\",\"name\":\"Eliminar y transformar columnas de forma segura en Power Query | Business Intelligence Controlling\",\"headline\":\"Eliminar y transformar columnas de forma segura en Power Query\",\"author\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/author\\\/vlozanoluque_sg8t8mat\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/bicontrolling.com\\\/wp-content\\\/uploads\\\/2020\\\/04\\\/Imagen-5.png?fit=855%2C91&ssl=1\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2019\\\/08\\\/29\\\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\\\/#articleImage\",\"width\":855,\"height\":91},\"datePublished\":\"2019-08-29T13:08:00+02:00\",\"dateModified\":\"2020-05-02T00:58:47+02:00\",\"inLanguage\":\"es-ES\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2019\\\/08\\\/29\\\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2019\\\/08\\\/29\\\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\\\/#webpage\"},\"articleSection\":\"Arquitectura de datos, M (Power Query), BI, Editor de consultas, ETL, Optimizaci\\u00f3n, Power BI, Power Query, Transformaciones\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2019\\\/08\\\/29\\\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bicontrolling.com#listItem\",\"position\":1,\"name\":\"Inicio\",\"item\":\"https:\\\/\\\/bicontrolling.com\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/category\\\/arquitectura-de-datos\\\/#listItem\",\"name\":\"Arquitectura de datos\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/category\\\/arquitectura-de-datos\\\/#listItem\",\"position\":2,\"name\":\"Arquitectura de datos\",\"item\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/category\\\/arquitectura-de-datos\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2019\\\/08\\\/29\\\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\\\/#listItem\",\"name\":\"Eliminar y transformar columnas de forma segura en Power Query\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bicontrolling.com#listItem\",\"name\":\"Inicio\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2019\\\/08\\\/29\\\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\\\/#listItem\",\"position\":3,\"name\":\"Eliminar y transformar columnas de forma segura en Power Query\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/category\\\/arquitectura-de-datos\\\/#listItem\",\"name\":\"Arquitectura de datos\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/#organization\",\"name\":\"Business Intelligence Controlling\",\"description\":\"La nueva generaci\\u00f3n del reporting econ\\u00f3mico-financiero y el control de gesti\\u00f3n empresarial\",\"url\":\"https:\\\/\\\/bicontrolling.com\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/author\\\/vlozanoluque_sg8t8mat\\\/#author\",\"url\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/author\\\/vlozanoluque_sg8t8mat\\\/\",\"name\":\"Admin\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2019\\\/08\\\/29\\\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/00c17f691e05a0999c7ea23a9ae4aa6e7ae25f55cd91ae9629fe81a02ae98278?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Admin\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2019\\\/08\\\/29\\\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\\\/#webpage\",\"url\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2019\\\/08\\\/29\\\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\\\/\",\"name\":\"Eliminar y transformar columnas de forma segura en Power Query | Business Intelligence Controlling\",\"description\":\"Introducci\\u00f3n El editor de consultas de Power Query nos proporciona un interfaz gr\\u00e1fico de usuario que facilita enormemente una gran parte de nuestras tareas de limpieza y optimizaci\\u00f3n estructural de los datos, traduciendo los pasos que vamos realizando sobre una vista previa, a un flujo de instrucciones program\\u00e1ticas en lenguaje M que podemos ejecutar con\",\"inLanguage\":\"es-ES\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2019\\\/08\\\/29\\\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/author\\\/vlozanoluque_sg8t8mat\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/author\\\/vlozanoluque_sg8t8mat\\\/#author\"},\"datePublished\":\"2019-08-29T13:08:00+02:00\",\"dateModified\":\"2020-05-02T00:58:47+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/#website\",\"url\":\"https:\\\/\\\/bicontrolling.com\\\/\",\"name\":\"Business Intelligence Controlling\",\"description\":\"La nueva generaci\\u00f3n del reporting econ\\u00f3mico-financiero y el control de gesti\\u00f3n empresarial\",\"inLanguage\":\"es-ES\",\"publisher\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Eliminar y transformar columnas de forma segura en Power Query | Business Intelligence Controlling","description":"Introducci\u00f3n El editor de consultas de Power Query nos proporciona un interfaz gr\u00e1fico de usuario que facilita enormemente una gran parte de nuestras tareas de limpieza y optimizaci\u00f3n estructural de los datos, traduciendo los pasos que vamos realizando sobre una vista previa, a un flujo de instrucciones program\u00e1ticas en lenguaje M que podemos ejecutar con","canonical_url":"https:\/\/bicontrolling.com\/index.php\/2019\/08\/29\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/bicontrolling.com\/index.php\/2019\/08\/29\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\/#article","name":"Eliminar y transformar columnas de forma segura en Power Query | Business Intelligence Controlling","headline":"Eliminar y transformar columnas de forma segura en Power Query","author":{"@id":"https:\/\/bicontrolling.com\/index.php\/author\/vlozanoluque_sg8t8mat\/#author"},"publisher":{"@id":"https:\/\/bicontrolling.com\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-5.png?fit=855%2C91&ssl=1","@id":"https:\/\/bicontrolling.com\/index.php\/2019\/08\/29\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\/#articleImage","width":855,"height":91},"datePublished":"2019-08-29T13:08:00+02:00","dateModified":"2020-05-02T00:58:47+02:00","inLanguage":"es-ES","mainEntityOfPage":{"@id":"https:\/\/bicontrolling.com\/index.php\/2019\/08\/29\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\/#webpage"},"isPartOf":{"@id":"https:\/\/bicontrolling.com\/index.php\/2019\/08\/29\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\/#webpage"},"articleSection":"Arquitectura de datos, M (Power Query), BI, Editor de consultas, ETL, Optimizaci\u00f3n, Power BI, Power Query, Transformaciones"},{"@type":"BreadcrumbList","@id":"https:\/\/bicontrolling.com\/index.php\/2019\/08\/29\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/bicontrolling.com#listItem","position":1,"name":"Inicio","item":"https:\/\/bicontrolling.com","nextItem":{"@type":"ListItem","@id":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/#listItem","name":"Arquitectura de datos"}},{"@type":"ListItem","@id":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/#listItem","position":2,"name":"Arquitectura de datos","item":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/","nextItem":{"@type":"ListItem","@id":"https:\/\/bicontrolling.com\/index.php\/2019\/08\/29\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\/#listItem","name":"Eliminar y transformar columnas de forma segura en Power Query"},"previousItem":{"@type":"ListItem","@id":"https:\/\/bicontrolling.com#listItem","name":"Inicio"}},{"@type":"ListItem","@id":"https:\/\/bicontrolling.com\/index.php\/2019\/08\/29\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\/#listItem","position":3,"name":"Eliminar y transformar columnas de forma segura en Power Query","previousItem":{"@type":"ListItem","@id":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/#listItem","name":"Arquitectura de datos"}}]},{"@type":"Organization","@id":"https:\/\/bicontrolling.com\/#organization","name":"Business Intelligence Controlling","description":"La nueva generaci\u00f3n del reporting econ\u00f3mico-financiero y el control de gesti\u00f3n empresarial","url":"https:\/\/bicontrolling.com\/"},{"@type":"Person","@id":"https:\/\/bicontrolling.com\/index.php\/author\/vlozanoluque_sg8t8mat\/#author","url":"https:\/\/bicontrolling.com\/index.php\/author\/vlozanoluque_sg8t8mat\/","name":"Admin","image":{"@type":"ImageObject","@id":"https:\/\/bicontrolling.com\/index.php\/2019\/08\/29\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/00c17f691e05a0999c7ea23a9ae4aa6e7ae25f55cd91ae9629fe81a02ae98278?s=96&d=mm&r=g","width":96,"height":96,"caption":"Admin"}},{"@type":"WebPage","@id":"https:\/\/bicontrolling.com\/index.php\/2019\/08\/29\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\/#webpage","url":"https:\/\/bicontrolling.com\/index.php\/2019\/08\/29\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\/","name":"Eliminar y transformar columnas de forma segura en Power Query | Business Intelligence Controlling","description":"Introducci\u00f3n El editor de consultas de Power Query nos proporciona un interfaz gr\u00e1fico de usuario que facilita enormemente una gran parte de nuestras tareas de limpieza y optimizaci\u00f3n estructural de los datos, traduciendo los pasos que vamos realizando sobre una vista previa, a un flujo de instrucciones program\u00e1ticas en lenguaje M que podemos ejecutar con","inLanguage":"es-ES","isPartOf":{"@id":"https:\/\/bicontrolling.com\/#website"},"breadcrumb":{"@id":"https:\/\/bicontrolling.com\/index.php\/2019\/08\/29\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\/#breadcrumblist"},"author":{"@id":"https:\/\/bicontrolling.com\/index.php\/author\/vlozanoluque_sg8t8mat\/#author"},"creator":{"@id":"https:\/\/bicontrolling.com\/index.php\/author\/vlozanoluque_sg8t8mat\/#author"},"datePublished":"2019-08-29T13:08:00+02:00","dateModified":"2020-05-02T00:58:47+02:00"},{"@type":"WebSite","@id":"https:\/\/bicontrolling.com\/#website","url":"https:\/\/bicontrolling.com\/","name":"Business Intelligence Controlling","description":"La nueva generaci\u00f3n del reporting econ\u00f3mico-financiero y el control de gesti\u00f3n empresarial","inLanguage":"es-ES","publisher":{"@id":"https:\/\/bicontrolling.com\/#organization"}}]},"og:locale":"es_ES","og:site_name":"Business Intelligence Controlling | La nueva generaci\u00f3n del reporting econ\u00f3mico-financiero y el control de gesti\u00f3n empresarial","og:type":"article","og:title":"Eliminar y transformar columnas de forma segura en Power Query | Business Intelligence Controlling","og:description":"Introducci\u00f3n El editor de consultas de Power Query nos proporciona un interfaz gr\u00e1fico de usuario que facilita enormemente una gran parte de nuestras tareas de limpieza y optimizaci\u00f3n estructural de los datos, traduciendo los pasos que vamos realizando sobre una vista previa, a un flujo de instrucciones program\u00e1ticas en lenguaje M que podemos ejecutar con","og:url":"https:\/\/bicontrolling.com\/index.php\/2019\/08\/29\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\/","article:published_time":"2019-08-29T11:08:00+00:00","article:modified_time":"2020-05-01T22:58:47+00:00","twitter:card":"summary","twitter:title":"Eliminar y transformar columnas de forma segura en Power Query | Business Intelligence Controlling","twitter:description":"Introducci\u00f3n El editor de consultas de Power Query nos proporciona un interfaz gr\u00e1fico de usuario que facilita enormemente una gran parte de nuestras tareas de limpieza y optimizaci\u00f3n estructural de los datos, traduciendo los pasos que vamos realizando sobre una vista previa, a un flujo de instrucciones program\u00e1ticas en lenguaje M que podemos ejecutar con"},"aioseo_meta_data":{"post_id":"1582","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2021-03-31 11:36:59","updated":"2025-06-04 11:51:55","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/bicontrolling.com\" title=\"Inicio\">Inicio<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/\" title=\"Arquitectura de datos\">Arquitectura de datos<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tEliminar y transformar columnas de forma segura en Power Query\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Inicio","link":"https:\/\/bicontrolling.com"},{"label":"Arquitectura de datos","link":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/"},{"label":"Eliminar y transformar columnas de forma segura en Power Query","link":"https:\/\/bicontrolling.com\/index.php\/2019\/08\/29\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\/"}],"jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":1938,"url":"https:\/\/bicontrolling.com\/index.php\/2021\/11\/26\/hasta-el-ultimo-segundo-en-power-bi\/","url_meta":{"origin":1582,"position":0},"title":"Hasta el \u00faltimo segundo en Power BI","author":"Admin","date":"26 noviembre, 2021","format":false,"excerpt":"Video de mi participaci\u00f3n en Power Platform Madrid, con una sesi\u00f3n sobre la creaci\u00f3n y el uso de una dimensi\u00f3n horaria que nos permita analizar nuestros hechos a granularidades inferiores al d\u00eda. https:\/\/www.youtube.com\/watch?v=UViZ3lzLxrE","rel":"","context":"En \u00abArquitectura de datos\u00bb","block_context":{"text":"Arquitectura de datos","link":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/img.youtube.com\/vi\/UViZ3lzLxrE\/0.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1509,"url":"https:\/\/bicontrolling.com\/index.php\/2020\/01\/28\/dinamizar-mas-de-un-valor-en-power-query\/","url_meta":{"origin":1582,"position":1},"title":"Dinamizar sobre m\u00e1s de un valor en Power Query","author":"Admin","date":"28 enero, 2020","format":false,"excerpt":"La funci\u00f3n Table.Pivot() del lenguaje M nos ofrece la capacidad de obtener como resultado una tabla que contiene un valor agregado para cada valor \u00fanico de una columna. Cuando usamos esta funci\u00f3n, Power Query agrupa cada valor mediante la agregaci\u00f3n que seleccionemos y rota (pivota) los datos de la columna\u2026","rel":"","context":"En \u00abArquitectura de datos\u00bb","block_context":{"text":"Arquitectura de datos","link":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/12\/Combinada.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/12\/Combinada.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/12\/Combinada.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2019\/12\/Combinada.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":1568,"url":"https:\/\/bicontrolling.com\/index.php\/2020\/04\/19\/mostrar-la-ultima-fecha-de-actualizacion-en-power-bi\/","url_meta":{"origin":1582,"position":2},"title":"Mostrar la \u00faltima fecha de actualizaci\u00f3n en Power BI","author":"Admin","date":"19 abril, 2020","format":false,"excerpt":"Introducci\u00f3n En numerosas ocasiones, la primera pregunta que nos hace un usuario de un informe en Power BI es \u00bfest\u00e1n los datos actualizados? En un Panel del Servicio podemos configurar en cualquiera de las visualizaciones ancladas en el mismo, la capacidad de mostrar la hora de \u00faltima actualizaci\u00f3n de los\u2026","rel":"","context":"En \u00abArquitectura de datos\u00bb","block_context":{"text":"Arquitectura de datos","link":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-1.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":1612,"url":"https:\/\/bicontrolling.com\/index.php\/2019\/09\/16\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\/","url_meta":{"origin":1582,"position":3},"title":"Imitar el comportamiento del argumento MissingField.Ignore en Table.TransformColumnTypes","author":"Admin","date":"16 septiembre, 2019","format":false,"excerpt":"Introducci\u00f3n En el anterior art\u00edculo estuvimos hablando del reto de crear consultas robustas que sean resistentes a los cambios en la estructura de los datos en el origen, y que no fallen en la actualizaci\u00f3n por culpa de estas modificaciones. Vimos c\u00f3mo, probablemente, el catalizador m\u00e1s com\u00fan de este tipo\u2026","rel":"","context":"En \u00abArquitectura de datos\u00bb","block_context":{"text":"Arquitectura de datos","link":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-12.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-12.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-12.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-12.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":430,"url":"https:\/\/bicontrolling.com\/index.php\/2020\/02\/20\/desnormalizando-consultas-de-forma-eficiente-2\/","url_meta":{"origin":1582,"position":4},"title":"Desnormalizando dimensiones de forma eficiente","author":"Admin","date":"20 febrero, 2020","format":false,"excerpt":"Como vimos en una entrada anterior, cuando dise\u00f1amos un modelo de datos anal\u00edtico, el enfoque principal debe situarse en lograr un dise\u00f1o que favorezca la simplicidad en la exploraci\u00f3n y agregaci\u00f3n de los datos, a la vez que en obtener un rendimiento \u00f3ptimo en la realizaci\u00f3n de consultas. Las estructuras\u2026","rel":"","context":"En \u00abArquitectura de datos\u00bb","block_context":{"text":"Arquitectura de datos","link":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/09\/image-31-1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/09\/image-31-1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/09\/image-31-1.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/09\/image-31-1.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":1731,"url":"https:\/\/bicontrolling.com\/index.php\/2020\/12\/04\/clasificar-valores-numericos-mediante-una-funcion-personalizada-en-power-query\/","url_meta":{"origin":1582,"position":5},"title":"Clasificar valores num\u00e9ricos mediante una funci\u00f3n personalizada en Power Query","author":"Admin","date":"4 diciembre, 2020","format":false,"excerpt":"Introducci\u00f3n Cuando se construye un modelo de datos en Power BI, suele ser com\u00fan la necesidad de ampliar una tabla procedente de un origen de datos con columnas adicionales, cuyo contenido se derive de los datos existentes en dicha tabla. En estos casos en los que los valores de las\u2026","rel":"","context":"En \u00abArquitectura de datos\u00bb","block_context":{"text":"Arquitectura de datos","link":"https:\/\/bicontrolling.com\/index.php\/category\/arquitectura-de-datos\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/12\/Imagen-26.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/12\/Imagen-26.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/12\/Imagen-26.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]}],"jetpack_likes_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/posts\/1582","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/comments?post=1582"}],"version-history":[{"count":20,"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/posts\/1582\/revisions"}],"predecessor-version":[{"id":1630,"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/posts\/1582\/revisions\/1630"}],"wp:attachment":[{"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/media?parent=1582"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/categories?post=1582"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/tags?post=1582"},{"taxonomy":"post_series","embeddable":true,"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/post_series?post=1582"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}