estadistica.ar · Enciclopedia de Estadística en españolhttps://estadistica.ar/conceptos/estadistica-en-power-bi
Estadística en Power BI: dónde está cada cosa y qué hace por defecto
Tasas, promedios, uniones y redondeos en Power BI, con sus dos lenguajes, DAX y Power Query, y los valores por defecto que cambian el resultado sin avisar.
Por Jorge Luis Montivero, Licenciado en Estadística · Mu3Sigma
1 · Dos lenguajes en un mismo programa
Power BI es una herramienta para armar tableros: se cargan datos, se los relaciona y se los muestra en gráficos que se filtran entre sí. No es un programa de estadística (no hace pruebas ni ajusta modelos), pero todo tablero calcula promedios, tasas y porcentajes, y ahí aparecen las mismas trampas que en cualquier otro programa.
Lo que lo distingue es que tiene dos lenguajes:
- Power Query (M) carga y transforma los datos antes de que lleguen al modelo: cambiar tipos, filtrar filas, combinar tablas. Es el mismo motor que trae Excel en Datos › Obtener datos.
- DAX calcula dentro del modelo: las medidas, las columnas calculadas y todo lo que muestra un visual.
Los números de esta página salen de correr Power BI Desktop 2.158 de verdad: las
consultas DAX contra su motor y las expresiones M con el Power Query de Excel.
Los datos son la mortalidad infantil 2024 por provincia, con las defunciones
reconstruidas como tasa × nacidos vivos, y el extracto de la EPH de Gran
Catamarca que usan las entradas de R y Python
y QGIS. El script es
datos/computo/preparar-power-bi.py. Las capturas son de Power BI Desktop
abriendo un proyecto armado con esos mismos datos (datos/computo/armar-pbip.py).
2 · Dónde está cada cosa
| Tarea | Dónde |
|---|---|
| Cargar y limpiar datos, cambiar tipos | Inicio › Transformar datos (abre Power Query) |
| Unir dos tablas en una sola | Power Query › Combinar consultas |
| Relacionar tablas sin unirlas | Vista de modelo, arrastrando un campo sobre otro |
| Cómo se resume una columna numérica | Herramientas de columnas › Resumen |
| Una tasa, un promedio ponderado | Nueva medida, con DAX |
| Desvío | STDEV.S (muestral) o STDEV.P (poblacional) |
| Mediana y percentiles | MEDIAN, PERCENTILE.INC, PERCENTILE.EXC |
| Dividir sin error por cero | DIVIDE(numerador, denominador) |
La regla que ordena casi todo lo demás: las cuentas van en medidas, no en columnas que el visual resume solo.
3 · Los valores por defecto que cambian el resultado
La configuración regional: 4.9 se lee como 49
Antes que cualquier cuenta, hay que mirar cómo entraron los números. Un CSV exportado por un sistema en inglés escribe los decimales con punto: «4.9». Si el archivo de Power BI tiene la configuración regional de Argentina, el paso «Tipo cambiado» convierte ese texto a número con las reglas argentinas, donde el punto separa los miles. El resultado es 49.
| Texto en el CSV | Configuración regional | Número |
|---|---|---|
| 4.9 | Argentina (es-AR) | 49 |
| 4,9 | Argentina (es-AR) | 4,9 |
| 4.9 | Estados Unidos (en-US) | 4,9 |
Con la tabla de mortalidad infantil cargada así, cada tasa queda multiplicada por diez, sin error ni aviso:

