Creare e gestire le relazioni in Power BI Desktop

Quando si dispone di più tabelle, è probabile che si eseseguono alcune analisi usando i dati di tutte queste tabelle. Le relazioni tra le tabelle sono necessarie per calcolare con precisione i risultati e visualizzare le informazioni corrette nei report. Nella maggior parte dei casi non è necessario eseguire alcuna operazione. La funzionalità di correzione automatica esegue automaticamente questa operazione. Tuttavia, a volte potrebbe essere necessario creare relazioni manualmente o apportare modifiche a una relazione. In entrambi i casi, è importante comprendere le relazioni in Power BI Desktop e come crearle e modificarle.

Rilevamento automatico durante il caricamento

Se si eseguono query su due o più tabelle contemporaneamente, quando i dati vengono caricati, Power BI Desktop tenta di trovare e creare relazioni automaticamente. Le opzioni di relazione Cardinalità, Direzione filtro incrociato e Rendi attiva questa relazione vengono impostate automaticamente. Power BI Desktop esamina i nomi delle colonne nelle tabelle su cui si sta eseguendo una query per determinare se sono presenti potenziali relazioni. In caso affermativo, tali relazioni vengono create automaticamente. Se Power BI Desktop non riesce a determinare con un livello elevato di attendibilità esiste una corrispondenza, non crea la relazione. Tuttavia, è comunque possibile usare la finestra di dialogo Gestisci relazioni per creare o modificare manualmente le relazioni.

Creare una relazione con il rilevamento automatico

Nella scheda Modellazione selezionare Gestisci relazioni>Rilevamento automatico.

Animation showing how to create a relationship with autodetect.

Creare manualmente una relazione

  1. Nella scheda Modellazione selezionare Gestisci relazioni>Nuovo.

  2. Nella finestra di dialogo Crea relazione selezionare una tabella nell'elenco a discesa della prima tabella. Selezionare la colonna da usare nella relazione.

  3. Nel secondo elenco a discesa tabella selezionare l'altra tabella desiderata nella relazione. Selezionare l'altra colonna da usare e quindi selezionare OK.

    Animation showing how to create a manual relationship.

Per impostazione predefinita, Power BI Desktop configura automaticamente le opzioni Cardinalità (direzione), Direzione filtro incrociato e Rendi attiva questa relazione per la nuova relazione. Tuttavia, se necessario, è possibile modificare queste impostazioni. Per altre informazioni, vedere Informazioni sulle opzioni aggiuntive.

Se nessuna delle tabelle selezionate per la relazione ha valori univoci, verrà visualizzato l'errore seguente: una delle colonne deve avere valori univoci. Almeno una tabella in una relazione deve avere un elenco distinto e univoco di valori chiave, un requisito comune per tutte le tecnologie di database relazionali.

Se si verifica l'errore, esistono due modi per risolvere il problema:

  • Usare Rimuovi duplicati per creare una colonna con valori univoci . Lo svantaggio di questo approccio è che è possibile perdere informazioni quando vengono rimosse righe duplicate. Spesso una chiave (riga) viene duplicata per un motivo valido.
  • Aggiungere una tabella intermedia creata dall'elenco di valori di chiave distinti al modello, che verrà quindi collegata a entrambe le colonne originali nella relazione.

Per ulteriori informazioni, vedi questo post di blog.

In alternativa, nei layout dei diagrammi di visualizzazione modello è possibile trascinare e rilasciare una colonna da una tabella a una colonna in un'altra tabella per creare una relazione.

Modifica di una relazione

Esistono due modi per modificare una relazione in Power BI.

Il primo metodo per modificare una relazione consiste nell'utilizzare le relazioni di modifica nel riquadro Proprietà della visualizzazione Modello, in cui è possibile selezionare qualsiasi riga tra due tabelle per visualizzare le opzioni di relazione nel riquadro Proprietà . Assicurarsi di espandere il riquadro Proprietà per visualizzare le opzioni di relazione.

Screenshot of adjusting relationships in the properties pane.

È anche possibile visualizzare una dimostrazione video delle relazioni di modifica nel riquadro Proprietà .

L'altro metodo di modifica di una relazione consiste nell'usare la finestra di dialogo Editor relazioni, che è possibile aprire molti modi dall'interno di Power BI Desktop. L'elenco seguente mostra diversi modi in cui è possibile aprire la finestra di dialogo Editor relazioni:

Dalla visualizzazione Report eseguire una delle operazioni seguenti:

  • Selezionare la barra multifunzione >Modellazione Gestisci relazioni, quindi selezionare la relazione e selezionare Modifica.
  • Selezionare una tabella nell'elenco Campi, quindi selezionare la barra multifunzione> Strumenti tabella Gestisci relazioni, quindi selezionare la relazione e quindi selezionare Modifica.

Nella visualizzazione Dati selezionare la barra multifunzione> Strumenti tabella Gestisci relazioni, quindi selezionare la relazione e quindi scegliere Modifica.

