Crear y administrar relaciones en Power BI DesktopCreate and manage relationships in Power BI Desktop

Al importar varias tablas, lo más probable es que vaya a realizar un análisis con los datos de todas esas tablas.When you import multiple tables, chances are you’re going to do some analysis using data from all those tables. Las relaciones entre esas tablas son necesarias para calcular los resultados de forma precisa y mostrar la información correcta en los informes.Relationships between those tables are necessary in order to accurately calculate results and display the correct information in your reports. Power BI Desktop facilita la creación de esas relaciones.Power BI Desktop makes creating those relationships easy. De hecho, en la mayoría de los casos no tendrá que hacer nada; la característica de detección automática lo puede hacer por usted.In-fact, in most cases you won’t have to do anything, the Autodetect feature can do it for you. Sin embargo, en algunos casos tendrá que crear relaciones usted mismo o tal vez necesite realizar algunos cambios en una relación.However, in some cases you might have to create relationships yourself, or you might need to make some changes to a relationship. En cualquier caso, es importante entender las relaciones en Power BI Desktop y cómo crearlas y editarlas.Either way, it’s important to understand relationships in Power BI Desktop and how to create and edit them.

Detección automática durante la cargaAutodetect during load

Si consulta dos o más tablas al mismo tiempo, cuando se carguen los datos, Power BI Desktop intentará buscar y crear relaciones automáticamente.If you query two or more tables at the same time, when the data is loaded, Power BI Desktop will attempt to find and create relationships for you. La cardinalidad, la dirección del filtro cruzado y las propiedades activas se establecen automáticamente.Cardinality, Cross filter direction, and Active properties are automatically set. Power BI Desktop examina los nombres de columna en las tablas que está consultando para determinar si hay posibles relaciones.Power BI Desktop looks at column names in the tables you are querying to determine if there are any potential relationships. Si las hay, esas relaciones se crean automáticamente.If there are, those relationships are created automatically. Si Power BI Desktop no puede determinar con un alto nivel de confianza que hay una coincidencia, no creará automáticamente la relación.If Power BI Desktop cannot determine with a high-level of confidence there is a match, it will not automatically create the relationship. Todavía puede usar el cuadro de diálogo Administrar relaciones para crear o modificar las relaciones.You can still use the Manage Relationships dialog to create or edit relationships.

Crear una relación mediante la detección automáticaCreate a relationship by using Autodetect

En la pestaña Inicio, haga clic en Administrar relaciones > Detección automática.On the Home tab, click Manage Relationships > AutoDetect.

Crear una relación de forma manualCreate a relationship manually

  1. En la pestaña Inicio, haga clic en Administrar relaciones > Nuevo.On the Home tab, click Manage Relationships > New.
  2. En el cuadro de diálogo Crear relación, en la primera lista desplegable de la tabla, seleccione una tabla y, a continuación, seleccione la columna que desea usar en la relación.In the Create Relationship dialog, in the first table drop-down list, select a table, and then select the column you want to use in the relationship.
  3. En la segunda lista desplegable de la tabla, seleccione la otra tabla que desea en la relación, luego seleccione la otra columna que desea usar y, a continuación, haga clic en Aceptar.In the to second table drop-down list, select the other table you want in the relationship, then select the other column you want to use, and then click OK.

De forma predeterminada, Power BI Desktop configurará automáticamente la cardinalidad (dirección), la dirección del filtro cruzado y las propiedades activas para la nueva relación. Sin embargo, puede cambiar estas opciones si es necesario en Opciones avanzadas.By default, Power BI Desktop will automatically configure the Cardinality (direction), Cross filter direction, and Active properties for your new relationship; however, you can change these if necessary in Advanced options. Para obtener más información, vea la sección de información sobre opciones avanzadas más adelante en este artículo.To learn more, see the Understanding advanced options section later in this article.

Editar una relaciónEdit a relationship

  1. En la pestaña Inicio , haga clic en Administrar relaciones.On the Home tab, click Manage Relationships.
  2. En el cuadro de diálogo Administrar relaciones , seleccione la relación y haga clic en Editar.In the Manage Relationships dialog, select the relationship, then click Edit.

Configuración de opciones avanzadasConfigure advanced options

Al crear o editar una relación, puede configurar opciones avanzadas.When you create or edit a relationship, you can configure advanced options. De manera predeterminada, las opciones avanzadas se configurarán automáticamente en función de una mejor aproximación.By default, advanced options are automatically configured based on a best guess. Esto puede ser diferente para cada relación según los datos de las columnas.This can be different for each relationship based on the data in the columns.

CardinalidadCardinality

