relazioni tabelle
Moderatore: Utilizzo_prof_Excel
-
- Messaggi: 9 | Topic creati
- Iscritto il: gio 5 ott 2023, 10:49
relazioni tabelle
Buongiorno, ho delle difficoltà a creare una relazione in power pivot.
Due tabelle (TA e TB) sono correlate da un elemento "PRODOTTO" con relazione molti-uno. Entrambi hanno delle QUANTITA' (QTA e QTB) che devo CONFRONTARE PER DIFFERENZA .
Mi sono quindi creato le due misure con linguaggio DAX relative alle quantità quindi SUM(QTA) e SUM(QTB) e una MISURA DI DIFFERENZA = SUM(QTA - SUM(QTB).
A questo punto le tabelle possono essere confrontate ed in effetti il tutto funziona.
IL PROBLEMA è che a questo punto devo aggiungere un campo "SOTTOPRODOTTO" negli elementi riga della pivot. La colonna sottoprodotto sta nella TA.
Se aggiungo il campo "SOTTOPRODOTTO" però risulta non correlato alla TB.
QUESTITO: non capisco sinceramente come la relazione funziona solo parzialmente. Perché nel confronto delle quantità non ci sono problemi ma salta quando si aggiunge tra gli elementi riga della pivot il sottoprodotto.
Grazie
Marco
Due tabelle (TA e TB) sono correlate da un elemento "PRODOTTO" con relazione molti-uno. Entrambi hanno delle QUANTITA' (QTA e QTB) che devo CONFRONTARE PER DIFFERENZA .
Mi sono quindi creato le due misure con linguaggio DAX relative alle quantità quindi SUM(QTA) e SUM(QTB) e una MISURA DI DIFFERENZA = SUM(QTA - SUM(QTB).
A questo punto le tabelle possono essere confrontate ed in effetti il tutto funziona.
IL PROBLEMA è che a questo punto devo aggiungere un campo "SOTTOPRODOTTO" negli elementi riga della pivot. La colonna sottoprodotto sta nella TA.
Se aggiungo il campo "SOTTOPRODOTTO" però risulta non correlato alla TB.
QUESTITO: non capisco sinceramente come la relazione funziona solo parzialmente. Perché nel confronto delle quantità non ci sono problemi ma salta quando si aggiunge tra gli elementi riga della pivot il sottoprodotto.
Grazie
Marco
-
- Messaggi: 2318 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 677 volte
- Contatta:
relazioni tabelle
@MarcoMG,
Il modo con cui relazioni le tabelle influenza la capacità di alcuni campi di poter "filtrare" valori presenti in un'altra. Se la tua Tabella TA è sul lato molti della relazione con la tabella TB, il campo SOTTOPRODOTTO non sarà in grado di calcolarti correttamente il valore somma di QTB.
DAX richiede particolare attenzione a queste dinamiche, ecco perché chiediamo sempre un allegato di un file demo, basta anche solo prendere un campo da una tabella piuttosto che da un'altra e la stessa misura potrebbe non funzionare più correttamente.
Andrea
Il modo con cui relazioni le tabelle influenza la capacità di alcuni campi di poter "filtrare" valori presenti in un'altra. Se la tua Tabella TA è sul lato molti della relazione con la tabella TB, il campo SOTTOPRODOTTO non sarà in grado di calcolarti correttamente il valore somma di QTB.
DAX richiede particolare attenzione a queste dinamiche, ecco perché chiediamo sempre un allegato di un file demo, basta anche solo prendere un campo da una tabella piuttosto che da un'altra e la stessa misura potrebbe non funzionare più correttamente.
Andrea
-
Autore del topic - Messaggi: 9 | Topic creati
- Iscritto il: gio 5 ott 2023, 10:49
relazioni tabelle
Si esatto. Il caso é esattamente quello descritto. 'é un modo per "aggirare questo problema?"
-
- Messaggi: 2318 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 677 volte
- Contatta:
relazioni tabelle
@MarcoMG,
Non è un problema, è il corretto modo di agire. Il tutto sta su come si struttura il modello dati per renderlo conforme all'analisi che bisogna fare.
Tieni presente che la complessità delle formule DAX e la bontà del modello sono tra loro inversamente proporzionali, più il modello è buono e ben progettato minore è la necessità di ricorrere a formule DAX complesse.
Quindi bisogna spendere del tempo nel progettare il modello. DAX e PowerBI in generale richiedono un buono studio a monte, prima di lanciarsi nella creazione di report.
Se non si agisce sul modello un modo potrebbe essere ad esempio di ricorrere ai modifiers di CALCULATE come ad esempio CROSSFILTER, oppure rendere la relazione tra le due tabelle bidirezionale (entrambe le soluzioni le lascerei a chi ha dimestichezza con lo strumento e sa riconoscere bene i pro e i contro, in particolar modo la seconda opzione, che magari non adesso, ma in futuro con l'aggiunta di ulteriori tabelle al modello potrebbe provocare problemi di ambiguity).
Andrea
Non è un problema, è il corretto modo di agire. Il tutto sta su come si struttura il modello dati per renderlo conforme all'analisi che bisogna fare.
Tieni presente che la complessità delle formule DAX e la bontà del modello sono tra loro inversamente proporzionali, più il modello è buono e ben progettato minore è la necessità di ricorrere a formule DAX complesse.
Quindi bisogna spendere del tempo nel progettare il modello. DAX e PowerBI in generale richiedono un buono studio a monte, prima di lanciarsi nella creazione di report.
Se non si agisce sul modello un modo potrebbe essere ad esempio di ricorrere ai modifiers di CALCULATE come ad esempio CROSSFILTER, oppure rendere la relazione tra le due tabelle bidirezionale (entrambe le soluzioni le lascerei a chi ha dimestichezza con lo strumento e sa riconoscere bene i pro e i contro, in particolar modo la seconda opzione, che magari non adesso, ma in futuro con l'aggiunta di ulteriori tabelle al modello potrebbe provocare problemi di ambiguity).
Andrea
-
Autore del topic - Messaggi: 9 | Topic creati
- Iscritto il: gio 5 ott 2023, 10:49
relazioni tabelle
Allego il file di esempio.
Non saprei come agire sul modello per evitare di dover ricorrere ai ai modifiers di CALCULATE
grazie
Marco
Non saprei come agire sul modello per evitare di dover ricorrere ai ai modifiers di CALCULATE
grazie
Marco
- Allegati
-
- esempio_power.pivot_2.xlsx
- (217.03 KiB) Scaricato 12 volte
-
- Messaggi: 2318 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 677 volte
- Contatta:
relazioni tabelle
@MarcoMG,
Quale è il risultato che vorresti ottenere?
Perché se in una tabella hai un dato per il livello di dettaglio uguale a [Prodotto], ed un'altra tabella con livello di dettaglio [Sottoprodotto] che logica utilizzi per confrontare i due valori?
Ad esempio tu hai che il [Prodotto] = Albicocche vale 6
Poi in un'altra tabella hai 3 diverse tipologie ([Sottoprodotto]) di Albicocche, con valori 1, 1 e 2.
Quando crei una matrice che ha sulle righe i campi [Prodotto] e [Sottoprodotto] con un valore di qtà pari appunto a 1, 1 e 2, quel 6 relativo al [Prodotto] come lo consideri ?
Andrea
Quale è il risultato che vorresti ottenere?
Perché se in una tabella hai un dato per il livello di dettaglio uguale a [Prodotto], ed un'altra tabella con livello di dettaglio [Sottoprodotto] che logica utilizzi per confrontare i due valori?
Ad esempio tu hai che il [Prodotto] = Albicocche vale 6
Poi in un'altra tabella hai 3 diverse tipologie ([Sottoprodotto]) di Albicocche, con valori 1, 1 e 2.
Quando crei una matrice che ha sulle righe i campi [Prodotto] e [Sottoprodotto] con un valore di qtà pari appunto a 1, 1 e 2, quel 6 relativo al [Prodotto] come lo consideri ?
Andrea
-
Autore del topic - Messaggi: 9 | Topic creati
- Iscritto il: gio 5 ott 2023, 10:49
relazioni tabelle
Si in effetti c'è un altro filtro che non ho messo nel modello (scusami).
Allego il file nuovo.
Il risultato che vorrei ottenere è la differenza tra il [prodotto] Tab_B e Tab_A filtrato per il [proprietario] ma con l'indicazione nelle righe anche del [sottoprodotto] .
Ad esempio: la differenza del [prodotto] albicocche se il proprietario è Marco sarà: 6 - 1 perché Marco è proprietario di una sola Albicocca. E fino a qui funziona. Ciò che non mi funziona è che io nella matrice vorrei visualizzare anche il [sottoprodotto] quindi in questo caso "albicocche gialle"
Grazie
Allego il file nuovo.
Il risultato che vorrei ottenere è la differenza tra il [prodotto] Tab_B e Tab_A filtrato per il [proprietario] ma con l'indicazione nelle righe anche del [sottoprodotto] .
Ad esempio: la differenza del [prodotto] albicocche se il proprietario è Marco sarà: 6 - 1 perché Marco è proprietario di una sola Albicocca. E fino a qui funziona. Ciò che non mi funziona è che io nella matrice vorrei visualizzare anche il [sottoprodotto] quindi in questo caso "albicocche gialle"
Grazie
- Allegati
-
- esempio_power.pivot_2 (1).xlsx
- (243.68 KiB) Scaricato 8 volte
-
- Messaggi: 2318 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 677 volte
- Contatta:
relazioni tabelle
@MarcoMG,
La formula per la TabB:
Il modello:
1) Collega Tabella B con Tabella C tramite [PRODOTTO]
2) Collega Tabella C con Tabella A tramite [SOTTOPRODOTTO]
Andrea
La formula per la TabB:
Codice: Seleziona tutto
=
CALCULATE (
SUM ( Tabella_B[QUANTITA'] ),
CROSSFILTER ( Tabella_C[SOTTOPRODOTTO], Tabella_A[SOTTOPRODOTTO], BOTH ),
CROSSFILTER ( Tabella_B[PRODOTTO], Tabella_C[PRODOTTO], BOTH )
)
1) Collega Tabella B con Tabella C tramite [PRODOTTO]
2) Collega Tabella C con Tabella A tramite [SOTTOPRODOTTO]
Andrea
-
Autore del topic - Messaggi: 9 | Topic creati
- Iscritto il: gio 5 ott 2023, 10:49
relazioni tabelle
Ciao Andrea. Mi rendo conto ora non ti avevo risposto. Grazie per il prezioso aiuto! Marco
-
- Messaggi: 2318 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 677 volte
- Contatta:
relazioni tabelle
@MarcoMG,
Ricordati di assegnare lo stato risolto alla discussione, se non sai come fare leggi qui: viewtopic.php?p=6576#p6576
Andrea
Ricordati di assegnare lo stato risolto alla discussione, se non sai come fare leggi qui: viewtopic.php?p=6576#p6576
Andrea