Tutorial: Crear columnas calculadas en Power BI DesktopTutorial: Create calculated columns in Power BI Desktop

A veces los datos que se está analizando simplemente no contienen un determinado campo necesario para obtener los resultados buscados.Sometimes the data you’re analyzing just doesn’t contain a particular field you need to get the results you’re after. Aquí es donde entran en escena las columnas calculadas.This is where calculated columns come in. Las columnas calculadas utilizar fórmulas de expresiones de análisis de datos (DAX) para definir los valores de una columna.Calculated columns use Data Analysis Expressions (DAX) formulas to define a column’s values. Estos valores pueden ser prácticamente cualquier cosa, ya sea que reúnan los valores de texto de un par de columnas diferentes situadas en otra parte del modelo o que calculen un valor numérico a partir de otros valores.Those values can be just about anything, whether it be putting together text values from a couple of different columns elsewhere in the model, or calculating a numeric value from other values. Por ejemplo, supongamos que sus datos tienen columnas de ciudad y estado (como campos en la lista de campos), pero desea un único campo de ubicación que presente ambos valores como uno solo, como Miami, Florida.For example, let’s say your data has a City and State columns (as fields in the Fields list), but you want a single Location field that has both as a single value, like Miami, FL. Para esto es precisamente que sirven las columnas calculadas.This is precisely what calculated columns are for.

Las columnas calculadas son similares a las medidas en que ambas se basan en una fórmula DAX, pero difieren en cómo se usan.Calculated columns are similar to measures in that both are based on a DAX formula, but they differ in how they are used. Las medidas se suelen usar en el área de valores de una visualización para calcular los resultados en función de otros campos que se tienen en la fila de una tabla, o en el área de eje, leyenda o grupo de una visualización.Measures are most often used in the Values area of a visualization, to calculate results based on other fields you have on a row in a table, or in an Axis, Legend, or Group area of a visualization. Por otro lado, las columnas calculadas se usan cuando se desea tener los resultados de la columna en esa fila en la tabla o en el área de eje, leyenda o grupo.Calculated columns on the other hand are used when you want the column’s results on that row in the table, or in the Axis, Legend, or Group area.

Este tutorial le ayudará a entender y crear sus propias columnas calculadas en Power BI Desktop.This tutorial will guide you through understanding and creating some of your own calculated columns in Power BI Desktop. Está destinado a usuarios de Power BI que ya están familiarizados con el uso de Power BI Desktop para crear modelos más avanzados.It’s intended for Power BI users already familiar with using Power BI Desktop to create more advanced models. Debe estar familiarizado con el uso de la consulta para importar datos, trabajar con varias tablas relacionadas y agregar campos al lienzo del informe.You should already be familiar with using Query to import data, working with multiple related tables, and adding fields to the Report Canvas. Si no está familiarizado con Power BI Desktop, asegúrese de revisar Introducción a Power BI Desktop.If you’re new to Power BI Desktop, be sure to check out Getting Started with Power BI Desktop.

Para completar los pasos de este tutorial, necesitará descargar el archivo de ventas de muestra de Contoso para Power BI Desktop.To complete the steps in this tutorial, you’ll need to download the Contoso Sales Sample for Power BI Desktop file. Este es el mismo archivo de ejemplo usado en el tutorial: Creación de sus propias medidas en Power BI Desktop.This is the same sample file used for the Create your own measures in Power BI Desktop tutorial. Ya incluye datos de ventas de la compañía ficticia Contoso, Inc. Dado que los datos en el archivo se importaron desde una base de datos, no podrá conectarse al origen de datos ni verlos en el Editor de consultas.It already includes sales data from the fictitious company, Contoso, Inc. Because data in the file was imported from a database, you won’t be able to connect to the datasource or view it in Query Editor. Cuando tenga el archivo en su equipo, abra Power BI Desktop.When you have the file on your own computer, go ahead and open it in Power BI Desktop.

Vamos a crear una columna calculadaLet’s create a calculated column