Varios a uno (*:1): este es el tipo predeterminado más común.Many to One (*:1) - This is the most common, default type. Esto significa que la columna de una tabla puede tener más de una instancia de un valor y que la otra tabla relacionada, a menudo conocida como tabla de búsqueda, solo tiene una instancia de un valor.This means the column in one table can have more than one instance of a value, and the other related table, often know as the Lookup table, has only one instance of a value.

Uno a uno (1:1) : esto significa que la columna de una tabla solo tiene una instancia de un valor determinado y que la otra tabla relacionada solo tiene una instancia de un valor determinado.One to One (1:1) - This means the column in one table has only one instance of a particular value, and the other related table has only one instance of a particular value.

Vea la sección Información sobre opciones avanzadas más adelante en este artículo para obtener más detalles sobre cuándo se debe cambiar la cardinalidad.See the Understanding advanced options section later in this article for more details about when to change cardinality.

Dirección del filtro cruzadoCross filter direction

Ambos : esta es la dirección predeterminada más común.Both - This is the most common, default direction. Esto significa que para fines de filtrado, ambas tablas se tratan como si fueran una sola tabla.This means for filtering purposes, both tables are treated as if they're a single table. Esto funciona bien con una única tabla que tenga un número de tablas de búsqueda que la rodee.This works well with a single table that has a number of lookup tables that surround it. Un ejemplo es una tabla de datos reales de ventas con una tabla de búsqueda de departamento.An example is a Sales actuals table with a lookup table for department. Esto se suele denominar una configuración de esquema de estrella (una tabla central con varias tablas de búsqueda). Sin embargo, si tiene dos o más tablas que también tengan tablas de búsqueda (con algo en común), no deseará usar la configuración de ambos.This is often called a Star schema configuration (a central table with several Lookup tables.) However, if you have two or more tables that also have lookup tables (with some in common) then you wouldn't want to use the Both setting. Para continuar con el ejemplo anterior, en este caso, también dispone de una tabla de ventas de presupuesto que registra el presupuesto de destino para cada departamento.To continue the previous example, in this case, you also have a budget sales table that records target budget for each department. Además, la tabla de departamento está conectada a la tabla de presupuesto y de ventas.And, the department table is connected to both the sales and the budget table. Evite la configuración de ambos para este tipo de configuración.Avoid the Both setting for this kind of configuration.

Único : esto significa que las opciones de filtrado en tablas conectadas funcionan en la tabla donde se agregan los valores.Single - This means that filtering choices in connected tables work on the table where values are being aggregated. Si importa un modelo de datos de Power Pivot o anterior en Excel 2013, todas las relaciones tendrán una dirección única.If you import a Power Pivot in Excel 2013 or earlier data model, all relationships will have a single direction.

Vea la sección Información sobre opciones avanzadas más adelante en este artículo para obtener más detalles sobre cuándo se debe cambiar la dirección del filtro único.See the Understanding advanced options section later in this article for more details about when to change cross filter direction.

Activación de esta relaciónMake this relationship active

Si se activa, significa que la relación actúa como la relación predeterminada y activa.When checked, this means the relationship serves as the active, default relationship. En casos donde hay más de una relación entre dos tablas, la relación activa proporciona una manera para que Power BI Desktop cree automáticamente visualizaciones que incluyan las dos tablas.In cases where there are more than one relationship between two tables, the active relationship provides a way for Power BI Desktop to automatically create visualizations that include both tables.

Vea la sección Información sobre opciones avanzadas más adelante en este artículo para obtener más detalles sobre cuándo activar determinada relación.See the Understanding advanced options section later in this article for more details about when to make a particular relationship active.

Descripción de las relacionesUnderstanding relationships

Una vez que haya conectado dos tablas junto con una relación, puede trabajar con los datos en ambas tablas como si fueran una sola tabla, lo que le libera de tener que preocuparse sobre los detalles de la relación o lo que aplana esas tablas en una sola tabla antes de importarlas.Once you have connected two tables together with a relationship, you can work with the data in both tables as if they were a single table, freeing you from having to worry about relationship details, or flattening those tables into a single table before importing them. En muchas situaciones, Power BI Desktop puede crear automáticamente relaciones para usted, por lo que es posible que no sea necesario que usted cree esas relaciones.In many situations, Power BI Desktop can automatically create relationships for you, so creating those relationships yourself might not even be needed. Sin embargo, si Power BI Desktop no puede determinar con un grado alto de certeza que deba existir una relación entre dos tablas, no creará automáticamente la relación.However, if Power BI Desktop can’t determine with a high-degree of certainty that a relationship between two tables should exist, it will not automatically create the relationship . En ese caso, necesitará crear la relación.In that case, you will need to create the relationship.