El arreglo es decirle al paso con qué cultura leer: en el editor, cambiar el tipo de la columna usando la configuración regional del origen («Inglés (Estados Unidos)»), que agrega la cultura al final del paso:
Table.TransformColumnTypes ( Origen, {{"tasa", type number}}, "en-US" )
La suma implícita y el promedio de tasas
Cuando una columna numérica se arrastra a un visual, Power BI la suma sin preguntar (la Σ al lado del nombre del campo). Con conteos está bien; con tasas no tiene sentido. Las tasas de mortalidad infantil de las 24 jurisdicciones suman 202,8 por mil, un número que no significa nada.
Cambiar el resumen a «Promedio» tampoco alcanza: da el promedio de las tasas, que trata igual a la Ciudad de Buenos Aires que a Tierra del Fuego. La tasa de un conjunto de provincias es el total de defunciones sobre el total de nacimientos, no el promedio de sus tasas:
| Región | Promedio de las tasas | Tasa de la región |
|---|---|---|
| NOA | 9,45 | 9,75 |
| NEA | 11,50 | 11,44 |
| Pampeana | 7,76 | 8,13 |
| Cuyo | 7,70 | 7,88 |
| Patagonia | 6,66 | 6,97 |
| País | 8,45 | 8,50 |

En la región Pampeana la diferencia es grande porque Buenos Aires, con 147.081 nacimientos, pesa tanto como La Pampa en el promedio simple. Es el problema de la media ponderada. La forma correcta es una medida:
TMI =
DIVIDE ( SUM ( Datos[defunciones] ), SUM ( Datos[nacimientos] ) ) * 1000
Esa medida, además, da bien la fila de total de una tabla: en el total se recalcula con todos los datos (8,50), en vez de sumar las filas.
El cero que se pierde y la combinación que no une
Los códigos del INDEC tienen un cero adelante: Buenos Aires es la provincia 06. Al cargar un CSV, Power Query detecta el tipo de cada columna y agrega un paso «Tipo cambiado». Si la columna del código parece numérica, la pasa a número entero, y el «06» queda en 6. Desde ahí, el código ya no se puede cruzar con el de una tabla que lo tenga como texto.