Dalla visualizzazione Modello eseguire una delle operazioni seguenti:

  • Selezionare la barra multifunzione> Home Gestisci relazioni, quindi scegliere la relazione e quindi selezionare Modifica.
  • Fare doppio clic su qualsiasi riga tra due tabelle.
  • Fare clic con il pulsante destro del mouse su qualsiasi riga tra due tabelle e scegliere Proprietà.
  • Selezionare una riga tra due tabelle, quindi scegliere Apri editor relazioni nel riquadro Proprietà .

Infine, è anche possibile modificare una relazione da qualsiasi visualizzazione, fare clic con il pulsante destro del mouse o selezionare i puntini di sospensione per accedere al menu di scelta rapida di qualsiasi tabella, quindi scegliere Gestisci relazioni, selezionare la relazione e quindi selezionare Modifica

L'immagine seguente mostra uno screenshot della finestra Modifica relazione .

Screenshot of the edit relationship window.

Modifica delle relazioni tramite metodi diversi

L'uso della finestra di dialogo Modifica relazioni è un'esperienza più guidata per la modifica delle relazioni in Power BI ed è attualmente in anteprima. È possibile visualizzare un'anteprima dei dati in ogni tabella. Quando si selezionano colonne diverse, la finestra convalida automaticamente la relazione e offre le selezioni appropriate di cardinalità e filtro incrociato.

La modifica delle relazioni nel riquadro Proprietà è un approccio semplificato alla modifica delle relazioni in Power BI. Vengono visualizzati solo i nomi e le colonne delle tabelle da cui è possibile scegliere, non viene visualizzata un'anteprima dei dati e le scelte di relazione effettuate vengono convalidate solo quando si seleziona Applica modifiche. L'uso del riquadro Proprietà e del relativo approccio semplificato riduce il numero di query generate durante la modifica di una relazione, che potrebbe essere importante per gli scenari di Big Data, soprattutto quando si usano connessioni DirectQuery. Le relazioni create tramite il riquadro Proprietà possono anche essere più avanzate rispetto alle relazioni consentite nella finestra di dialogo Modifica relazioni.

È anche possibile selezionare più relazioni nei layout dei diagrammi di visualizzazione modello premendo CTRL e selezionando più righe per scegliere più relazioni. Le proprietà comuni possono essere modificate nel riquadro Proprietà e Applica modifiche elaborano le modifiche in una transazione.

È anche possibile eliminare relazioni singole o multi-selezionate premendo Elimina sulla tastiera. Non è possibile annullare l'azione di eliminazione, quindi una finestra di dialogo richiede di confermare l'eliminazione delle relazioni.

Importante

La modifica delle relazioni nella funzionalità del riquadro delle proprietà è attualmente in anteprima. Durante l'anteprima, è probabile che le funzionalità e la documentazione cambino. È necessario abilitare questa funzionalità in Power BI Desktop passando a Opzioni file > e impostazioni > Opzioni Funzionalità > di anteprima e quindi nella sezione GLOBALE selezionare la casella di controllo accanto al riquadro Relazione.

Configurare altre opzioni

Quando si crea o si modifica una relazione, è possibile configurare altre opzioni. Per impostazione predefinita, Power BI Desktop configura automaticamente più opzioni in base alla sua ipotesi migliore, che può essere diversa per ogni relazione in base ai dati nelle colonne.

Cardinalità

L'opzione Cardinalità può avere una delle impostazioni seguenti:

Molti-a-uno (*:1): una relazione molti-a-uno è il tipo di relazione più comune e predefinito. Significa che la colonna in una determinata tabella può avere più di un'istanza di un valore e l'altra tabella correlata, spesso nota come tabella di ricerca, ha una sola istanza di un valore.

Uno-a-uno (1:1): in una relazione uno-a-uno, la colonna in una tabella ha una sola istanza di un valore specifico e l'altra tabella correlata ha una sola istanza di un valore specifico.

Uno-a-molti (1:*): in una relazione uno-a-molti, la colonna in una tabella ha una sola istanza di un valore specifico e l'altra tabella correlata può avere più di un'istanza di un valore.

Molti-a-molti (*:*): con i modelli compositi è possibile stabilire una relazione molti-a-molti tra tabelle, che rimuove i requisiti per i valori univoci nelle tabelle. oltre a eliminare le soluzioni alternative precedenti, ad esempio l'introduzione di nuove tabelle solo per stabilire relazioni. Per altre informazioni, vedere Relazioni con cardinalità molti-molti.

Per altre informazioni su quando modificare la cardinalità, vedere Informazioni sulle opzioni aggiuntive.

Direzione filtro incrociato

L'opzione Direzione filtro incrociato può avere una delle impostazioni seguenti:

