Relazione tra misura di una query e un range di valori di un'altra tabella L’argomento è risolto

Non è propriamente un programma di BI, ma nelle sue versioni più recenti anche Excel può fare grandi cose!

Moderatore: Utilizzo_prof_Excel

Rispondi

Miky
Messaggi: 22 | Topic creati
Iscritto il: mer 22 mar 2023, 10:52

Relazione tra misura di una query e un range di valori di un'altra tabella

Messaggio da Miky »

Ciao
Scusate per la domanda forse banale.
Ho due query nel modello di dati.
Dalla prima ottengo una Misura del totale delle vendite, che poi viene filtra per periodo.

Nella seconda ho un elenco di range di vendite, ad esempio
Id 1; Min 0; Max 1.000; Range 0 - 1000
Id 2 ;Min 1001; Max 10.000; Range 1001 - 10.000
ecc...

Ora, come faccio a metterle in relazione tra loro?
Ovvero se nel 2022 TotVendite e' stato 1000 vorrei ritrovarmi con il Range con Id 1
Se nel 2023 TotVendite e' stato di 5000 vorrei ottenere il Range con Id 2

Grazie in anticipo
Miky


Avatar utente

Andrea90
Messaggi: 2237 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Bologna
Ringraziato: 671 volte
Contatta:

Relazione tra misura di una query e un range di valori di un'altra tabella

Messaggio da Andrea90 »

Miky,

Le puoi mettere in relazione o tramite PowerQuery, creando un campo nella prima tabella che per ciascuna riga identifichi il codice del range relativo al dato del totale vendite corrente.

Stessa cosa potresti ottenerla tramite DAX con una colonna calcolata.

Una volta che riesci ad aggiungere il campo "chiave" potrai creare la tua relazione dentro al modello dati.

Questo se vuoi ottenere una classifica "statica", nel senso che se la prima tabella ha il dettaglio massimo per [Anno], e a te serve avere la categoria corrispondente per Anno, allora puoi far riferimento a colonne calcolate.

Altrimenti, se vuoi avere il dato del range, sulla base delle selezioni che di volta in volta andrai a fare nel report (es° seleziono per anno, mese, trimestre, cliente, ecc..) allora devi fare affidamento su una misura.

Andrea
Se hai gradito l'aiuto che hai ricevuto considera di contribuire alle spese per il mantenimento del forum facendo una libera DONAZIONE --> Link

Ricordarsi di segnare come "RISOLTE" le discussioni per le quali si è ricevuto un feedback positivo. Per vedere come fare --> Link

Autore del topic
Miky
Messaggi: 22 | Topic creati
Iscritto il: mer 22 mar 2023, 10:52

Relazione tra misura di una query e un range di valori di un'altra tabella

Messaggio da Miky »

Grazie per la risposta
Temo pero' di non aver compreso bene come applicarla.
La query vendite ha migliaia di record, ogni record presenta una campo Importo, un campo Data ed una misura TotVendite che e' la somma degli importi.

Nel report l'utente filtra per anni tramite il filtro "sequenza temporale".

Quindi, in funzione del valore di TotVendite ottenuto dopo aver filtrato, vorrei che venisse dedotto il Range corrispondente.

Qualcosa tipo Misura: = if(TotVendite >= 0 AND TotVendite <= 1000 ; 1, ...) e poi l'Id ottenuto dalla misura andrebbe relazionato con la query Ranges.

Pero' non voglio scriverlo hardcoded in quanto i valori dei range potrebbero esser modificati.
Avatar utente

Andrea90
Messaggi: 2237 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Bologna
Ringraziato: 671 volte
Contatta:

Relazione tra misura di una query e un range di valori di un'altra tabella

Messaggio da Andrea90 »

Miky,

Non puoi creare relazioni tra tabelle se non esiste un campo chiave che le leghi, quindi la prima soluzione che ti ho fornito non è adatta al tuo caso poiché non vuoi una cosa statica, ma un "giudizio" dinamico basato sulle selezioni effettuate dall'utente.

Dunque devi creare una misura, e per non reinventare la ruota ti allego un link dove c'è una guida che riguarda un caso simile al tuo:

https://www.daxpatterns.com/dynamic-segmentation/