Supongamos que queremos mostrar categorías de producto junto con subcategorías de producto en un solo valor en filas, por ejemplo: Teléfonos móviles – Accesorios, teléfonos móviles – Smartphones y PDA, y así sucesivamente.Let’s say we want to display product categories together with product subcategories in a single value on rows, like Cell phones – Accessories, Cell phones – Smart phones & PDAs, and so on. En la vista de informes o en la vista de datos (aquí estamos usando la vista de informes), si miramos nuestras tablas de productos en la lista de campos, vemos que no hay ningún campo que proporcione lo que deseamos.In Report View or Data View (we're using Report View here), If we look at our product tables in the Fields list, we see there’s no field that gives is what we want. Sin embargo, sí tenemos un campo ProductCategory y un campo ProductSubcategory, cada uno de ellos en sus propias tablas.We do, however, have a ProductCategory field and a ProductSubcategory field, each in their own tables.

Vamos a crear una nueva columna calculada para combinar los valores de estas dos columnas en nuevos valores para la nueva columna.We’ll create a new calculated column to combine values from these two column into new values for our new column. Curiosamente, tenemos que combinar datos de dos tablas diferentes en una sola columna.Interestingly enough, we need to combine data from two different tables into a single column. Dado que vamos a usar DAX para crear la nueva columna, podemos aprovechar toda la funcionalidad del modelo que ya tenemos, incluidas las relaciones entre las diferentes tablas que ya existen.Because we’re going to use DAX to create our new column, we can leverage the full power of the model we already have, including the relationships between different tables that already exist.

Para crear una columna ProductFullCategoryTo create a ProductFullCategory column

  1. En la lista de campos, haga clic con el botón derecho en la tabla ProductSubcategory, o en la flecha abajo de la tabla, y a continuación haga clic en Nueva columna.Right click, or click the down arrow on the ProductSubcategory table in the Fields list, and then click New Column. De esta manera, se garantiza que la nueva columna se agregue a la tabla ProductSubcategory.This will make sure our new column is added to the ProductSubcategory table.

    La barra de fórmulas aparece en la parte superior del lienzo del informe o en la cuadrícula de datos.The formula bar appears along the top of the Report canvas or Data grid. Aquí es donde podemos cambiar el nombre de la columna y escribir una fórmula DAX.This is where we can rename our column and enter a DAX formula.

    De forma predeterminada, a una nueva columna calculada se le denomina simplemente Columna.By default a new calculated column is simply named Column. Si no se cambia el nombre, cuando se crea otra, se denominará Columna 2, Columna 3 y así sucesivamente.If we don’t rename it, when we create another, it will be named Column 2, Column 3, and so on. Queremos poder identificar fácilmente las columnas, por lo que asignaremos otro nombre a la nueva columna.We want our columns to be more identifiable, so we’ll give our new column a new name.

  2. Dado que el nombre de la columna ya está resaltado en la barra de fórmulas, simplemente escriba ProductFullCategory.Since the Column name is already highlighted in the formula bar, just type ProductFullCategory.

    Ahora podemos comenzar por introducir la fórmula.Now we can begin entering our formula. Queremos que los valores de la nueva columna empiecen con el nombre ProductCategory de la tabla ProductCategory.We want the values in our new column to start with the ProductCategory name from the ProductCategory table. Dado que esta columna está en una tabla diferente pero relacionada, vamos a usar la función RELATED para conseguir nuestro objetivo.Because this column is in a different, but related table, we’re going to use the RELATED function to help us get it.

  3. Después del signo igual escriba R. Aparecerá una lista desplegable de sugerencias con todas las funciones DAX que comienzan con la letra R. Cuantas más letras se añaden, más se escala la lista de sugerencias acercándose a la función que necesitamos.After the equals sign, type R. You’ll see a dropdown suggestion list appear with all of the DAX functions beginning with the letter R. The more we type, the more the suggestion list is scaled closer to the function we need. A un lado de cada función verá su descripción.Next to the function you’ll see a description of the function. Desplace hacia abajo y seleccione RELATED y, a continuación, presione Entrar.Select RELATED by scrolling down, and then pressing Enter.

    Aparece un paréntesis de apertura junto con otra lista de sugerencias de todas las columnas disponibles para pasar a la función RELATED.An opening parenthesis appears along with another suggestion list of all of the available columns we can pass to the RELATED function. También se muestra una descripción y detalles sobre los parámetros que se esperan.A description and details on what parameters are expected is also shown.

    Una expresión siempre aparece entre paréntesis de apertura y cierre.An expression always appears between an opening and closing parenthesis. En este caso, la expresión va a contener un único argumento pasado a la función RELATED; una columna relacionada de la cual se devuelven valores.In this case, our expression is going to contain a single argument passed to the RELATED function; a related column to return values from. La lista de columnas se reduce automáticamente para mostrar únicamente las columnas relacionadas.The list of columns is automatically narrowed down to show only the columns that are related. En este caso, queremos la columna ProductCategory de la tabla ProductCategory.In this case, we want the ProductCategory column in the ProductCategory table.

    Seleccione ProductCategory[ProductCategory]y, a continuación, escriba un paréntesis de cierre.Select ProductCategory[ProductCategory], and then type a closing parenthesis.

    Sugerencia

    Los errores de sintaxis suelen deberse a paréntesis de cierre faltantes o en el lugar incorrecto.Syntax errors are most often caused by a missing or misplaced closing parenthesis. Sin embargo, a menudo Power BI Desktop lo agregará si lo olvida.But often Power BI Desktop will add it if you forget.

  4. Queremos agregar un símbolo de guion para separar cada valor, así que después del paréntesis de cierre de la primera expresión, escriba un espacio, Y comercial (&), comillas, espacio, guion (-), otro espacio, comillas de cierre y, después, otro símbolo de Y comercial.We want to add a dash symbol to separate each value, so after the closing parenthesis of the first expression, type a space, ampersand (&), quote, space, dash (-), another space, a closing quote, and then another ampersand. La fórmula debe tener el siguiente aspecto:Your formula should now look like this:

    ProductFullCategory = RELATED(ProductCategory[ProductCategory]) & " - " &ProductFullCategory = RELATED(ProductCategory[ProductCategory]) & " - " &

    Sugerencia

    Haga clic en el botón de contenido adicional hacia abajo situado en el lado derecho de la barra de fórmulas para expandir el editor de fórmulas.Click the down chevron on the right side of the formula bar to expand the formula editor. Haga clic en Alt y Entrar para bajar una línea y el tabulador para subir los elementos.Click Alt & Enter to move down a line, and Tab to move things over.

  5. Por último, escriba otro corchete de apertura y, a continuación, seleccione la columna [ProductSubcategory] para terminar la fórmula.Finally, enter another opening bracket and then select the [ProductSubcategory] column to finish the formula. La fórmula se debe ver así:Your formula should look like this:

    Observará que no usamos otra función RELATED en la segunda expresión para llamar a la columna ProductSubcategory.You’ll notice we didn’t use another RELATED function in the second expression calling the ProductSubcategory column. Esto es porque esta columna ya está en la tabla donde estamos creando la nueva columna.This is because this column is already in the same table we’re creating our new column in. Podemos escribir [ProductCategory] con el nombre de tabla (completo) o sin él (incompleto).We can enter [ProductCategory] with the table name (fully qualified) or without (non-qualified).

  6. Complete la fórmula. Para ello, presione ENTRAR o haga clic en la marca de verificación en la barra de fórmulas.Complete the formula by pressing Enter or clicking on the checkmark in the formula bar. La fórmula se valida y se agrega a la lista de campos en la tabla ProductSubcategory.The formula is validated and added to the field list in the ProductSubcategory table.

    Advertirá que las columnas calculadas tienen un icono especial en la lista de campos.You’ll notice calculated columns get a special icon in the field list. Esto muestra que contienen una fórmula.This shows they contain a formula. Solo aparecerán de esta manera en Power BI Desktop.They’ll only appear like this in Power BI Desktop. En el servicio de PowerBI (sitio de Power BI), no hay forma de cambiar una fórmula, por lo que el campo de la columna calculada no mostrará un icono.In the PowerBI service (your Power BI site), there’s no way to change a formula, so a calculated column field doesn’t have an icon.

Agreguemos la nueva columna a un informeLet’s add our new column to a report

Ahora podemos agregar la nueva columna ProductFullCategory al lienzo del informe.Now we can add our new ProductFullCategory column to the report canvas. Echemos un vistazo a SalesAmount por ProductFullCategory.Let’s look at SalesAmount by ProductFullCategory.

Arrastre la columna ProductFullCategory desde la tabla ProductSubcategory hasta el lienzo del informe y, a continuación, arrastre el campo SalesAmount desde la tabla Sales al gráfico.Drag the ProductFullCategory column from the ProductSubcategory table onto the Report canvas, and then drag the SalesAmount field from the Sales table into the chart.

Vamos a crear otraLet’s create another

Ahora que sabe cómo crear columnas calculadas, vamos a crear otra.Now that you know how to create a calculated column, let’s create another.

El ejemplo de las ventas de Contoso para Power BI Desktop contiene datos de ventas de tiendas activas e inactivas.The Contoso Sales Sample for Power BI Desktop model contains sales data for both active and inactive stores. Deseamos que los datos que se muestran para las tiendas inactivas se identifiquen muy claramente como tales.We want to make it really clear that data shown for inactive stores is identified as such. En efecto, queremos un campo denominado Active StoreName.In-effect, we want a field named Active StoreName. Para ello, vamos a crear otra columna.To do this, we’ll create another column. En este caso, cuando una tienda esté inactiva, queremos que la nueva columna StoreName Active (como un campo) muestre el nombre del almacén como "Inactivo", pero que muestre el nombre real de la tienda cuando esta se encuentre activa.In this case, when a store is inactive, we want our new Active StoreName column (as a field) to show the store’s name as “Inactive”, but show the store’s real name when it’s an active store.

Afortunadamente, nuestra tabla Stores tiene una columna denominada Status, que muestra el estado con el valor On para las tiendas activas y Off para las inactivas.Fortunately, our Stores table has a column named Status, with a value of On for active stores, and Off for inactive stores. Podemos probar valores para cada fila de la columna Status para crear nuevos valores en la nueva columna.We can test values for each row in the Status column to create new values in our new column.

Para crear una columna Active StoreNameTo create an Active StoreName column

  1. Cree una nueva columna calculada denominada Active StoreName en la tabla Stores.Create a new calculated column named Active StoreName in the Stores table.

    Para esta columna, la fórmula DAX comprobará el estado de cada tienda.For this column, our DAX formula is going to check each stores status. La fórmula devolverá los nombres de las tiendas que muestren el estado activo (On).If a stores status is On, our formula will return the stores name. Para las que tengan el estado inactivo, mostrará el nombre "Inactive".If it’s Off, it will have the name, “Inactive”. Para conseguirlo, usaremos la función lógica IF para comprobar el estado de las tiendas y devolver un valor determinado si el resultado es verdadero o falso.To do this, we’ll use the logical IF function to test the stores status and return a particular value if the result is true or false.

  2. Comience a escribir IF.Begin typing IF. La lista de sugerencias mostrará lo que podemos agregar.The suggestion list will show what we can add. Seleccione IF.Select IF.

    El primer argumento para IF es una prueba lógica.The first argument for IF is a logical test. Queremos comprobar si una tienda tiene un estado de "On".We want to test whether or not a store has a status of “On”.

  3. Escriba un corchete de apertura [ que nos permite seleccionar columnas de la tabla Stores.Type an opening bracket [ , which allows us to select columns from the Stores table. Seleccione [Status].Select [Status].

  4. Justo después de [Status], escriba ="On" y, a continuación, escriba una coma (,) para especificar el segundo argumento.Right after [Status], type ="On", then enter a comma (,) to enter the second argument. La información sobre herramientas sugiere que necesitamos agregar el valor para cuando el resultado sea verdadero.The tooltip suggests we need to add the value for when the result is true.

  5. Si la tienda está activa, queremos que aparezca su nombre.If the store is On, we want to show the store’s name. Escriba un corchete de apertura [ y seleccione la columna [StoreName] y, a continuación, escriba otra coma para poder introducir el tercer argumento.Type an opening bracket [ and select the [StoreName] column, and then type another comma so we can enter our third argument.

  6. Tenemos que agregar un valor para cuando el resultado sea falso, en este caso queremos que el valor sea “Inactive”.We need to add a value for when the result is false, in this case we want the value to be “Inactive”.

  7. Complete la fórmula. Para ello, presione ENTRAR o haga clic en la marca de verificación en la barra de fórmulas.Complete the formula by pressing Enter or clicking on the checkmark in the formula bar. La fórmula se valida y se agrega a la lista de campos en la tabla Stores.The formula is validated and added to the field list in the Stores table.

    Igual que con cualquier otro campo, podemos usar la nueva columna Active StoreName en las visualizaciones.Just like any other field, we can use our new Active StoreName column in visualizations. En este gráfico, las tiendas con un estado activo se muestran de manera individual, por nombre, pero las tiendas con un estado inactivo se agrupan y se muestra como inactivas.In this chart, stores with a status of On are shown individually by name, but stores with a status of Off are grouped together and shown as Inactive.

AprendizajesWhat we’ve learned

Las columnas calculadas pueden enriquecer nuestros datos proporcionando información más fácilmente.Calculated columns can enrich our data, providing easier insights. Ya sabemos cómo crear columnas calculadas mediante el uso de la barra de fórmulas, cómo usar la lista de sugerencias y cómo se recomienda nombrar las columnas nuevas.We've learned how to create calculated columns by using the formula bar, how to use the suggestions list, and how to best name our new columns.

Pasos siguientesNext steps

Si desea profundizar más en las fórmulas DAX y crear columnas calculadas con fórmulas DAX más avanzadas, consulte Aspectos básicos de DAX en Power BI Desktop.If you want to take a deeper dive into DAX formulas, and create calculated columns with more advanced DAX formulas, see DAX Basics in Power BI Desktop. Ese artículo se centra en los conceptos fundamentales en DAX, como la sintaxis, las funciones y una explicación más exhaustiva sobre el contexto.This article focuses on fundamental concepts in DAX, such as syntax, functions, and a more thorough understanding of context.

Asegúrese de agregar la Referencia de expresiones de análisis de datos (DAX) a sus favoritos.Be sure to add the Data Analysis Expressions (DAX) Reference to your favorites. Ahí encontrará información detallada sobre la sintaxis y los operadores de DAX, así como sus más de 200 funciones.This is where you'll find detailed info on DAX syntax, operators, and the over 200 DAX functions.