{"id":1612,"date":"2019-09-16T17:38:00","date_gmt":"2019-09-16T15:38:00","guid":{"rendered":"https:\/\/bicontrolling.com\/?p=1612"},"modified":"2020-05-01T20:45:06","modified_gmt":"2020-05-01T18:45:06","slug":"imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes","status":"publish","type":"post","link":"https:\/\/bicontrolling.com\/index.php\/2019\/09\/16\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\/","title":{"rendered":"Imitar el comportamiento del argumento MissingField.Ignore en Table.TransformColumnTypes"},"content":{"rendered":"\n<h4 class=\"wp-block-heading\">Introducci\u00f3n<\/h4>\n\n\n\n<p>En el anterior art\u00edculo estuvimos hablando del reto de crear <strong>consultas robustas que sean resistentes a los cambios<\/strong> 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 de errores corresponde al uso de la funci\u00f3n <code>Table.TransformColumnTypes<\/code>, y como se considera buena pr\u00e1ctica el definir el tipo de solamente aquellas columnas que lo necesiten, con la finalidad de <strong>referenciar el menor n\u00famero posible<\/strong> de ellas en nuestro c\u00f3digo, y as\u00ed evitar posibles fallos a la hora de actualizar nuestro modelo.<\/p>\n\n\n\n<p>Cuando tratamos el tema de como eliminar de forma segura columnas en Power Query vimos el funcionamiento del argumento <code>MissingField.Ignore<\/code>, un par\u00e1metro opcional en muchas de las funciones de registro y de tabla, que indica que los <strong>campos referenciados dentro de la funci\u00f3n que no se detecten deben ser ignorados<\/strong>.<\/p>\n\n\n\n<p>Desafortunadamente, al contrario de lo que ocurre con las funciones <code>Table.RemoveColumns<\/code> o  <code>Table.RenameColumns<\/code>, <strong>este tercer par\u00e1metro opcional no puede ser usado dentro de la funci\u00f3n<\/strong>  <code>Table.TransformColumnTypes<\/code>, lo que hace que cuando trabajamos con or\u00edgenes de datos din\u00e1micos donde los campos pueden sufrir modificaciones, tengamos un poco m\u00e1s dif\u00edcil el hecho de proteger nuestras consultas de este tipo de errores. Por ello, en este art\u00edculo vamos a ver c\u00f3mo podemos <strong>imitar el comportamiento<\/strong> de <code>MissingField.Ignore<\/code> dentro de la funci\u00f3n  <code>Table.TransformColumnTypes<\/code>, con el objetivo de dotar de mayor robustez a nuestras consultas.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<h4 class=\"wp-block-heading\">El uso de List.Accumulate<\/h4>\n\n\n\n<p>Para imitar el comportamiento de <code>MissingField.Ignore<\/code>, podemos crear una <strong>funci\u00f3n personalizada en Power Query<\/strong> y usar la funci\u00f3n <code>List.Accumulate<\/code>, que nos permite acumular los valores de una lista mediante la funci\u00f3n especificada en el \u00faltimo par\u00e1metro. Vamos a partir de la siguiente tabla, donde las dos columnas son de tipo texto:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"629\" height=\"175\" src=\"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-8.png?resize=629%2C175&#038;ssl=1\" alt=\"\" class=\"wp-image-1617\" srcset=\"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-8.png?w=737&amp;ssl=1 737w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-8.png?resize=300%2C83&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>Vamos a utilizar <code>Table.TransformColumnTypes<\/code> para cambiar el tipo de dato de ambas columnas a n\u00famero entero y posteriormente, <strong>para simular la desaparici\u00f3n de la Columna2 en el origen de datos<\/strong>, insertaremos un paso entre Origen y Tipo cambiado para elimina dicha columna con <code>Table.RemoveColumns<\/code>. Como era de esperar, obtenemos un error en el \u00faltimo paso:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"629\" height=\"152\" src=\"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-11.png?resize=629%2C152&#038;ssl=1\" alt=\"\" class=\"wp-image-1618\" srcset=\"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-11.png?w=823&amp;ssl=1 823w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-11.png?resize=300%2C73&amp;ssl=1 300w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-11.png?resize=768%2C186&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> Con el objetivo de solventar esta situaci\u00f3n, vamos a crear una <strong>funci\u00f3n personalizada<\/strong>, que llamaremos <code>CambiarTipoIgnorarError<\/code>, con el siguiente c\u00f3digo:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">(tabla as table,<br>\n tiposCambiados as list) =&gt;<br>\nList.Accumulate(<br>\n    tiposCambiados,<br>\n    {},<br>\n    (x, y) =&gt; try Table.TransformColumnTypes(tabla, y)<br>\n              otherwise x<br>\n)<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p>Solo nos quedar\u00eda sustituir  <code>Table.TransformColumnTypes<\/code> por esta funci\u00f3n personalizada en el c\u00f3digo de nuestra consulta, y conseguiremos el resultado deseado, que Power Query <strong>ignore el error de no encontrar la Columna2<\/strong> y nos devuelva \u00fanicamente la columna1 con la transformaci\u00f3n del tipo a n\u00famero entero. El c\u00f3digo quedar\u00eda como sigue:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">let<br>     Origen = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText(\"i45WMlTSUTJSitUhmRULAA==\", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Columna1 = _t, Columna2 = _t]),<br>     #\"Columnas quitadas\" = Table.RemoveColumns(Origen,{\"Columna2\"}),<br>     #\"Tipo cambiado1\" = <strong>CambiarTipoIgnorarError<\/strong>(#\"Columnas quitadas\",{{\"Columna1\", Int64.Type}, {\"Columna2\", Int64.Type}})<br> in<br>     #\"Tipo cambiado1\"<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p>Y el resultado, con el paso donde utilizamos la <strong>funci\u00f3n personalizada en la barra de f\u00f3rmulas:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"629\" height=\"186\" src=\"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-12.png?resize=629%2C186&#038;ssl=1\" alt=\"\" class=\"wp-image-1619\" srcset=\"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-12.png?w=801&amp;ssl=1 801w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-12.png?resize=300%2C89&amp;ssl=1 300w, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-12.png?resize=768%2C227&amp;ssl=1 768w\" sizes=\"auto, (max-width: 629px) 100vw, 629px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>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 de errores corresponde al uso [&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,40,14,18,39],"post_series":[],"class_list":["post-1612","post","type-post","status-publish","format-standard","hentry","category-arquitectura-de-datos","category-m-power-query","tag-bi","tag-editor-de-consultas","tag-optimizacion","tag-power-bi","tag-power-query","tag-transformaciones"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"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 de errores corresponde al uso\" \/>\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\/09\/16\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\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=\"Imitar el comportamiento del argumento MissingField.Ignore en Table.TransformColumnTypes | Business Intelligence Controlling\" \/>\n\t\t<meta property=\"og:description\" content=\"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 de errores corresponde al uso\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/bicontrolling.com\/index.php\/2019\/09\/16\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-09-16T15:38:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-01T18:45:06+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Imitar el comportamiento del argumento MissingField.Ignore en Table.TransformColumnTypes | Business Intelligence Controlling\" \/>\n\t\t<meta name=\"twitter:description\" content=\"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 de errores corresponde al uso\" \/>\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\\\/09\\\/16\\\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\\\/#article\",\"name\":\"Imitar el comportamiento del argumento MissingField.Ignore en Table.TransformColumnTypes | Business Intelligence Controlling\",\"headline\":\"Imitar el comportamiento del argumento MissingField.Ignore en Table.TransformColumnTypes\",\"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-8.png?fit=737%2C205&ssl=1\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2019\\\/09\\\/16\\\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\\\/#articleImage\",\"width\":737,\"height\":205},\"datePublished\":\"2019-09-16T17:38:00+02:00\",\"dateModified\":\"2020-05-01T20:45:06+02:00\",\"inLanguage\":\"es-ES\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2019\\\/09\\\/16\\\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2019\\\/09\\\/16\\\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\\\/#webpage\"},\"articleSection\":\"Arquitectura de datos, M (Power Query), BI, Editor de consultas, Optimizaci\\u00f3n, Power BI, Power Query, Transformaciones\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2019\\\/09\\\/16\\\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\\\/#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\\\/09\\\/16\\\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\\\/#listItem\",\"name\":\"Imitar el comportamiento del argumento MissingField.Ignore en Table.TransformColumnTypes\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/#listItem\",\"name\":\"Inicio\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2019\\\/09\\\/16\\\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\\\/#listItem\",\"position\":3,\"name\":\"Imitar el comportamiento del argumento MissingField.Ignore en Table.TransformColumnTypes\",\"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\\\/09\\\/16\\\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\\\/#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\\\/09\\\/16\\\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\\\/#webpage\",\"url\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2019\\\/09\\\/16\\\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\\\/\",\"name\":\"Imitar el comportamiento del argumento MissingField.Ignore en Table.TransformColumnTypes | Business Intelligence Controlling\",\"description\":\"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 de errores corresponde al uso\",\"inLanguage\":\"es-ES\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bicontrolling.com\\\/index.php\\\/2019\\\/09\\\/16\\\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\\\/#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-09-16T17:38:00+02:00\",\"dateModified\":\"2020-05-01T20:45:06+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":"Imitar el comportamiento del argumento MissingField.Ignore en Table.TransformColumnTypes | Business Intelligence Controlling","description":"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 de errores corresponde al uso","canonical_url":"https:\/\/bicontrolling.com\/index.php\/2019\/09\/16\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/bicontrolling.com\/index.php\/2019\/09\/16\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\/#article","name":"Imitar el comportamiento del argumento MissingField.Ignore en Table.TransformColumnTypes | Business Intelligence Controlling","headline":"Imitar el comportamiento del argumento MissingField.Ignore en Table.TransformColumnTypes","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-8.png?fit=737%2C205&ssl=1","@id":"https:\/\/bicontrolling.com\/index.php\/2019\/09\/16\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\/#articleImage","width":737,"height":205},"datePublished":"2019-09-16T17:38:00+02:00","dateModified":"2020-05-01T20:45:06+02:00","inLanguage":"es-ES","mainEntityOfPage":{"@id":"https:\/\/bicontrolling.com\/index.php\/2019\/09\/16\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\/#webpage"},"isPartOf":{"@id":"https:\/\/bicontrolling.com\/index.php\/2019\/09\/16\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\/#webpage"},"articleSection":"Arquitectura de datos, M (Power Query), BI, Editor de consultas, Optimizaci\u00f3n, Power BI, Power Query, Transformaciones"},{"@type":"BreadcrumbList","@id":"https:\/\/bicontrolling.com\/index.php\/2019\/09\/16\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\/#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\/09\/16\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\/#listItem","name":"Imitar el comportamiento del argumento MissingField.Ignore en Table.TransformColumnTypes"},"previousItem":{"@type":"ListItem","@id":"https:\/\/bicontrolling.com\/#listItem","name":"Inicio"}},{"@type":"ListItem","@id":"https:\/\/bicontrolling.com\/index.php\/2019\/09\/16\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\/#listItem","position":3,"name":"Imitar el comportamiento del argumento MissingField.Ignore en Table.TransformColumnTypes","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\/09\/16\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\/#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\/09\/16\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\/#webpage","url":"https:\/\/bicontrolling.com\/index.php\/2019\/09\/16\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\/","name":"Imitar el comportamiento del argumento MissingField.Ignore en Table.TransformColumnTypes | Business Intelligence Controlling","description":"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 de errores corresponde al uso","inLanguage":"es-ES","isPartOf":{"@id":"https:\/\/bicontrolling.com\/#website"},"breadcrumb":{"@id":"https:\/\/bicontrolling.com\/index.php\/2019\/09\/16\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\/#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-09-16T17:38:00+02:00","dateModified":"2020-05-01T20:45:06+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":"Imitar el comportamiento del argumento MissingField.Ignore en Table.TransformColumnTypes | Business Intelligence Controlling","og:description":"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 de errores corresponde al uso","og:url":"https:\/\/bicontrolling.com\/index.php\/2019\/09\/16\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\/","article:published_time":"2019-09-16T15:38:00+00:00","article:modified_time":"2020-05-01T18:45:06+00:00","twitter:card":"summary","twitter:title":"Imitar el comportamiento del argumento MissingField.Ignore en Table.TransformColumnTypes | Business Intelligence Controlling","twitter:description":"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 de errores corresponde al uso"},"aioseo_meta_data":{"post_id":"1612","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":[],"defaultGraph":"","defaultPostTypeGraph":""},"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\">\u00bb<\/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\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tImitar el comportamiento del argumento MissingField.Ignore en Table.TransformColumnTypes\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":"Imitar el comportamiento del argumento MissingField.Ignore en Table.TransformColumnTypes","link":"https:\/\/bicontrolling.com\/index.php\/2019\/09\/16\/imitar-el-comportamiento-del-argumento-missingfield-ignore-en-table-transformcolumntypes\/"}],"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":1612,"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":1568,"url":"https:\/\/bicontrolling.com\/index.php\/2020\/04\/19\/mostrar-la-ultima-fecha-de-actualizacion-en-power-bi\/","url_meta":{"origin":1612,"position":1},"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":1509,"url":"https:\/\/bicontrolling.com\/index.php\/2020\/01\/28\/dinamizar-mas-de-un-valor-en-power-query\/","url_meta":{"origin":1612,"position":2},"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":1582,"url":"https:\/\/bicontrolling.com\/index.php\/2019\/08\/29\/eliminar-y-transformar-columnas-de-forma-segura-en-power-query\/","url_meta":{"origin":1612,"position":3},"title":"Eliminar y transformar columnas de forma segura en Power Query","author":"Admin","date":"29 agosto, 2019","format":false,"excerpt":"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\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-7.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-7.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2020\/04\/Imagen-7.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":1828,"url":"https:\/\/bicontrolling.com\/index.php\/2021\/03\/06\/gppb2021-madrid-integracion-de-previsiones-y-presupuestos-en-el-modelo-tabular-video\/","url_meta":{"origin":1612,"position":4},"title":"GPPB2021 Madrid &#8211; Integraci\u00f3n de previsiones y presupuestos en el modelo tabular (video)","author":"Admin","date":"6 marzo, 2021","format":false,"excerpt":"Ya est\u00e1n disponibles las grabaciones del Global Power Platform Bootcamp de Madrid. Os comparto el video de mi sesi\u00f3n donde estuvimos analizando las diferentes opciones que tenemos para integrar previsiones y presupuestos en un modelo de datos de Power BI. Vimos c\u00f3mo crear relaciones virtuales con DAX, c\u00f3mo inspeccionar el\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\/img.youtube.com\/vi\/_wGEZZGP_nI\/0.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":464,"url":"https:\/\/bicontrolling.com\/index.php\/2017\/12\/10\/tablas-de-medidas-en-power-bi-desktop\/","url_meta":{"origin":1612,"position":5},"title":"Grupos de medidas en Power BI Desktop","author":"Admin","date":"10 diciembre, 2017","format":false,"excerpt":"En numerosas ocasiones, cuando estamos trabajando con modelos de datos complejos, con muchas tablas y relaciones, y que requieren un n\u00famero considerable de medidas, es importante tener en cuenta el lugar de almacenamiento de las mismas. Por ejemplo, es probable que tras cargar al modelo de datos todas las consultas\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\/04\/image-9-1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/04\/image-9-1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/04\/image-9-1.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/04\/image-9-1.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/bicontrolling.com\/wp-content\/uploads\/2018\/04\/image-9-1.png?resize=1050%2C600&ssl=1 3x"},"classes":[]}],"jetpack_likes_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/posts\/1612","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=1612"}],"version-history":[{"count":7,"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/posts\/1612\/revisions"}],"predecessor-version":[{"id":1628,"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/posts\/1612\/revisions\/1628"}],"wp:attachment":[{"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/media?parent=1612"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/categories?post=1612"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/tags?post=1612"},{"taxonomy":"post_series","embeddable":true,"href":"https:\/\/bicontrolling.com\/index.php\/wp-json\/wp\/v2\/post_series?post=1612"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}