Vamos a hacer un breve tutorial para mostrarle mejor cómo funcionan las relaciones en Power BI Desktop.Let’s do a little tutorial, to better show you how relationships work in Power BI Desktop.

Sugerencia

Puede completar esta lección.You can complete this lesson yourself. Copie la tabla ProjectHours de abajo en una hoja de cálculo de Excel, seleccione todas las celdas, haga clic en INSERTAR > Tabla.Copy the ProjectHours table below into an Excel worksheet, select all of the cells, click INSERT > Table. En el cuadro de diálogo Crear tabla , haga clic en Aceptar.In the Create Table dialog, just click OK. A continuación, en Nombre de tabla, escriba ProjectHours.Then in Table Name, type ProjectHours. Haga lo mismo para la tabla CompanyProject.Do the same for the CompanyProject table. A continuación, puede importar los datos mediante Obtener datos en Power BI Desktop.You can then import the data by using Get Data in Power BI Desktop. Seleccione el libro y las tablas como origen de datos.Select your workbook and tables as a data source.

Esta primera tabla, ProjectHours, es un registro de los vales de trabajo que registran el número de horas que una persona ha trabajado en determinado proyecto.This first table, ProjectHours, is a record of work tickets that record the number of hours a person has worked on a particular project.

ProjectHoursProjectHours

TicketTicket SubmittedBySubmittedBy HoursHours ProjectProject DateSubmitDateSubmit
10011001 Brewer, AlanBrewer, Alan 2222 AzulBlue 1/1/20131/1/2013
10021002 Brewer, AlanBrewer, Alan 2626 RojoRed 2/1/20132/1/2013
10031003 Ito, ShuIto, Shu 3434 AmarilloYellow 12/4/201212/4/2012
10041004 Brewer, AlanBrewer, Alan 1313 NaranjaOrange 1/2/20121/2/2012
10051005 Bowen, EliBowen, Eli 2929 PúrpuraPurple 10/1/201310/1/2013
10061006 Bento, NunoBento, Nuno 3535 VerdeGreen 2/1/20132/1/2013
10071007 Hamilton, DavidHamilton, David 1010 AmarilloYellow 10/1/201310/1/2013
10081008 Han, MuHan, Mu 2828 NaranjaOrange 1/2/20121/2/2012
10091009 Ito, ShuIto, Shu 2222 PúrpuraPurple 2/1/20132/1/2013
10101010 Bowen, EliBowen, Eli 2828 VerdeGreen 10/1/201310/1/2013
10111011 Bowen, EliBowen, Eli 99 AzulBlue 10/15/201310/15/2013

Esta segunda tabla, CompanyProject, es una lista de proyectos con una prioridad asignada, A, B o C.This second table, CompanyProject, is a list of projects with an assigned priority, A, B, or C.

CompanyProjectCompanyProject

ProjNameProjName PriorityPriority
AzulBlue AA
RojoRed BB
VerdeGreen CC
AmarilloYellow CC
PúrpuraPurple BB
NaranjaOrange CC

Observe que cada tabla tenga una columna de proyecto.Notice that each table has a project column. Cada una tiene un nombre ligeramente distinto, pero los valores parecen iguales.Each are named slightly different, but the values look like they’re the same. Esto es importante y volveremos a abordarlo más adelante.That’s important, and we’ll get back to it in a little bit.

Ahora que tenemos nuestras dos tablas importadas en un modelo, vamos a crear un informe.Now that we have our two tables imported into a model, let’s create a report. Lo primero que queremos obtener es el número de horas presentadas por prioridad del proyecto, así que seleccionamos Priority y Hours en Campos.The first thing we want to get is the number of hours submitted by project priority, so we select Priority and Hours from Fields.

Si observamos nuestra tabla en el lienzo del informe, verá que el número de horas es 256,00 para cada proyecto y también el total.If we look at our table in the Report canvas, you’ll see the number of hours is 256.00 for each project, and it’s also the total. Claramente esto no es correcto.Clearly this isn’t correct. ¿Por qué?Why? Porque no se puede calcular un suma total de valores de una tabla (Hours en la tabla Project), segmentada por valores en otra tabla (Priority en la tabla CompanyProject) sin una relación entre estas dos tablas.It’s because we can’t calculate a sum total of values from one table (Hours in the Project table), sliced by values in another table (Priority in the CompanyProject table) without a relationship between these two tables.

Por lo tanto, vamos a crear una relación entre estas dos tablas.So, let’s create a relationship between these two tables.

¿Recuerda las columnas que vimos en ambas tablas, con un nombre de proyecto, pero con valores similares?Remember those columns we saw in both tables with a project name, but with values that look alike? Vamos a usar estas dos columnas para crear una relación entre las tablas.We’re going to use these two columns to create a relationship between our tables.

