Share via


Relaciones y búsquedas en las fórmulas

Una de las características más eficaces de PowerPivot para Excel es la capacidad de crear relaciones entre las tablas y, a continuación, usar las tablas relacionadas para buscar o filtrar datos relacionados. Puede recuperar valores relacionados de tablas usando el lenguaje de fórmulas Expresiones de análisis de datos (DAX), proporcionado con PowerPivot para Excel. DAX utiliza un modelo relacional y, por consiguiente, puede recuperar con facilidad y precisión los valores relacionados o correspondientes de otra tabla o columna.

Puede crear fórmulas que realicen búsquedas como parte de una columna calculada o como parte de una medida para usar en una tabla dinámica o un gráfico dinámico. Para obtener más información, vea los siguientes temas:

Crear una medida

Crear una columna calculada

En esta sección se describen las funciones de DAX que se proporcionan para la búsqueda, junto con algunos ejemplos de cómo usarlas.

Nota

En función del tipo de operación o fórmula de búsqueda que desee usar, podría tener que crear una relación entre las tablas en primer lugar. Para obtener información acerca de cómo crear relaciones, vea Relaciones entre tablas.

Descripción de las funciones de búsqueda

La capacidad de buscar datos coincidentes o relacionados de otra tabla resulta muy útil en situaciones donde la tabla actual solo tiene un identificador de algún tipo, pero los datos que necesita (como el precio del producto, el nombre u otros valores detallados) se almacenan en una tabla relacionada. También es útil cuando hay varias filas en otra tabla que están relacionadas con la fila o el valor actual. Por ejemplo, puede recuperar con facilidad todas las ventas correspondientes a una región, almacén o representante determinado.

A diferencia de las funciones de búsqueda de Excel como VLOOKUP, que se basan en matrices, o LOOKUP, que obtiene el primero de varios valores coincidentes, DAX sigue las relaciones existentes entre las tablas unidas por claves para obtener el valor relacionado único que coincide exactamente. DAX también puede recuperar una tabla de registros relacionados con el registro actual.

Nota

Si está familiarizado con las bases de datos relacionales, puede considerar que las búsquedas en PowerPivot son similares a la instrucción de subselección en Transact-SQL.

Para obtener más información acerca del modelo relacional usado en PowerPivot, vea Información general sobre relaciones.

Recuperar un valor relacionado único

La función RELATED devuelve un único valor de otra tabla que está relacionada con el valor actual en la tabla actual. Debe especificar la columna que contiene los datos que desea y la función sigue las relaciones existentes entre las tablas para capturar el valor de la columna especificada en la tabla relacionada. En algunos casos, la función debe seguir una cadena de relaciones para recuperar los datos.

Por ejemplo, suponga tiene en Excel una lista en de los envíos de hoy. Sin embargo, la lista contiene solo el número de identificador de empleado, el del identificador de pedido y el del identificador de expedidor, por lo que el informe resulta difícil de leer. Para obtener la información adicional que desee, puede convertir esa lista en una tabla vinculada PowerPivot y, a continuación, crear las relaciones a las tablas Employee y Reseller, haciendo coincidir el campo EmployeeID con el campo EmployeeKey y el campo ResellerID con el campo ResellerKey.

Para mostrar la información de búsqueda en su tabla vinculada, agregue dos nuevas columnas calculadas con las siguientes fórmulas:

= RELATED('Employees'[EmployeeName])
= RELATED('Resellers'[CompanyName])

Antes de la búsqueda

Después de la búsqueda

Order IDEmployeeIDResellerID
100314230445
10031515445
10031676108
EmployeeIDEmployeeReseller
230Kuppa VamsiModular Cycle Systems
15Pilar AckemanModular Cycle Systems
76Kim RallsAssociated Bikes
Order IDEmployeeIDResellerIDEmployeeReseller
100314230445Kuppa VamsiModular Cycle Systems
10031515445Pilar AckemanModular Cycle Systems
10031676108Kim RallsAssociated Bikes

La función utiliza las relaciones entre la tabla vinculada y las tablas Employees y Resellers para obtener el nombre correcto de cada fila del informe. También puede usar los valores relacionados para realizar cálculos. Para obtener más información y más ejemplos, vea Función RELATED (DAX).

Recuperar una lista de valores relacionados

La función RELATEDTABLE sigue una relación existente y devuelve una tabla que contiene todas las filas coincidentes de la tabla especificada. Por ejemplo, suponga que desea averiguar cuántos pedidos ha efectuado este año cada distribuidor. Puede crear una nueva columna calculada en la tabla Resellers que incluya la fórmula siguiente, que busque registros de cada distribuidor en la tabla ResellerSales_USD y que cuente el número de pedidos individuales efectuados por cada distribuidor. Estas tablas forman parte del libro de ejemplos de DAX. Para obtener más información acerca de los datos de ejemplo, vea Obtener datos de muestra para PowerPivot.

=COUNTROWS(RELATEDTABLE(ResellerSales_USD))

En esta fórmula, la función RELATEDTABLE primero obtiene el valor de ResellerKey para cada fila de la tabla actual. (No necesita especificar la columna de identificador en ningún lugar de la fórmula, ya que PowerPivot utiliza la relación existente entre las tablas). A continuación, la función RELATEDTABLE obtiene todas las filas de la tabla ResellerSales_USD relacionadas con cada distribuidor y cuenta las filas. Tenga en cuenta que si no hay ninguna relación (directa o indirecta) entre las dos tablas, obtendrá todas las filas en la tabla ResellerSales_USD.

Para el distribuidor Modular Ciclo Systems de nuestra base de datos de ejemplo, hay cuatro pedidos en la tabla de ventas, por lo que la función devuelve 4. En el caso de Associated Bikes, el revendedor tiene, por lo que la función devuelve un espacio en blanco.

Reseller

Registros en la tabla de ventas para este distribuidor

Modular Cycle Systems

Reseller IDSalesOrderNumber
445SO53494
445SO71872
445SO65233
445SO59000

Associated Bikes

  

Nota

Dado que la función RELATEDTABLE devuelve una tabla y no un valor único, se debe usar como argumento para una función que realice operaciones en tablas. Para obtener más información, vea Función RELATEDTABLE (DAX).