Entrambi: a scopo di filtro, entrambe le tabelle vengono considerate come se fossero una singola tabella. L'impostazione Both funziona bene con una singola tabella con molte tabelle di ricerca che lo circondano. Un esempio è una tabella sales actuals con una tabella di ricerca per il reparto. Questa configurazione è spesso denominata configurazione dello schema star (una tabella centrale con diverse tabelle di ricerca). Tuttavia, se sono presenti due o più tabelle con tabelle di ricerca (con alcune in comune), non è consigliabile usare entrambe le impostazioni. Per continuare l'esempio precedente, in questo caso è disponibile anche una tabella delle vendite di budget che registra il budget di destinazione per ogni reparto. E la tabella reparto è connessa sia alle vendite che alla tabella del budget. Evitare l'impostazione Entrambi per questo tipo di configurazione.

Single: la direzione predefinita più comune, il che significa che le scelte di filtro nelle tabelle connesse funzionano nella tabella in cui vengono aggregati i valori. Se si importa un modello di dati di Power Pivot in Excel 2013 o versioni precedenti, tutte le relazioni avranno una singola direzione.

Per altre informazioni su quando modificare la direzione del filtro incrociato, vedere Informazioni sulle opzioni aggiuntive.

Imposta come relazione attiva

Se selezionata, la relazione funge da relazione attiva e predefinita. Nei casi in cui sono presenti più relazioni tra due tabelle, la relazione attiva consente a Power BI Desktop di creare automaticamente visualizzazioni che includono entrambe le tabelle.

Per altre informazioni su quando rendere attiva una determinata relazione, vedere Informazioni sulle opzioni aggiuntive.

Informazioni sulle relazioni

Dopo aver connesso due tabelle con una relazione, è possibile usare i dati in entrambe le tabelle come se fossero una singola tabella. È quindi possibile evitare di doversi preoccupare dei dettagli delle relazioni o appiattire tali tabelle in una singola tabella prima di importarle. In molte situazioni Power BI Desktop può creare automaticamente relazioni. Tuttavia, se Power BI Desktop non riesce a determinare con un livello elevato di certezza che deve esistere una relazione tra due tabelle, non crea automaticamente la relazione. In tal caso, è necessario farlo.

Verrà ora illustrata un'esercitazione rapida per illustrare meglio il funzionamento delle relazioni in Power BI Desktop.

Suggerimento

È possibile completare questa lezione manualmente:

  1. Copiare la tabella ProjectHours seguente in un foglio di lavoro di Excel (escluso il titolo), selezionare tutte le celle e quindi selezionare Inserisci>tabella.
  2. Nella finestra di dialogo Crea tabella selezionare OK.
  3. Selezionare una cella di tabella, selezionare Nome tabella progettazione>tabella e quindi immettere ProjectHours.
  4. Eseguire la stessa operazione per la tabella CompanyProject .
  5. Importare i dati usando Recupera dati in Power BI Desktop. Selezionare le due tabelle come origine dati e quindi selezionare Carica.

La prima tabella, ProjectHours, è un record di ticket di lavoro che registrano il numero di ore in cui una persona ha lavorato su un determinato progetto.

ProjectHours

Biglietto SubmittedBy Ore Progetto DateSubmit
1001 Brewer, Alan 22 Blu 1/1/2013
1002 Brewer, Alan 26 Rosso 2/1/2013
1003 Ito, Shu 34 Giallo 12/4/2012
1004 Brewer, Alan 13 Orange 1/2/2012
1005 Bowen, Eli 29 Purple 1/10/2013
1006 Bento, Nuno 35 Verde 2/1/2013
1007 Hamilton, David 10 Giallo 1/10/2013
1008 Han, Mu 28 Orange 1/2/2012
1009 Ito, Shu 22 Purple 2/1/2013
1010 Bowen, Eli 28 Verde 1/10/2013
1011 Bowen, Eli 9 Blu 10/15/2013

Questa seconda tabella, CompanyProject, è un elenco di progetti con priorità assegnata: A, B o C.

CompanyProject

ProjName Priorità
Blu Un
Rosso G
Verde A
Giallo A
Purple G
Orange A

Si noti che ogni tabella ha una colonna di progetto. Ogni nome è leggermente diverso, ma i valori sono simili. Questa differenza è importante e ci torneremo presto.

Ora che le due tabelle sono state importate in un modello, creare un report. La prima cosa da ottenere è il numero di ore inviate dalla priorità del progetto, quindi selezionare Priorità e ore nel riquadro Campi .

Screenshot of the Priority and Hours fields selected from the Fields pane.

Se si esamina la tabella nell'area di disegno del report, si noterà che il numero di ore è 256 per ogni progetto, che è anche il totale. Chiaramente questo numero non è corretto. Perché? Il motivo è che non è possibile calcolare una somma totale di valori di una tabella (Hours nella tabella Project ), sezionata da valori in un'altra tabella (Priority nella tabella CompanyProject ) senza una relazione tra queste due tabelle.

Si creerà quindi una relazione tra queste due tabelle.

Tenere presente le colonne visualizzate in entrambe le tabelle con un nome di progetto, ma con valori simili? Queste due colonne verranno usate per creare una relazione tra le tabelle.