¿Por qué estas columnas?Why these columns? Bueno, si miramos la columna Project en la tabla ProjectHours, veremos valores como Azul, Rojo, Amarillo, Naranja, etc.Well, if we look at the Project column in the ProjectHours table, we see values like Blue, Red, Yellow, Orange, and so on. De hecho, veremos varias filas que tienen el mismo valor.In fact, we see several rows that have the same value. En efecto, tenemos muchos valores de color para Project.In-effect, we have many color values for Project.

Si miramos la columna ProjName en la tabla CompanyProject, veremos que solo hay uno de cada uno de los valores de color para el proyecto.If we look at the ProjName column in the CompanyProject table, we see there’s only one of each of the color values for project. El valor de cada color en esta tabla es único y eso es importante, porque podemos crear una relación entre estas dos tablas.Each color value in this table is unique, and that’s important, because we can create a relationship between these two tables. En este caso, una relación varios a uno.In this case, a many-to-one relationship. En una relación de varios a uno, al menos una columna en una de las tablas debe contener valores únicos.In a many-to-one relationship, at least one column in one of the tables must contain unique values. Existen algunas opciones avanzadas para algunas relaciones las examinaremos más adelante, pero por ahora vamos a crear una relación entre las columnas Project en cada una de nuestras dos tablas.There are some advanced options for some relationships, and we’ll look at those later, but for now, let’s create a relationship between the Project columns in each of our two tables.

Para crear la nueva relaciónTo create the new relationship

  1. Haga clic en Administrar relaciones.Click Manage Relationships.
  2. En Administrar relaciones, haga clic en Nuevo.In Manage Relationships, click New. Se abre el cuadro de diálogo Crear relación , donde podemos seleccionar las tablas, columnas y cualquier configuración avanzada que queramos para nuestra relación.This opens the Create Relationship dialog, where we can select the tables, columns, and any advanced settings we want for our relationship.
  3. En la primera tabla, seleccione ProjectHoursy, a continuación, seleccione la columna Project .In the first table, select ProjectHours, then select the Project column. Se trata del lado varios de nuestra relación.This is the many side of our relationship.
  4. En la segunda tabla, seleccione CompanyProjecty, a continuación, seleccione la columna ProjName .In the second table, select CompanyProject, then select the ProjName column. Se trata del lado uno de nuestra relación.This is the one side of our relationship.
  5. Siga adelante y haga clic en Aceptar tanto en el cuadro de diálogo Crear relación como en el cuadro de diálogo Administrar relaciones .Go ahead and click OK in both the Create Relationship dialog and the Manage Relationships dialog.

En aras de una divulgación completa, acaba de crear esta relación por las malas.In the interest of full disclosure, you really just created this relationship the hard way. Simplemente podría haber hecho clic en el botón Detección automática en el cuadro de diálogo Administrar relaciones.You could've just clicked on the Autodetect button in the Manage Relationships dialog. De hecho, la detección automática lo habría hecho por usted al cargar los datos si las dos columnas tuvieran el mismo nombre.In-fact, Autodetect would have already done it for you when you loaded the data if both columns had the same name. Pero, ¿cuál es el desafío?But, what’s the challenge in that?

Ahora, echemos un vistazo en la tabla del lienzo del informe una vez más.Now, let’s look at the table in our Report canvas again.

Ahora se ve mucho mejor, ¿verdad?Now that looks a whole lot better, doesn’t it?

Cuando se suman horas por prioridad, Power BI Desktop buscará todas las instancias de los valores de color únicos en la tabla de búsqueda CompanyProject y, a continuación, buscará todas las instancias de cada uno de esos valores en la tabla CompanyProject y calculará una suma total para cada valor único.When we sum up hours by Priority, Power BI Desktop will look for every instance of the unique color values in the CompanyProject lookup table, and then look for every instance of each of those values in the CompanyProject table, and calculate a sum total for each unique value.

De hecho, fue bastante fácil con la detección automática. Tal vez no sea necesario hacer esto mucho.That was pretty easy, in-fact, with Autodetect, you might not even have to do this much.

Información sobre opciones avanzadasUnderstanding advanced options

Cuando se crea una relación, ya sea con detección automática o de forma manual, Power BI Desktop configurará automáticamente las opciones avanzadas según los datos de las tablas.When a relationship is created, either with Autodetect or one you create manually, Power BI Desktop will automatically configure advanced options based on the data in your tables. Puede configurar las propiedades de relación avanzada expandiendo Opciones avanzadas en el cuadro de diálogo de la relación Crear/Editar.You can configure advanced relationship properties by expanding Advanced options in the Create/Edit relationship dialog.