Lo que pasa después depende de dónde se cruce:
| Dónde se cruzan «06» (texto) y 6 (número) | Resultado |
|---|---|
| Power Query › Combinar consultas | 0 filas: no une |
| Power Query, con el código pasado a texto de dos dígitos | 1 fila |
| Vista de modelo, relación entre las dos columnas | Encuentra la fila: el modelo convierte |
Una comparación en DAX ("06" = 6) | Error: DAX no compara texto con número |
Lo seguro es no depender de la conversión: el código va como texto desde Power Query. Si ya quedó como número, se recompone así:
Text.PadStart ( Text.From ( [jurisdiccion_id] ), 2, "0" )
Dos lenguajes, dos redondeos
DAX redondea los cinco hacia arriba (alejándose del cero), como Excel. Power Query redondea al par, como R y Python:
DAX, ROUND | Power Query, Number.Round | |
|---|---|---|
| 0,5 | 1 | 0 |
| 2,5 | 3 | 2 |
| 8,45 a un decimal | 8,5 | 8,4 |
Una columna redondeada en Power Query y una medida redondeada en DAX pueden
diferir en el último dígito sin que haya ningún error. Para que Power Query
redondee como DAX se le pasa el modo:
Number.Round(x, 0, RoundingMode.AwayFromZero). Ver
redondeo.
Los vacíos: BLANK no es NA
En DAX, el valor vacío se llama BLANK() y se comporta como un cero en las
cuentas: BLANK() + 1 da 1. En Power Query, en R y en Python, un vacío
contagia: null + 1 da null. Y en DAX, BLANK() = 0 es verdadero; para
distinguirlos hace falta el operador estricto ==.
En las agregaciones, en cambio, DAX ignora los vacíos. Con el ingreso de los ocupados de Gran Catamarca, donde el −9 marca a quien no respondió:
| Media | Casos | |
|---|---|---|
| Con el −9 como número | $830.274 | 631 |
| Con el −9 pasado a vacío | $871.719 | 601 |
AVERAGE divide por los 601 que tienen dato, y COUNT los cuenta; COUNTROWS
cuenta las 631 filas. El −9 hay que convertirlo en Power Query, antes de que
llegue al modelo. Ver datos faltantes.
Y una más: 1 / 0 en DAX no da error, da infinito, y se puede colar en un
promedio. DIVIDE(1, 0) devuelve vacío. Para tasas y porcentajes, siempre
DIVIDE.
El desvío y los percentiles
DAX tiene las dos versiones del desvío y hay que elegir: sobre las mismas 12
edades de las otras entradas, STDEV.S da 14,62 (divide por , como R)
y STDEV.P da 14,00 (divide por ). En Power Query,
List.StandardDeviation es el muestral.
Con los percentiles pasa lo mismo: PERCENTILE.INC da para el primer cuartil
30,75, igual que R y Excel, y PERCENTILE.EXC da 30,25, igual que SPSS.
List.Percentile de Power Query da 30,75. Ver cuantiles.
4 · Hasta dónde llega
Power BI describe y muestra. No tiene pruebas de hipótesis ni modelos; el panel de Análisis de algunos visuales agrega líneas de promedio, mediana o percentil, pero nada que diga si una diferencia es más que azar. Los visuales de R y de Python corren un script sobre los datos del visual, pero necesitan R o Python instalados en la computadora.
El flujo que mejor funciona es el de siempre: calcular y verificar en R, Python o una planilla, y usar Power BI para mostrar. Lo que sí conviene hacer en Power BI son las medidas: una tasa definida una sola vez como medida se recalcula bien en cualquier filtro, en cualquier visual y en los totales.
5 · Errores frecuentes
- Importar un CSV con punto decimal en un archivo con configuración argentina. 4.9 se convierte en 49, sin aviso.
- Arrastrar una tasa y dejar que se sume. 24 tasas por mil suman 202,8, un número sin sentido.
- Promediar tasas de provincias. La tasa de una región es total sobre total: en la Pampeana, 8,13 y no 7,76.
- Dejar que Power Query decida el tipo de un código. El «06» pasa a 6, y la combinación con otra tabla deja de unir.
- Mezclar redondeos de Power Query y de DAX. Uno redondea al par y el otro hacia arriba.
- Tratar BLANK como NA. En DAX,
BLANK() + 1es 1. - Dividir con la barra.
1 / 0es infinito;DIVIDEdevuelve vacío. - Usar
STDEV.Pcon una muestra. Para una encuesta,STDEV.S. - Confiar en la fila de total sin mirar cómo se calcula. Con una medida bien escrita es la tasa del total; con una columna sumada es la suma de las filas.
Seguir leyendo
Bioestadística · Cómputo y comunicación · 287 de 322
Estadística para Economía y Administración · Cómputo y comunicación · 284 de 303
Probabilidad y Estadística · Cómputo y comunicación · 275 de 290
Estadística para Ciencias Sociales · Cómputo y comunicación · 246 de 277
Cómo citar: Montivero, J. L. (2026). Estadística en Power BI: dónde está cada cosa y qué hace por defecto. estadistica.ar. https://estadistica.ar/conceptos/estadistica-en-power-bi
estadistica.ar es gratuita y sin publicidad. Si te sirvió, podés invitar un cafecito por transferencia al alias mu3sigma. Asesoramiento estadístico, encuestas y capacitaciones: m3s.pro · WhatsApp +54 9 383 499-7929.
Cómo citar esta entrada
APA (7.ª edición)
Montivero, J. L. (2026). Estadística en Power BI: dónde está cada cosa y qué hace por defecto. estadistica.ar. https://estadistica.ar/conceptos/estadistica-en-power-bi
BibTeX
@misc{estadistica_ar_estadistica_en_power_bi,
author = {Montivero, Jorge Luis},
title = {{Estadística en Power BI: dónde está cada cosa y qué hace por defecto}},
year = {2026},
howpublished = {\url{https://estadistica.ar/conceptos/estadistica-en-power-bi}},
note = {estadistica.ar. Consultado el \today},
urldate = {2026-10-01}
}Última actualización: 1 de octubre de 2026. El contenido está bajo licencia CC BY-NC-SA 4.0: se puede reutilizar citando la fuente y sin fines comerciales.