Perché queste colonne? Se si esamina la colonna Project nella tabella ProjectHours , vengono visualizzati valori come Blue, Red, Yellow, Orange e così via. Infatti, vengono visualizzate diverse righe con lo stesso valore. In effetti, sono disponibili molti valori di colore per Project.

Se si esamina la colonna ProjName nella tabella CompanyProject , viene visualizzato solo uno dei valori di colore per il nome del progetto. Ogni valore di colore in questa tabella è univoco ed è importante perché è possibile creare una relazione tra queste due tabelle. In questo caso, una relazione molti-a-uno. In una relazione molti-a-uno, almeno una colonna in una delle tabelle deve contenere valori univoci. Esistono altre opzioni per alcune relazioni, che verranno esaminate più avanti. Per il momento, verrà creata una relazione tra le colonne del progetto in ognuna delle due tabelle.

Per creare la nuova relazione

  1. Selezionare Gestisci relazioni nella scheda Modellazione .

  2. In Gestisci relazioni selezionare Nuovo per aprire la finestra di dialogo Crea relazione , in cui è possibile selezionare le tabelle, le colonne e le altre impostazioni desiderate per la relazione.

  3. Nel primo elenco a discesa selezionare ProjectHours come prima tabella e quindi selezionare la colonna Progetto . Questo lato è il lato molti della nostra relazione.

  4. Nel secondo elenco a discesa CompanyProject è pre-selezionato come seconda tabella. Selezionare la colonna ProjName . Questo lato è l'unico lato della nostra relazione.

  5. Accettare le impostazioni predefinite per le opzioni di relazione e quindi selezionare OK.

    Screenshot of the Create relationship dialog box.

  6. Nella finestra di dialogo Gestisci relazioni selezionare Chiudi.

Nell'interesse della piena divulgazione, hai appena creato questa relazione il modo difficile. È possibile selezionare Rilevamento automatico nella finestra di dialogo Gestisci relazioni . In effetti, la correzione automatica avrebbe creato automaticamente la relazione quando sono stati caricati i dati se entrambe le colonne hanno lo stesso nome.

Si esaminerà ora di nuovo la tabella nell'area di disegno del report.

Screenshot of the Priority and Hours fields selected from the Fields pane with new relationship.

Sembra molto meglio, vero?

Quando si sommano le ore per priorità, Power BI Desktop cerca ogni istanza dei valori di colore univoci nella tabella di ricerca CompanyProject , cerca ogni istanza di ognuno di questi valori nella tabella ProjectHours e quindi calcola un totale di somma per ogni valore univoco.

Con la correzione automatica, potresti anche non dover eseguire questa operazione.

Informazioni sulle opzioni aggiuntive

Quando viene creata una relazione, con la correzione automatica o una creata manualmente, Power BI Desktop configura automaticamente opzioni aggiuntive in base ai dati nelle tabelle. Queste opzioni di relazione aggiuntive si trovano nella parte inferiore delle finestre di dialogo Crea relazione e Modifica relazione .

Screenshot of the lower portion of the Create relationship dialog box showing Cardinality and Cross filter direction options.

Power BI imposta in genere queste opzioni automaticamente e non sarà necessario modificarle. Esistono tuttavia diverse situazioni in cui è possibile configurare manualmente queste opzioni.

Aggiornamenti automatici delle relazioni

È possibile gestire il modo in cui Power BI gestisce e regola automaticamente le relazioni nei report e nei modelli. Per specificare il modo in cui Power BI gestisce le opzioni delle relazioni, selezionare Opzioni file>e impostazioni>da Power BI Desktop e quindi selezionare Caricamento dati nel riquadro sinistro. Vengono visualizzate le opzioni per Relazioni .

Screenshot of the Options box showing the Relationships settings in the Data Load tab.

È possibile selezionare e abilitare tre opzioni:

  • Importare relazioni dalle origini dati al primo caricamento: questa opzione è selezionata per impostazione predefinita. Quando questa opzione è selezionata, Power BI controlla la presenza di relazioni definite nell'origine dati, ad esempio relazioni tra chiavi esterne e chiavi primarie nel data warehouse. Se tali relazioni esistono, vengono riflesse nel modello di dati di Power BI quando si caricano inizialmente i dati. Questa opzione consente di iniziare rapidamente a lavorare con il modello, invece di dover trovare o definire manualmente tali relazioni.

  • Aggiornare o eliminare relazioni durante l'aggiornamento dei dati: questa opzione è deselezionata per impostazione predefinita. Se la si seleziona, Power BI verifica la presenza di modifiche nelle relazioni tra origini dati quando il modello semantico viene aggiornato. Se tali relazioni sono state modificate o rimosse, Power BI rispecchia le modifiche nel proprio modello di dati, aggiornandole o eliminandole in modo che corrispondano.

    Avviso

    Se si usa la sicurezza a livello di riga che si basa sulle relazioni definite, non è consigliabile selezionare questa opzione. Se si rimuove una relazione su cui si basano le impostazioni della sicurezza a livello di riga, il modello potrebbe diventare meno sicuro.

  • Correzione automatica di nuove relazioni dopo il caricamento dei dati: questa opzione è descritta in Rilevamento automatico durante il caricamento.