Como dijimos, normalmente se establecen automáticamente y no tendrá que trabajar con ellas. Sin embargo, hay varias situaciones donde tal vez desee configurar opciones avanzadas usted mismo.As we said, these are usually set automatically and you won’t need to mess with them; however, there are several situations where you might want to configure advanced options yourself.

Las futuras actualizaciones de datos requieren una cardinalidad diferenteFuture updates to the data require a different cardinality

Normalmente, Power BI Desktop puede determinar automáticamente la mejor cardinalidad para la relación.Normally, Power BI Desktop can automatically determine the best cardinality for the relationship. Si necesita reemplazar la configuración automática, porque sabe que los datos cambiarán en el futuro, puede seleccionarla en el control de cardinalidad.If you do need to override the automatic setting, because you know the data will change in the future, you can select it in the Cardinality control. Veamos un ejemplo donde se debe seleccionar una cardinalidad diferente.Let’s look at an example where we need to select a different cardinality.

La siguiente tabla CompanyProjectPriority es una lista de todos los proyectos de la empresa y su prioridad.The CompanyProjectPriority table below is a list of all company projects and their priority. La tabla ProjectBudget es el conjunto de proyectos para los que se ha aprobado presupuesto.The ProjectBudget table is the set of projects for which budget has been approved.

ProjectBudgetProjectBudget

Proyectos aprobadosApproved Projects BudgetAllocationBudgetAllocation AllocationDateAllocationDate
AzulBlue 40,00040,000 12/1/201212/1/2012
RojoRed 100,000100,000 12/1/201212/1/2012
VerdeGreen 50,00050,000 12/1/201212/1/2012

CompanyProjectPriorityCompanyProjectPriority

ProjectProject PriorityPriority
AzulBlue AA
RojoRed BB
VerdeGreen CC
AmarilloYellow CC
PúrpuraPurple BB
NaranjaOrange CC

Si creamos una relación entre la columna Project en la tabla CompanyProjectPriority y la columna ApprovedProjects en la tabla ProjectBudget, similar al siguiente:If we create a relationship between the Project column in the CompanyProjectPriority table and ApprovedProjects column in the ProjectBudget table, like this:

Se establecerá automáticamente cardinalidad en uno a uno (1:1) y el filtrado cruzado para que sea Ambos (como se muestra).Cardinality is automatically set to One-to-One (1:1), and cross filtering to be Both (as shown). Esto es porque en el Power BI Desktop la mejor combinación de las dos tablas realmente tiene el siguiente aspecto:This is because to Power BI Desktop, the best combination of the two tables really looks like this:

ProjectProject PriorityPriority BudgetAllocationBudgetAllocation AllocationDateAllocationDate
AzulBlue AA 40,00040,000 12/1/201212/1/2012
RojoRed BB 100,000100,000 12/1/201212/1/2012
VerdeGreen CC 50,00050,000 12/1/201212/1/2012
AmarilloYellow CC

PúrpuraPurple BB

NaranjaOrange CC

Hay una relación uno a uno entre nuestras dos tablas porque no hay ningún valor de repetición en la columna Project de la tabla combinada.There is a one-to-one relationship between our two tables because there are no repeating values in the combined table’s Project column. La columna Project es única, porque cada valor se produce solo una vez, por lo que las filas de las dos tablas se pueden combinar directamente sin ninguna duplicación.The Project column is unique, because each value occurs only once, so, the rows from the two tables can be combined directly without any duplication.

Sin embargo, supongamos que sabe que los datos cambiarán la próxima vez que los actualice.But, let’s say you know the data will change the next time you refresh it. Ahora una versión actualizada de la tabla ProjectBudget tiene filas adicionales para Azul y Rojo:A refreshed version of the ProjectBudget table now has additional rows for Blue and Red:

ProjectBudgetProjectBudget

Proyectos aprobadosApproved Projects BudgetAllocationBudgetAllocation AllocationDateAllocationDate
AzulBlue 40,00040,000 12/1/201212/1/2012
RojoRed 100,000100,000 12/1/201212/1/2012
VerdeGreen 50,00050,000 12/1/201212/1/2012
AzulBlue 80,00080,000 6/1/20136/1/2013
RojoRed 90,00090,000 6/1/20136/1/2013

Esto significa que la mejor combinación de las dos tablas realmente tiene el siguiente aspecto:This means the best combination of the two tables now really looks like this:

ProjectProject PriorityPriority BudgetAllocationBudgetAllocation AllocationDateAllocationDate
AzulBlue AA 40,00040,000 12/1/201212/1/2012
RojoRed BB 100,000100,000 12/1/201212/1/2012
VerdeGreen CC 50,00050,000 12/1/201212/1/2012
AmarilloYellow CC

