En el primer post vimos cómo obtener datos de Odoo de forma sencilla para llevarlos a Power BI. Pero en la práctica, cuando conectas por primera vez… pasa esto:
- “Vale, ya tengo datos… pero no me cuadran.”
- “¿Por qué esto viene como una lista dentro de una celda?”
- “¿Por qué hay tantos campos que no sirven para nada?”
- “¿Por qué no puedo relacionar bien clientes, usuarios o productos?”
Normal: Odoo es un ERP operativo, no un sistema pensado para analítica. Su estructura está optimizada para ejecutar procesos (ventas, compras, facturación, logística…), y eso significa que los datos vienen con “paja” técnica y con estructuras típicas de aplicaciones (listas, objetos, campos anidados, estados internos…).
La buena noticia: si lo haces bien, Power BI + Power Query convierte ese JSON en tablas limpias y listas para modelar.
En este post te enseño qué transformaciones son las más comunes y te dejo dos ejemplos reales que aparecen continuamente cuando extraes datos desde Odoo.
El problema real: Odoo no es tu modelo de negocio
Tu negocio suele pensar en conceptos como:
- Ventas por comercial.
- Margen por familia de producto.
- Evolución mensual de facturación.
- Clientes activos VS inactivos.
- Tiempo medio de resolución de tickets.
Pero Odoo te devuelve (aunque uses una API de negocio y no la API “cruda”) cosas como:
- Campos técnicos utilizados internamente por Odoo.
- Identificadores internos.
- Relaciones entre entidades representadas como listas.
- estados operativos.
- Estructuras anidadas (JSON con objetos y arrays de datos).
Eso no está mal. Solo significa una cosa: antes de modelar y analizar, hay que transformar.
Qué significa “transformar” en Power BI
Transformar es aplicar tratamiento a los datos siguiendo estas tres reglas básicas:
- Una fila = un elemento.
- Una factura, una línea de factura, un cliente, un pedido…
- Columnas entendibles y consistentes.
- Nombres claros (Cliente, Comercial, Estado, Importe…).
- Tipos correctos (fecha como tipo fecha, importe como número…).
- Relaciones preparadas.
- Identificadores limpios y claros para relacionar tablas.
- Nombres/labels para mostrar en informes.
En Power BI, todo esto se lleva a cabo principalmente con Power Query, el “taller” donde limpiar y preparar los datos.

Checklist rápida: transformaciones típicas al rescatar datos de Odoo
Estas son las que más verás:
- Eliminar “paja”.
- Campos técnicos que no usarás nunca en tu modelo de negocio.
- Columnas duplicadas o irrelevantes.
- Metadatos que solo añaden ruido.
- Normalizar tipos.
- Fechas a formato Date o DateTime, según necesidad.
- Importes y valores numéricos a formato decimal o entero.
- Nulos y vacíos coherentes
- Aplanar formatos y entradas JSON.
- Expandir objetos a columnas.
- Expandir listas a filas (cuando toca).
- Preparar claves y nombres.
- Separar Identificadores y nombres.
- Renombrar columnas para darles sentido de negocio.
- Mapear estados internos a estados entendibles.
Bienvenidos al mundo real: ejemplos prácticos
Ejemplo 1: separar una lista [id, name] en 2 columnas (clásico de Odoo)
Este caso es el más típico cuando trabajas con usuarios, clientes, comerciales, productos… En Odoo, muchas relaciones vienen como una lista con dos elementos: identificador interno + Nombre visible.
Un ejemplo: user_id: [3, «Laura Rosón»]
¿Qué problema genera en Power BI?
En Power BI esa columna no es “un valor”, es una lista. Así que:
- No puedes relacionar bien con una tabla de usuarios.
- Filtrar por usuario se vuelve muy engorroso.
¿Transformación a aplicar? Crear dos columnas nuevas:
- user_id_id → 3 (para relaciones y claves).
- user_id_name → “Dani García” (para mostrar la información).
Cómo se hace en Power Query (idea simple):
- Extraes la columna user_id dividiendo el contenido a partir de un delimitador, por ejemplo, el punto y coma (;).
- Divides la columna por ese delimitador.
- Extraes el elemento 0 para el ID.
- Extraes el elemento 1 para el Nombre.
- Renombras ambas columnas y listo.
(No hace falta memorizarlo: el punto es entender el patrón. Lo vas a repetir mil veces.)
Resultado: ya tienes una columna para relacionar y otra para visualizar.
Ejemplo 2: convertir códigos/estados “técnicos” en etiquetas de negocio (y ordenar bien)
En Odoo muchos campos vienen como códigos internos. Por ejemplo, en facturas o pedidos puedes tener un campo state con valores tipo:
- draft
- posted
- cancel
Eso está perfecto para el ERP, pero en Power BI, porque:
- Queda feo en informes.
- El cliente no lo entiende.
- Y a veces el orden no es el que esperas.
¿El objetivo? Crear una columna más “humana”, por ejemplo:
- Estado de negocio: Borrador, Validada, Cancelada
Y esto, ¿cómo se hace en Power BI?. Pues muy fácil…
- Duplicas la columna state (Así conservas el original por si lo necesitas).
- En la columna duplicada: Reemplazar valores.
- draft → Borrador
- posted → Validada
- cancel → Cancelada
- Renombras la columna state (duplicada) → Estado negocio.
Resultado: en el informe se lee bien, los filtros quedan claros y puedes controlar el orden.
SIGUIENTE ESTACIÓN: Modelado de datos…
CONOCIMIENTO / Descargables
EBook gratuito
eficiencia OEE
Descubre las particularidades del indicador OEE, cómo automatizar su cálculo y que requisitos deben cumplir tus procesos de producción para implementarlo.