Gli aggiornamenti futuri ai dati richiedono una cardinalità diversa

In genere, Power BI Desktop può determinare automaticamente la cardinalità migliore per la relazione. Se è necessario eseguire l'override dell'impostazione automatica, perché si sa che i dati cambieranno in futuro, è possibile modificarla con il controllo Cardinalità . Di seguito viene illustrato un esempio in cui è necessario selezionare una cardinalità diversa.

La tabella CompanyProjectPriority è un elenco di tutti i progetti aziendali e la relativa priorità. La tabella ProjectBudget è il set di progetti per cui è stato approvato un budget.

CompanyProjectPriority

ProjName Priorità
Blu Un
Rosso G
Verde A
Giallo A
Purple G
Orange A

ProjectBudget

Progetti approvati BudgetAllocation AllocationDate
Blu 40.000 12/1/2012
Rosso 100,000 12/1/2012
Verde 50,000 12/1/2012

Se si crea una relazione tra la colonna Progetti approvati nella tabella ProjectBudget e la colonna ProjectName nella tabella CompanyProjectPriority , Power BI imposta automaticamente cardinalità su Uno a uno (1:1) e direzione filtro incrociato su Entrambi.

Screenshot of the Create relationship dialog box with Cardinality to One to one (1:1) and Cross filter direction to Both.

Il motivo per cui Power BI rende queste impostazioni è dovuto al fatto che, per Power BI Desktop, la combinazione migliore delle due tabelle è la seguente:

ProjName Priorità BudgetAllocation AllocationDate
Blu Un 40.000 12/1/2012
Rosso B 100,000 12/1/2012
Verde A 50,000 12/1/2012
Giallo A

Purple G

Orange A

Esiste una relazione uno-a-uno tra le due tabelle perché nella colonna ProjName della tabella combinata non sono presenti valori ripetuti. La colonna ProjName è univoca, perché ogni valore si verifica una sola volta, pertanto le righe delle due tabelle possono essere combinate direttamente senza alcuna duplicazione.

Si supponga, tuttavia, di sapere che i dati cambieranno al successivo aggiornamento. Una versione aggiornata della tabella ProjectBudget include ora righe aggiuntive per i progetti Blue e Red:

ProjectBudget

Progetti approvati BudgetAllocation AllocationDate
Blu 40.000 12/1/2012
Rosso 100,000 12/1/2012
Verde 50,000 12/1/2012
Blu 80.000 01/06/2013
Rosso 90.000 01/06/2013

Queste righe aggiuntive indicano che la combinazione migliore delle due tabelle è ora simile alla seguente:

ProjName Priorità BudgetAllocation AllocationDate
Blu Un 40.000 12/1/2012
Rosso B 100,000 12/1/2012
Verde A 50,000 12/1/2012
Giallo A

Purple G

Orange A

Blu Un 80000 01/06/2013
Rosso G 90000 01/06/2013

In questa nuova tabella combinata la colonna ProjName ha valori ripetuti. Le due tabelle originali non avranno una relazione uno-a-uno dopo l'aggiornamento della tabella. In questo caso, poiché si conoscono gli aggiornamenti futuri, la colonna ProjName avrà duplicati, si vuole impostare la cardinalità su Molti su uno (*:1), con il lato molti di ProjectBudget e quello di CompanyProjectPriority.

Regolazione della direzione del filtro incrociato per un set complesso di tabelle e relazioni

Per la maggior parte delle relazioni, la direzione del filtro incrociato è impostata su Entrambi. Esistono tuttavia alcune circostanze più insolite in cui potrebbe essere necessario impostare questa opzione in modo diverso rispetto all'impostazione predefinita. Un esempio è se si importa un modello da una versione precedente di Power Pivot, in cui ogni relazione è impostata su una singola direzione.

L'impostazione Entrambi consente a Power BI Desktop di considerare tutti gli aspetti delle tabelle connesse come se fossero una singola tabella. Esistono tuttavia alcune situazioni in cui Power BI Desktop non può impostare la direzione del filtro incrociato di una relazione su Entrambi e mantenere anche un set non ambiguo di impostazioni predefinite per la creazione di report. Se una direzione filtro incrociato di una relazione non è impostata su Entrambi, in genere è perché crea ambiguità. Se l'impostazione predefinita del filtro incrociato non funziona, provare a impostarla su una determinata tabella o su Entrambi.

Il filtro incrociato a direzione singola funziona per molte situazioni. Infatti, se è stato importato un modello da Power Pivot in Excel 2013 o versioni precedenti, tutte le relazioni verranno impostate su una direzione singola. La direzione singola indica che le scelte di filtro nelle tabelle connesse funzionano sulla tabella in cui si sta verificando il lavoro di aggregazione. A volte, la comprensione del filtro incrociato può essere un po' difficile, quindi si esaminerà un esempio.