Ovviamente devi possedere un po' di nozioni di DAX per poterlo implementare.

Andrea
Se hai gradito l'aiuto che hai ricevuto considera di contribuire alle spese per il mantenimento del forum facendo una libera DONAZIONE --> Link

Ricordarsi di segnare come "RISOLTE" le discussioni per le quali si è ricevuto un feedback positivo. Per vedere come fare --> Link

Autore del topic
Miky
Messaggi: 22 | Topic creati
Iscritto il: mer 22 mar 2023, 10:52

Relazione tra misura di una query e un range di valori di un'altra tabella

Messaggio da Miky »

Super
Grazie mille!
Ora testo.

Autore del topic
Miky
Messaggi: 22 | Topic creati
Iscritto il: mer 22 mar 2023, 10:52

Relazione tra misura di una query e un range di valori di un'altra tabella

Messaggio da Miky »

Allora
La soluzione di cui sopra per me e' ancora difficile da risolvere, ma piu' che' altro perche' conosco poco gli strumenti, le funzioni e la sintassi, quindi faccio fatica a debuggare, la logica invece credo di averla compresa.

Invece, per ora ho risolto cosi:

Codice: Seleziona tutto

=
VAR importo =
    SUM ( vendite[importo] )
VAR RangeImporto =
    SUMMARIZE (
        FILTER (
            'Ranges';
            importo > 'Ranges'[importoMin]
                && importo <= 'Ranges'[importoMax]
        );
        'Ranges'[NomeRange]
    )
RETURN
    RangeImporto

Ho usato SUMMARIZE per ottenere il valore di un solo campo ma non ne sono del tutto convinto.
Avatar utente

Andrea90
Messaggi: 2237 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Bologna
Ringraziato: 671 volte
Contatta:

Relazione tra misura di una query e un range di valori di un'altra tabella

Messaggio da Andrea90 »

Miky,

Il codice delle misure che pubblichi va inserito negli appositi tagcode, se non sai come fare leggi qui: viewtopic.php?p=5293#p5293

Per questa volta faccio io... Consiglio sempre di formattarlo anche il codice, così da essere più semplice la lettura.

Una soluzione alternativa:

Codice: Seleziona tutto

=
VAR CurValue = [TotValue]
VAR CatSel =
    FILTER (
        RangeTbl;
        RangeTbl[MinVal] <= CurValue
            && CurValue <= RangeTbl[MaxVal]
    )
VAR Result =
    SELECTCOLUMNS ( CatSel; "@Range"; RangeTbl[Name] )
RETURN
    Result
[TotValue] è una semplice misura che esegue il SUM del campo valore (preferisco crearle a parte le misure che poi riutilizzo dentro altre formule).

Ma comunque la logica rimane quella che hai indicato tu.

Andrea
Se hai gradito l'aiuto che hai ricevuto considera di contribuire alle spese per il mantenimento del forum facendo una libera DONAZIONE --> Link

Ricordarsi di segnare come "RISOLTE" le discussioni per le quali si è ricevuto un feedback positivo. Per vedere come fare --> Link

Autore del topic
Miky
Messaggi: 22 | Topic creati
Iscritto il: mer 22 mar 2023, 10:52

Relazione tra misura di una query e un range di valori di un'altra tabella

Messaggio da Miky »

Chiedo venia per i tag code.

Grazie ancora
Miky
Avatar utente

Andrea90
Messaggi: 2237 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Bologna
Ringraziato: 671 volte
Contatta:

Relazione tra misura di una query e un range di valori di un'altra tabella

Messaggio da Andrea90 »

Miky,

Era la prima volta, nessun problema.

Un'altra cosa che andrebbe fatta, è marcare come "Risolta" la discussione, a beneficio di chi verrà dopo di te.

Se non sai come si fa qui c'è l'apposito link (cerca la parte in cui si parla del "RISOLTO"):
viewtopic.php?t=127

Andrea
Se hai gradito l'aiuto che hai ricevuto considera di contribuire alle spese per il mantenimento del forum facendo una libera DONAZIONE --> Link

Ricordarsi di segnare come "RISOLTE" le discussioni per le quali si è ricevuto un feedback positivo. Per vedere come fare --> Link
Rispondi