PúrpuraPurple BB

NaranjaOrange CC

AzulBlue AA 8000080000 6/1/20136/1/2013
RojoRed BB 9000090000 6/1/20136/1/2013

En esta nueva tabla combinada, la columna Project tiene valores repetidos.In this new combined table, the Project column has repeating values. Las dos tablas originales no tienen una relación uno a uno, una vez que se actualiza la tabla.The two original tables won’t have a one-to-one relationship once the table is refreshed. En este caso, como sabemos que las actualizaciones futuras harán que la columna Project tenga duplicados, queremos establecer la Cardinalidad en Varios a uno (*: 1), con Varios en el lado de ProjectBudget y Uno en el lado de CompanyProject.In this case, because we know those future updates will cause the Project column to have duplicates, we want to set the Cardinality to be Many-to-One (*:1), with the Many on the ProjectBudget side and the One on the CompanyProject side.

Ajuste de la dirección del filtro cruzado para un conjunto complejo de tablas de relacionesAdjusting cross filter direction for a complex set of tables of relationships

Para la mayoría de las relaciones, la dirección del filtro cruzado se establece en "Ambos".For most relationships, the cross filter direction is set to ‘Both’. Sin embargo, hay algunas circunstancias poco comunes en las que tal vez necesite establecer esto de forma diferente del valor predeterminado, como si estuviera importando un modelo de una versión anterior de Power Pivot, donde cada relación se establece en una sola dirección.There are, however, some more uncommon circumstances where you might need to set this different from the default, like if you’re importing a model from an older version of Power Pivot, where every relationship is set to a single direction.

La opción Ambos permite que Power BI Desktop trate todos los aspectos de las tablas conectadas como si fueran una sola tabla.The Both setting enables Power BI Desktop to treat all aspects of connected tables as if they are a single table. Existen algunas situaciones, sin embargo, en las que Power BI Desktop no puede establecer la dirección del filtro cruzado de una relación en "Ambos" y también mantener un conjunto ambiguo de valores predeterminados disponibles para fines de elaboración de informes.There are some situations, however, where Power BI Desktop cannot set a relationship’s cross filter direction to ‘Both’ and also keep an unambiguous set of defaults available for reporting purposes. Si la dirección del filtro cruzado de una relación no se establece en Ambos, suele ser porque se crearía ambigüedad.If a relationship cross filter direction isn't set to Both, then it’s usually because it would create ambiguity. Si el valor predeterminado del filtro cruzado no funciona para usted, intente configurarlo en una tabla determinada o en Ambos.If the default cross filter setting isn’t working for you, try setting it to a particular table or Both.

El filtro cruzado de una sola dirección funciona para muchas situaciones.Single direction cross filtering works for many situations. De hecho, si ha importado un modelo de PowerPivot en Excel 2013 o versiones anteriores, todas las relaciones se establecerán en una dirección única.In fact, if you’ve imported a model from Power Pivot in Excel 2013 or earlier, all of the relationships will be set to single direction. Una dirección única significa que las opciones de filtrado en tablas conectadas funcionan en la tabla donde sucede el trabajo de agregación.Single direction means that filtering choices in connected tables work on the table where aggregation work is happening. A veces, comprender el filtrado cruzado puede ser un poco complicado; veamos un ejemplo.Sometimes, understanding cross filtering can be a little difficult, so let’s look at an example.

Con el filtro cruzado de dirección única, si crea un informe que resume las horas del proyecto y luego puede optar por resumir (o filtrar) por CompanyProject, Priority o CompanyEmployee, City.With single direction cross filtering, if you create a report that summarizes the project hours and then you can choose to summarize (or filter) by CompanyProject, Priority or CompanyEmployee, City. Sin embargo, si desea contar el número de empleados por proyectos (una pregunta menos común), esto no funcionará.If however, you want to count the number of employee per projects (a less common question), it won’t work. Obtendrá una columna de valores que son los mismos.You’ll get a column of values that are all the same. En el ejemplo siguiente, la dirección de filtro cruzado de ambas relaciones se establece en una dirección única: hacia la tabla ProjectHours:In the example below, both relationships cross filtering direction is set to a single direction – towards the ProjectHours table:

La especificación del filtro fluirá de CompanyProject a CompanyEmployee (como se muestra en la imagen siguiente), pero no fluirá hasta CompanyEmployee.Filter specification will flow from CompanyProject to CompanyEmployee (as shown in the image below) but, it won’t flow up to CompanyEmployee. Sin embargo, si establece la dirección del filtro cruzado en Ambos, sí funcionará.However, if you set the cross filtering direction to Both it will work. La opción Ambos permite que la especificación del filtro fluya hasta Employee.The Both setting allows the filter specification to flow up to Employee.