Con il filtro incrociato a direzione singola, se si crea un report che riepiloga le ore del progetto, è possibile scegliere di riepilogare (o filtrare) in base alla tabella CompanyProject e alla relativa colonna Priority o alla tabella CompanyEmployeee e alla relativa colonna City. Se tuttavia si vuole contare il numero di dipendenti per ogni progetto (una domanda meno comune), non funzionerà. Si otterrà una colonna di valori uguali. Nell'esempio seguente la direzione del filtro incrociato di entrambe le relazioni viene impostata su una singola direzione: verso la tabella ProjectHours . Nell'area Valori il campo Progetto è impostato su Conteggio:

Screenshot of the visualization tab used with the Employee and Project fields.

La specifica del filtro passerà da CompanyProject a ProjectHours (come illustrato nell'immagine seguente), ma non passerà a CompanyEmployee.

Diagram of a cross filtering example with flow from CompanyProject to ProjectHours.

Tuttavia, se si imposta la direzione del filtro incrociato su Entrambi, funzionerà. L'impostazione Entrambi consente alla specifica del filtro di fluire fino a CompanyEmployee.

Diagram of a cross filtering example with flow both ways

Con la direzione del filtro incrociato impostata su Entrambi, il report ora viene visualizzato correttamente:

Screenshot of cross filtering direction set to Both.

Il filtro incrociato di entrambe le direzioni funziona correttamente per un modello di relazioni tra tabelle, ad esempio il modello illustrato in precedenza. Questo schema è comunemente denominato schema star, come illustrato di seguito:

Diagram of cross filtering both directions in star schema.

La direzione del filtro incrociato non funziona correttamente con un modello più generale spesso presente nei database, come in questo diagramma:

Diagram of cross filtering in both directions on a database pattern.

Se si dispone di un modello di tabella simile al seguente, con i cicli, il filtro incrociato può creare un set ambiguo di relazioni. Ad esempio, se si somma un campo da TableX e quindi si sceglie di filtrare in base a un campo in TableY, non è chiaro come il filtro deve spostarsi, attraverso la tabella superiore o la tabella inferiore. Un esempio comune di questo tipo di modello è tableX come tabella di vendita con dati effettivi e per TableY come dati di budget. Le tabelle al centro sono quindi tabelle di ricerca usate da entrambe le tabelle, ad esempio divisione o area.

Come per le relazioni attive/inattive, Power BI Desktop non consente l'impostazione di una relazione su Entrambi se creerà ambiguità nei report. Esistono diversi modi per gestire questa situazione. Ecco i due più comuni:

  • Eliminare o contrassegnare le relazioni come inattive per ridurre l'ambiguità. Quindi, potrebbe essere possibile impostare un filtro incrociato delle relazioni come Entrambi.
  • Inserire una tabella due volte (con un nome diverso la seconda volta) per eliminare i cicli. In questo modo, il modello di relazioni è simile a uno schema star. Con uno schema star, tutte le relazioni possono essere impostate su Entrambi.

Relazione attiva errata

Quando Power BI Desktop crea automaticamente relazioni, talvolta incontra più di una relazione tra due tabelle. Quando si verifica questa situazione, solo una delle relazioni è impostata per essere attiva. La relazione attiva funge da relazione predefinita, in modo che quando si scelgono campi da due tabelle diverse, Power BI Desktop può creare automaticamente una visualizzazione. Tuttavia, in alcuni casi la relazione selezionata automaticamente può essere errata. Utilizzare la finestra di dialogo Gestisci relazioni per impostare una relazione come attiva o inattiva oppure impostare la relazione attiva nella finestra di dialogo Modifica relazione .

Per assicurarsi che esista una relazione predefinita, Power BI Desktop consente solo una singola relazione attiva tra due tabelle in un determinato momento. Pertanto, è prima necessario impostare la relazione corrente come inattiva e quindi impostare la relazione che si desidera essere attiva.

Esaminiamo un esempio. La prima tabella è ProjectTickets e la seconda tabella è EmployeeRole.

ProjectTickets

Biglietto OpenedBy SubmittedBy Ore Progetto DateSubmit
1001 Perham, Tom Brewer, Alan 22 Blu 1/1/2013
1002 Roman, Daniel Brewer, Alan 26 Rosso 2/1/2013
1003 Roth, Daniel Ito, Shu 34 Giallo 12/4/2012
1004 Perham, Tom Brewer, Alan 13 Orange 1/2/2012
1005 Roman, Daniel Bowen, Eli 29 Purple 1/10/2013
1006 Roth, Daniel Bento, Nuno 35 Verde 2/1/2013
1007 Roth, Daniel Hamilton, David 10 Giallo 1/10/2013
1008 Perham, Tom Han, Mu 28 Orange 1/2/2012
1009 Roman, Daniel Ito, Shu 22 Purple 2/1/2013
1010 Roth, Daniel Bowen, Eli 28 Verde 1/10/2013
1011 Perham, Tom Bowen, Eli 9 Blu 10/15/2013

EmployeeRole

Dipendente Ruolo
Bento, Nuno Responsabile di progetto
Bowen, Eli Responsabile del progetto
Brewer, Alan Responsabile di progetto
Hamilton, David Responsabile del progetto
Han, Mu Responsabile del progetto
Ito, Shu Responsabile del progetto
Perham, Tom Sponsor progetto
Roman, Daniel Sponsor progetto
Roth, Daniel Sponsor progetto

Ci sono in realtà due relazioni qui:

  • Tra Employee nella tabella EmployeeRole e SubmittedBy nella tabella ProjectTickets.
  • Tra OpenedBy nella tabella ProjectTickets e Employee nella tabella EmployeeRole .

Screenshot of a two-relationship example.

Se si aggiungono entrambe le relazioni al modello (OpenedBy per primo), la finestra di dialogo Gestisci relazioni mostra che OpenedBy è attivo:

Screenshot of a OpenedBy active in the Manage relationships dialog box.

Ora, se si crea un report che usa i campi Ruolo e Dipendente da EmployeeRole e il campo Ore da ProjectTickets in una visualizzazione tabella nell'area di disegno report, vengono visualizzati solo gli sponsor del progetto perché sono gli unici che hanno aperto un ticket di progetto.

Screenshot shows the Employee, Role, and Hours fields selected.

È possibile modificare la relazione attiva e ottenere SubmittedBy anziché OpenedBy. In Gestisci relazioni deselezionare la relazione ProjectTickets(OpenedBy) con EmployeeRole(Employee) e quindi controllare la relazione EmployeeRole(Employee) in Project Tickets(SubmittedBy).

Screenshot of changing the active relationship in the Manage relationship dialog box.

Visualizzare tutte le relazioni nella visualizzazione Relazione

In alcuni casi il modello ha più tabelle e relazioni complesse tra di esse. La visualizzazione delle relazioni in Power BI Desktop mostra tutte le relazioni nel modello, la relativa direzione e la cardinalità in un diagramma facile da comprendere e personalizzabile.

Per altre informazioni, vedere Usare la visualizzazione Relazione in Power BI Desktop.

Risoluzione dei problemi

Questa sezione fornisce indicazioni e informazioni sulla risoluzione dei problemi quando si lavora con le relazioni in Power BI.

Non è possibile determinare le relazioni tra campi

Power BI tenta di visualizzare i dati pertinenti negli oggetti visivi dedurndo le relazioni dal modello in uso. In alcuni casi tali inferenze non sono ovvie e si potrebbe essere sorpresi di visualizzare un errore nell'oggetto visivo, a indicare che non esiste alcuna relazione tra determinate colonne.

Per spiegare in che modo Power BI determina se i campi sono correlati, si userà un modello di esempio per illustrare alcuni scenari nelle sezioni seguenti. L'immagine seguente mostra il modello di esempio che verrà usato negli scenari di esempio.

Screenshot of a sample model used in troubleshooting scenarios.

Scenario 1: schema star tradizionale e nessun vincolo di misura fornito. Facendo riferimento al modello di esempio nell'immagine precedente, si esaminerà prima la metà destra delle immagini con le tabelle Vendor - Purchases - Product . Questo esempio è uno schema star tradizionale con la tabella Fact (Acquisti) e due tabelle Dimension (Product e Vendor). La relazione tra le tabelle delle dimensioni e la tabella dei fatti è da 1 a Molti (un prodotto corrisponde a molti acquisti, un fornitore corrisponde a molti acquisti). In questo tipo di schema è possibile rispondere a domande quali Quali vendite sono disponibili per il prodotto X? e Quali vendite sono disponibili per Vendor Y? e Quali prodotti vengono venduti dal fornitore Y?

Per correlare prodotti e fornitori, è possibile farlo esaminando la tabella Acquisti per verificare se è presente una voce con lo stesso prodotto e fornitore. Una query di esempio potrebbe essere simile all'esempio seguente:

Correlate Product[Color] with Vendor[Name] where CountRows(Purchases)>0

where CountRows(Purchases)>0 è un vincolo implicito che Power BI aggiunge per garantire che vengano restituiti i dati pertinenti. Eseguendo questa correlazione tramite la tabella Acquisti , è possibile restituire le associazioni di Product-Vendor che hanno almeno una voce in una tabella dei fatti, associazioni che hanno senso dal punto di vista dei dati. Ci si può aspettare qualsiasi combinazione nonsensica di Product-Vendor per cui non ci sia mai stata una vendita (che sarebbe inutile per l'analisi) non verrà visualizzato.

Scenario 2: schema star tradizionale e vincolo di misura fornito. Nell'esempio precedente dello scenario 1, se l'utente fornisce un vincolo sotto forma di colonna riepilogata (somma/media/conteggio di Qty di acquisto, ad esempio) o una misura del modello (Distinct Count of VendID), Power BI può generare una query sotto forma di esempio dell'esempio seguente:

Correlate Product[Color] with Vendor[Name] where MeasureConstraint is not blank

In questo caso, Power BI tenta di restituire combinazioni con valori significativi per il vincolo fornito dall'utente (non vuoto). Power BI non deve aggiungere anche il proprio vincolo implicito di CountRows(Purchases)>0, ad esempio quello che è stato fatto nello scenario 1 precedente, perché il vincolo fornito dall'utente è sufficiente.

Scenario 3: schema non star e nessun vincolo di misura fornito. In questo scenario si concentra l'attenzione sul centro del modello, in cui sono presenti le tabelle Sales - Product - Purchases, in cui è presente una tabella delle dimensioni (Product) e due tabelle dei fatti (Vendite, Acquisti). Poiché questo esempio non è uno schema star, non è possibile rispondere allo stesso tipo di domande dello scenario 1. Si supponga di provare a correlare acquisti e vendite, poiché Gli acquisti hanno una relazione Molti-a 1 con Product e Product ha una relazione da 1 a Molti con Sales. Le vendite e gli acquisti sono indirettamente molti-a-molti. Possiamo collegare un prodotto a molti acquisti e un prodotto a molte vendite, ma non possiamo collegare una vendita a molti acquisti o viceversa. È possibile collegare molti acquisti a molte vendite.

In questo caso, se si tenta di combinare Purchase[VenID] e Sales[CustID] in un oggetto visivo, Power BI non ha un vincolo concreto che può essere applicato, a causa della relazione Molti-a-Molti tra tali tabelle. Anche se potrebbero esserci vincoli personalizzati (non necessariamente derivanti dalle relazioni stabilite nel modello) che possono essere applicate per vari scenari, Power BI non può dedurre un vincolo predefinito esclusivamente in base alle relazioni. Se Power BI ha tentato di restituire tutte le combinazioni delle due tabelle, crea un cross join di grandi dimensioni e restituisce dati non pertinenti. Invece di questo, Power BI genera un errore nell'oggetto visivo, ad esempio quanto segue.

Screenshot of an error dialog when relationship can’t be inferred. Alternatively, Screenshot of an error dialog where relationship isn’t inferred.

Scenario 4: schema non star e vincolo di misura fornito. Se prendiamo l'esempio dello scenario 3 e aggiungiamo un vincolo fornito dall'utente sotto forma di colonna riepilogata (ad esempio Count of Product[ProdID] o una misura del modello (Sales[Total Qty]), Power BI può generare una query sotto forma di Correlate Purchase[VenID] e Sales[CustID] in cui MeasureConstraint non è vuoto.

In questo caso, Power BI rispetta il vincolo dell'utente come unico vincolo che Power BI deve applicare e restituisce le combinazioni che producono valori non vuoti. L'utente ha guidato Power BI nello scenario desiderato e Power BI applica le linee guida.

Scenario 5: quando viene fornito un vincolo di misura, ma parzialmente correlato alle colonne. In alcuni casi il vincolo di misura fornito dall'utente non è interamente correlato a tutte le colonne nell'oggetto visivo. Una misura del modello è sempre correlata a tutti gli elementi. Power BI considera questo scenario come una casella nera quando si tenta di trovare relazioni tra colonne nell'oggetto visivo e presuppone che l'utente sappia cosa sta facendo usando. Tuttavia, le colonne riepilogate sotto forma di somma, media e riepiloghi simili scelti dall'interfaccia utente possono essere correlate solo a un subset delle colonne o delle tabelle utilizzate nell'oggetto visivo in base alle relazioni della tabella a cui appartiene tale colonna. Di conseguenza, il vincolo si applica ad alcune coppie di colonne, ma non a tutti. In tal caso Power BI tenta di trovare i vincoli predefiniti che può essere applicata per le colonne non correlate dal vincolo fornito dall'utente , ad esempio nello scenario 1. Se Power BI non riesce a trovare alcun elemento, viene restituito l'errore seguente.

Screenshot of an error dialog when Power BI can’t find default constraints.

Risoluzione degli errori di relazione

Quando viene visualizzato l'errore Impossibile determinare le relazioni tra i campi , è possibile eseguire i passaggi seguenti per tentare di risolvere l'errore:

  1. Controllare il modello. È configurato in modo appropriato per i tipi di domande a cui si vuole rispondere dall'analisi? È possibile modificare alcune delle relazioni tra le tabelle? È possibile evitare di creare un numero molti indiretto a molti?

    Prendere in considerazione la conversione dello schema della forma V invertita in due tabelle e usare una relazione molti-a-molti diretta tra di esse, come descritto in Applicare relazioni molti-molti in Power BI Desktop.

  2. Aggiungere un vincolo all'oggetto visivo sotto forma di una colonna riepilogata o di una misura del modello.

  3. Se viene aggiunta una colonna riepilogata e si verifica ancora un errore, prendere in considerazione l'uso di una misura del modello.

Per altre informazioni su modelli e relazioni, vedere gli articoli seguenti: