Cuándo usar columnas calculadas y campos calculados

Importante:  Este artículo se ha traducido con traducción automática; vea la declinación de responsabilidades. Para su referencia, puede encontrar la versión en inglés de este artículo aquí.

Cuando aprendiendo cómo usar Power Pivot, la mayoría de los usuarios descubre la potencia real en agregación o calcular un resultado de algún modo. Si los datos contienen una columna con valores numéricos, puede agregar fácilmente seleccionando en una tabla dinámica o de la lista de campos de Power View. Naturaleza, porque es numérico, se automáticamente va a sumar, promedio, contar, o cualquier tipo de agregación que seleccione. Esto se conoce como una medida implícita. Medidas implícitas son una buena opción para la agregación rápida y sencilla, pero tienen límites y casi siempre se pueden resolver estos límites con explícitas medidas y columnas calculadas.

Primero veamos un ejemplo donde usamos una columna calculada para agregar un nuevo valor de texto para cada fila de una tabla con el nombre de producto. Cada fila de la tabla Product contiene a todos los tipos de información sobre cada producto vendemos. Disponemos de las columnas de nombre de producto, Color, tamaño, precio del distribuidor, etc... Tenemos otra tabla relacionada con el nombre de categoría de producto que contiene una columna ProductCategoryName. ¿Qué queremos está para cada producto de la tabla de productos para incluir el nombre de categoría de producto de la tabla Product Category. En la tabla producto, podemos crear una columna calculada con el nombre de categoría de producto similar a esta:

Columna calculada Categoría de producto

Nuestra nueva fórmula de categoría de producto utiliza la función DAX relacionado para obtener los valores de la columna ProductCategoryName en la tabla relacionada de categoría de producto y a continuación, escribe esos valores de cada producto (cada fila) de la tabla Product.

Esto es un buen ejemplo de cómo podemos utilizar una columna calculada para agregar un valor fijo para cada fila que podemos usar más adelante en las filas, columnas o filtros de área de tabla dinámica o en un informe de Power View.

Vamos a crear otro ejemplo donde va a calcular un margen de beneficio de nuestras categorías de producto. Este es un escenario común, incluso en una gran cantidad de tutoriales. Tenemos una tabla de ventas en nuestro modelo de datos que contiene los datos de transacciones y hay una relación entre la tabla de ventas y la tabla Product Category. En la tabla Sales, tenemos una columna que contiene los importes de ventas y otra columna que contiene los costos.

Podemos crear una columna calculada que calcula un importe de beneficio para cada fila restando los valores en la columna coste de ventas de los valores de la columna SalesAmount, similar a esta:

Columna de beneficio en una tabla Power Pivot

Ahora, podemos crear una tabla dinámica y arrastre el campo de categoría de producto a columnas y el nuevo campo de beneficio al área de valores (una columna de una tabla en PowerPivot es un campo en la lista de campos de tabla dinámica). El resultado es una medición implícita denominada Sum of Profit. Es una cantidad agregada de valores de la columna de beneficio para cada una de las diferentes categorías de productos. El resultado es similar a esta:

Tabla dinámica simple

En este caso, beneficio sólo tiene sentido como un campo en valores. Si estamos poner beneficio en el área columnas, nuestro tabla dinámica tendría un aspecto similar a este:

Tabla dinámica sin valores útiles

El campo de beneficio no proporciona información útil cuando se coloca en las áreas de columnas, filas o filtros. Solo tiene sentido como un valor agregado en el área valores.

Lo que hemos hecho es crear una columna denominada beneficio que calcula un margen de beneficio para cada fila de la tabla Sales. Beneficio, se agrega al área de valores de la tabla dinámica, la creación automática de una medida implícita, donde se calcula un resultado para cada una de las categorías de productos. Si está pensando en que hemos realmente calculado profit nuestras por categorías de productos dos veces, es correcta. Se calcula en primer lugar una ganancia para cada fila de la tabla Sales y, a continuación, agregamos beneficio al área valores donde se ha agregado para cada una de las categorías de productos. Si piensa que no necesitamos crear la columna calculada de beneficio, también son correctas. Pero, ¿cómo se calcular nuestro beneficio sin necesidad de crear una columna calculada de beneficio?

Beneficio, realmente se calculará mejor como una medida explícita.

Por ahora, vamos a dejar nuestra columna calculada de beneficio en la tabla Sales y categoría de producto en columnas y beneficio en valores de la tabla dinámica, para comparar los resultados.

En el área de cálculo de la tabla Sales, vamos a crear una medida denominada Beneficio Total(para evitar conflictos de nombres). Al final, producirán los mismos resultados que se hizo antes, pero sin una columna calculada de beneficio.

En primer lugar, en la tabla Sales, seleccione la columna SalesAmount y, a continuación, haga clic en Autosuma para crear una Suma de SalesAmountde explícitasmedida. Recuerde que una medida explícita es una creamos en el área de cálculo de una tabla en Power Pivot. Nos lo mismo para la columna coste de ventas. Cambiaremos el nombre de estas Total SalesAmount y totales CV para hacerlos más fácil de identificar.

Botón AutoSum en Power Pivot

A continuación, creamos otra medida con esta fórmula:

Total de beneficio: = [ Total SalesAmount]-[Total CV]

Nota: También podríamos escribir la fórmula como Total Profit:=SUM([SalesAmount]) - SUM([COGS]), pero mediante la creación de medidas SalesAmount Total y CV totales independientes, podemos usarlas en nuestra tabla dinámica demasiado y podemos usarlas como argumentos en todos los tipos de otras fórmulas de medida.

Después de cambiar el formato de nuestro nuevo beneficio Total de la medida en moneda, se puede agregar a la tabla dinámica.

Tabla dinámica

Puede ver que nuestra nueva medida de beneficio Total devuelve los mismos resultados que para crear una columna calculada de beneficio y colocarla en valores. La diferencia es nuestro beneficio Total medida es mucho más eficaz y realiza el modelo de datos más limpios y más simple ya que estamos calculando al tiempo y solo para los campos seleccionamos para la tabla dinámica. No es necesario que columna calculada de beneficio después de todo.

¿Por qué es importante esta última parte? Columnas calculadas agregar datos al modelo de datos y datos ocupa de memoria. Si se actualiza el modelo de datos, también se necesitan recursos de procesamiento para volver a calcular todos los valores de la columna Profit. Que no necesitamos consumen recursos así porque deseamos calcular nuestros beneficios al seleccionar los campos que queremos ganancia en la tabla dinámica, como categorías de producto, región, o por fechas.

Veamos otro ejemplo. Uno donde crea una columna calculada resultados con una apariencia a primera vista correctos, pero...

En este ejemplo, queremos calcular importes de ventas como un porcentaje del total de ventas. Creamos una columna calculada denominada % de ventas en la tabla de ventas, similar a esta:

Columna % calculado de ventas

Nuestros fórmulas estados: para cada fila de la tabla Sales, dividir el importe de la columna SalesAmount por la suma total de todos los importes de la columna SalesAmount.

Si crea una tabla dinámica y Agregar categoría de producto a las columnas y seleccione nuestra nueva columna % de ventas para poner en valores, obtenemos una suma total de % de ventas para cada una de nuestras categorías de producto.

Tabla dinámica que muestra la suma del % de ventas por categorías de productos

Aceptar. Esto es satisfactorio hasta ese momento. Sin embargo, vamos a agregar una segmentación de datos. Se agregue año del calendario y, a continuación, seleccione un año. En este caso, seleccionamos 2007. Esto es lo que recibimos.

Resultado incorrecto de suma de % de ventas en tabla dinámica

A primera vista, esto podría seguirá apareciendo correcto. Pero nuestras porcentajes realmente deben total de 100%, puesto que deseamos saber el porcentaje del total de ventas para cada una de nuestras categorías de productos para 2007. ¿Qué ha fallado?

Nuestra columna % de ventas calcula un porcentaje para cada fila que es el valor de la columna SalesAmount dividido por la suma total de todos los valores de la columna SalesAmount. Se corrigen los valores en una columna calculada. Son un resultado inmutable para cada fila de la tabla. Cuando se agregan % de ventas a nuestra tabla dinámica se ha agregado como una suma de todos los valores de la columna SalesAmount. La suma de todos los valores de la columna % de ventas siempre será 100%.

Sugerencia: Asegúrese de leer el contexto en las fórmulas DAX. Proporciona una buena comprensión de contexto de nivel de fila y contexto de filtro, que es lo que describimos aquí.

Se puede eliminar nuestra columna % de ventas calculado, ya que no va a ayudar a. En su lugar, vamos a crear una medida que calcula correctamente nuestra porcentaje del total de ventas, independientemente de los filtros o segmentaciones de datos aplicados.

¿Recuerde que simplemente suma la columna SalesAmount, de la medida TotalSalesAmount que se creó con una versión anterior? Se usa como argumento en nuestra medida beneficio Total y, a continuación, vamos a usarlo de nuevo como un argumento en nuestro nuevo campo calculado.

Sugerencia: Creación de medidas explícitas como SalesAmount Total y CV totales no sólo son útiles a sí mismos en una tabla dinámica o informe, pero también son útiles como argumentos en otras medidas cuando necesite el resultado como un argumento. Por ello, las fórmulas más eficaz y más fácil de leer. Se trata de datos buenas práctica de modelado.