Con la dirección del filtro cruzado establecida en Ambos, nuestro informe ahora parece correcto:With the cross filtering direction set to Both, our report now appears correct:

El filtro cruzado de ambas direcciones funciona bien para un modelo de relaciones de tablas que tengan un aspecto como el modelo anterior.Cross filtering both directions works well for a pattern of table relationships that look like the pattern above. Normalmente, esto se denomina esquema de estrella, similar al siguiente:This is most commonly called a star schema, like this:

La dirección del filtro cruzado no funciona bien con un patrón más general que se suele encontrarse en las bases de datos, como en este diagrama:Cross filtering direction does not work well with a more general pattern often found in databases, like in this diagram:

Si tiene un patrón de tabla como este, con bucles, el filtro cruzado puede crear un conjunto ambiguo de relaciones.If you have a table pattern like this, with loops, then cross filtering can create an ambiguous set of relationships. Por ejemplo, si suma un campo de Tabla X y después elige filtrar por un campo en la Tabla Y, no resulta claro cómo debe viajar el filtro, si a través de la tabla superior o la tabla inferior.For instance, if you sum up a field from TableX and then choose to filter by a field on TableY, then it’s not clear how the filter should travel, through the top table or the bottom table. Un ejemplo común de este tipo de modelo es que la Tabla X sea una tabla de ventas con los datos reales y la Tabla Y de datos de presupuesto.A common example for this kind of pattern is TableX to be a Sales table with actuals data and for TableY to be budget data. A continuación, las tablas en la parte central son tablas de búsqueda que utilizan las dos tablas, como la de división o de región.Then, the tables in the middle are lookup tables that both tables use, such as Division or Region.

De igual modo que con las relaciones activas e inactivas, Power BI Desktop no permitirá que una relación se establezca en Ambos si creará ambigüedad en los informes.Just like with active/inactive relationships, Power BI Desktop won’t allow a relationship to be set as Both if it will create ambiguity in reports. Hay varias maneras diferentes para tratar con esto. Estas dos son las más comunes:There are several different ways you can deal with this, here are the two most common:

  • Eliminar o marcar las relaciones como inactivas para reducir la ambigüedad.Delete or mark relationships as inactive to reduce ambiguity. A continuación, puede establecer un filtro cruzado de relación en Ambos.Then you might be able to set a relationship cross filtering as Both.
  • Agregar una tabla dos veces (con un nombre diferente la segunda vez) para eliminar los bucles.Bring in a table twice (with a different name the second time) to eliminate loops. Esto hace que el patrón de relaciones como un esquema de estrella.This makes the pattern of relationships like a star schema. Con un esquema de estrella todas las relaciones pueden establecerse en Ambos.With a star schema all of the relationships can be set to Both.

Relación activa incorrectaWrong active relationship

Cuando Power BI Desktop crea automáticamente relaciones, a veces encuentra más de una relación entre dos tablas.When Power BI Desktop automatically creates relationships, it sometimes encounters more than one relationship between two tables. Cuando esto sucede solo una de las relaciones se establece para estar activa.When this happens only one of the relationships is set to be active. La relación activa actúa como la relación predeterminada para que al elegir los campos de dos tablas diferentes, Power BI Desktop pueda crear automáticamente una visualización para usted.The active relationship serves as the default relationship so that when you choose fields from two different tables, Power BI Desktop can automatically create a visualization for you. Sin embargo, en algunos casos la relación seleccionada de forma automática puede ser incorrecta.However, in some cases the automatically selected relationship can be wrong. Puede usar el cuadro de diálogo Administrar relaciones para establecer una relación como activa o inactiva, o bien puede establecer la relación activa en el cuadro de diálogo Editar relación.You can use the Manage Relationships dialog to set a relationship as active or inactive, or you can set the active relationship in the Edit relationship dialog.

Para garantizar que haya una relación predeterminada, Power BI Desktop solo permite una relación única activa entre dos tablas en un momento dado.To ensure there’s a default relationship, Power BI Desktop only allows a single active relationship between two tables at a given time. Por lo tanto, debe establecer primero la relación actual como inactiva y, a continuación, establecer la relación que desea que esté activa.So, you must first set the current relationship as inactive and then set the relationship you want to be active.

Veamos un ejemplo.Let’s look at an example. Esta primera tabla es ProjectTickets y la tabla siguiente es EmployeeRole.This first table is ProjectTickets, and the next table is EmployeeRole.

ProjectTicketsProjectTickets