Creamos una medida nueva con la siguiente fórmula:

% del Total de ventas: =([Total SalesAmount]) / calcular ([Total de SalesAmount], ALLSELECTED())

Estados de esta fórmula: divida el resultado de SalesAmount Total por la suma total de SalesAmount sin filtros columna o fila distintos de los definidos en la tabla dinámica.

Sugerencia: Asegúrese de leer acerca de las funciones CALCULATE y ALLSELECTED en la referencia de DAX.

Ahora, si agregar nuestro nuevo % del Total de ventas a la tabla dinámica, obtenemos:

Resultado correcto de Suma del % de ventas en una tabla dinámica

Es una mejor. Ahora nuestra % de ventas totales para cada categoría de producto se calcula como un porcentaje del total de ventas del año 2007. Si se selecciona un año diferente o más de un año de la segmentación de datos CalendarYear, obtenemos porcentajes nuevos para nuestras categorías de producto, pero el nuestro total general es 100%. También se puede agregar otros filtros y segmentaciones de datos. Nuestra % de ventas totales medida siempre devolverá un porcentaje del total de ventas con independencia de las segmentaciones de datos o filtros aplicados. Con las medidas, el resultado siempre se calcula según el contexto determinado por los campos en filas y columnas y por los filtros o segmentaciones de datos que se aplican. Esta es la potencia de medidas.

Aquí tiene algunas instrucciones para ayudarle a decidir si o no una columna calculada o una medida es la adecuada para una necesidad determinado cálculo:

Usar columnas calculadas

  • Si desea que los nuevos datos aparezca en las filas, columnas, o filtros en una tabla dinámica o en un eje, leyenda o MOSAICO por en una visualización de Power View, debe usar una columna calculada. Al igual que las columnas de datos regulares, columnas calculadas se pueden utilizar como un campo en cualquier área y si son numéricos pueden agregarse en valores demasiado.

  • Si desea que los nuevos datos a ser un valor fijo de la fila. Por ejemplo, tiene una tabla de fechas con una columna de fechas y desea otra columna que contiene solo el número del mes. Puede crear una columna calculada que calcula el número de mes a las fechas en la columna de fecha. Por ejemplo, = MONTH('Date'[Date]).

  • Si desea agregar un valor de texto para cada fila a una tabla, use una columna calculada. Nunca se pueden agregar campos con valores de texto en valores. Por ejemplo, =FORMAT('Date'[Date],"mmmm") nos proporciona el nombre del mes para cada fecha en la columna de fecha en la tabla de fechas.

Usar medidas

  • Si el resultado del cálculo esté siempre depende de los otros campos seleccionados en una tabla dinámica.

  • Si necesita hacer cálculos más complejos, como calcular un recuento en función de un filtro de algún tipo, o calcular un respecto al año o variación, utilice un campo calculado.

  • Si desea mantener el tamaño del libro al mínimo y aumentar su rendimiento, crear como muchos de los cálculos como medidas como sea posible. En muchos casos, todos los cálculos pueden ser medidas significativamente reducir el tamaño del libro y acelerar el tiempo de actualización.

Tenga en cuenta, no hay nada malo de crear columnas calculadas como con nuestra columna Profit y, a continuación, la adición de una tabla dinámica o informe. Es realmente una manera realmente buena y fácil conocer y crear sus propios cálculos. A medida que crece su nivel de comprensión de estas dos características muy eficaces de PowerPivot, desea crear el modelo de datos más eficaz y precisa que puede. Lo que ha aprendido aquí le ayuda a Afortunadamente. Hay algunas otras excelentes recursos por allí que pueden ayudarle también. Estas son unos pocos: contexto en fórmulas DAX, agregaciones en Power Pivoty Centro de recursos de DAX. Y mientras un poco más tiene avanzada y dirigida a profesionales de finanzas y contabilidad, los datos de ejemplo pérdidas y ganancias modelado y análisis de datos con Microsoft PowerPivot en Excel se cargan con ejemplos de fórmula y modelado de datos excelente.

Nota: Declinación de responsabilidades de traducción automática: Este artículo se ha traducido con un sistema informático sin intervención humana. Microsoft ofrece estas traducciones automáticas para que los hablantes de otros idiomas distintos del inglés puedan disfrutar del contenido sobre los productos, los servicios y las tecnologías de Microsoft. Puesto que este artículo se ha traducido con traducción automática, es posible que contenga errores de vocabulario, sintaxis o gramática.

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Únase a los participantes de Office Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×