TicketTicket OpenedByOpenedBy SubmittedBySubmittedBy HoursHours ProjectProject DateSubmitDateSubmit
10011001 Perham, TomPerham, Tom Brewer, AlanBrewer, Alan 2222 AzulBlue 1/1/20131/1/2013
10021002 Roman, DanielRoman, Daniel Brewer, AlanBrewer, Alan 2626 RojoRed 2/1/20132/1/2013
10031003 Roth, DanielRoth, Daniel Ito, ShuIto, Shu 3434 AmarilloYellow 12/4/201212/4/2012
10041004 Perham, TomPerham, Tom Brewer, AlanBrewer, Alan 1313 NaranjaOrange 1/2/20121/2/2012
10051005 Roman, DanielRoman, Daniel Bowen, EliBowen, Eli 2929 PúrpuraPurple 10/1/201310/1/2013
10061006 Roth, DanielRoth, Daniel Bento, NunoBento, Nuno 3535 VerdeGreen 2/1/20132/1/2013
10071007 Roth, DanielRoth, Daniel Hamilton, DavidHamilton, David 1010 AmarilloYellow 10/1/201310/1/2013
10081008 Perham, TomPerham, Tom Han, MuHan, Mu 2828 NaranjaOrange 1/2/20121/2/2012
10091009 Roman, DanielRoman, Daniel Ito, ShuIto, Shu 2222 PúrpuraPurple 2/1/20132/1/2013
10101010 Roth, DanielRoth, Daniel Bowen, EliBowen, Eli 2828 VerdeGreen 10/1/201310/1/2013
10111011 Perham, TomPerham, Tom Bowen, EliBowen, Eli 99 AzulBlue 10/15/201310/15/2013

EmployeeRoleEmployeeRole

EmployeeEmployee RoleRole
Bento, NunoBento, Nuno Administrador del proyectoProject Manager
Bowen, EliBowen, Eli Responsable del proyectoProject Lead
Brewer, AlanBrewer, Alan Administrador del proyectoProject Manager
Hamilton, DavidHamilton, David Responsable del proyectoProject Lead
Han, MuHan, Mu Responsable del proyectoProject Lead
Ito, ShuIto, Shu Responsable del proyectoProject Lead
Perham, TomPerham, Tom Patrocinador del proyectoProject Sponsor
Roman, DanielRoman, Daniel Patrocinador del proyectoProject Sponsor
Roth, DanielRoth, Daniel Patrocinador del proyectoProject Sponsor

En realidad hay dos relaciones aquí.There are actually two relationships here. Una entre SubmittedBy en la tabla ProjectTickets y Employee en la tabla EmployeeRole, y la otra entre OpenedBy en la tabla ProjectTickets y Employee en la tabla EmployeeRole.One is between SubmittedBy in the ProjectTickets table and Employee in the EmployeeRole table, and the other is between OpenedBy in the ProjectTickets table and Employee in the EmployeeRole table.

Si agregamos ambas relaciones al modelo (OpenedBy primero), el cuadro de diálogo Administrar relaciones mostrará que OpenedBy está activo:If we add both relationships to the model (OpenedBy first), then the Manage Relationships dialog will show that OpenedBy is active:

Ahora, si creamos un informe que usa los campos Role y Employee de EmployeeRole, y el campo Hours de ProjectTickets en una visualización de la tabla en el lienzo del informe, solo veremos patrocinadores del proyecto porque son los únicos que abrieron un vale del proyecto.Now, if we create a report that uses Role and Employee fields from EmployeeRole, and the Hours field from ProjectTickets in a table visualization in the Report canvas, we’ll see only project sponsors because they’re the only ones that opened a project ticket.

Podemos cambiar la relación activa y obtener SubmittedBy en lugar de OpenedBy.We can change the active relationship and get SubmittedBy instead of OpenedBy. En Administrar relaciones, desactivamos la relación ProjectTickets(OpenedBy) con EmployeeRole(Employee) y, a continuación, activamos la relación Project Tickets(SubmittedBy) con EmployeeRole(Employee).In Manage Relationships, we uncheck the ProjectTickets(OpenedBy) to EmployeeRole(Employee) relationship, and then we check the Project Tickets(SubmittedBy) to EmployeeRole(Employee) relationship.

Vea todas las relaciones en la vista de relacionesSee all of your relationships in Relationship View

A veces, el modelo tiene varias tablas y relaciones complejas entre ellas.Sometimes your model has multiple tables and complex relationships between them. Vista de relaciones en Power BI Desktop muestra todas las relaciones en el modelo, su dirección y la cardinalidad en un diagrama personalizable y fácil de entender.Relationship View in Power BI Desktop shows all of the relationships in your model, their direction, and cardinality in an easy to understand and customizable diagram. Para más información, consulte Vista de relaciones en Power BI Desktop.To learn more, see Relationship View in Power BI Desktop.