Verifica Dati su date diverse

Il software per la BI di Microsoft, leader nel mercato
Avatar utente

Andrea90
Messaggi: 541 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Riccione
Ringraziato: 243 volte
Contatta:

Verifica Dati su date diverse

Messaggio da Andrea90 »

Ciao admanex,

Una misura non può essere utilizzata come dimensione da inserire su righe o colonne di un oggetto visivo in Dax.

Per farlo devi portare quel valore come colonna di una tabella del tuo modello dati.

Oppure calcolarti quella tabella che hai mostrato in excel, direttamente dentro PowerBi come tabella a se stante. In questo modo si aggiornerà solo all atto del refresh del modello. Ed utilizzerai i suoi campi per crearti il grafico che ti serve. La tabella, a seconda di come la crei, potrebbe (o meno) avere delle relazioni con le altre tabelle del tuo modello dati, in modo tale da poter avere anche qualche filtro a disposizione (ma è da studiare bene).

A presto,
Andrea


Se ti è piaciuta la soluzione e vuoi contribuire allo sviluppo del forum --> Donazioni

Autore del topic
admanex
Messaggi: 36 | Topic creati
Iscritto il: gio 18 mar 2021, 12:06
Luogo: Roma
Ringraziato: 1 volta

Verifica Dati su date diverse

Messaggio da admanex »

Ciao Andrea90 ,

certo una misura non può essere utilizzata, infatti il mio pensiero era proprio quello di andare a creare una colonna utilizzando la misura calcolata oppure utilizzare sull'asse delle ascisse dei contenitori per rappresentare dei numeri fissi di giorni magari con l'intervallo di 60.
IL mio problema è legato proprio al calcolo della misura oppure della tabella che devo andare a costruire, calcolare il differenziale del giorno e inserirlo non è un problema, il problema ed è qui che chiedo una mano che tipo di misura dax dovrei utilizzar per creare il mio calcolo presente nell'esempio
la % verrebbe calcolata con un DIVIDE, il mio problema creare i due oggetti:
- il numeratore (che è una sommatoria dei resi1,2,3 etc etc per anno)
- il denominatore che invece è il numero di ordini alla data di reso come rappresentato nella tabella

quindi dovrei calcolare per ogni anno l'incidenza dei resi sugli ordini. e rappresentare le relative curve d'incidenza.

grazie per l'aiuto che saprai darmi.

Autore del topic
admanex
Messaggi: 36 | Topic creati
Iscritto il: gio 18 mar 2021, 12:06
Luogo: Roma
Ringraziato: 1 volta

Verifica Dati su date diverse

Messaggio da admanex »

Buonasera a tutti,
chiedo se qualcuno ha un consiglio per risolvere il mio problema.

Grazie tante per l'aiuto che sapete darmi
Avatar utente

Andrea90
Messaggi: 541 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Riccione
Ringraziato: 243 volte
Contatta:

Verifica Dati su date diverse

Messaggio da Andrea90 »

admanex,

Ho fatto di fretta questa query table, che se utilizzata all'interno del menu Dati ti consente di creare una tabella simile a quella da te richiesta (poi dacci un occhio se effettivamente è così):

Codice: Seleziona tutto

Test =
VAR StartTable =
    ADDCOLUMNS (
        ALL ( produzione[data], produzione[data reso] ),
        "@Year", YEAR ( produzione[data] )
    )
VAR TempTable =
    ADDCOLUMNS (
        StartTable,
        "@Tot Pieces",
            VAR MyDate = produzione[data reso]
            VAR MyYear =
                YEAR ( produzione[data] )
            RETURN
                COUNTROWS (
                    FILTER ( StartTable, produzione[data] <= MyDate && [@Year] = MyYear )
                ),
        "@Run Tot",
            VAR MyYear =
                YEAR ( produzione[data] )
            VAR MyDate = produzione[data reso]
            RETURN
                COUNTROWS (
                    FILTER (
                        StartTable,
                        produzione[data reso] <= MyDate
                            && [@Year] = MyYear
                            && NOT ISBLANK ( produzione[data reso] )
                    )
                ),
        "@Day Diff", DATEDIFF ( produzione[data], produzione[data reso], DAY )
    )
VAR Result =
    ADDCOLUMNS (
        FILTER ( TempTable, NOT ISBLANK ( produzione[data reso] ) && [@Run Tot] > 0 ),
        "@%", DIVIDE ( [@Run Tot], [@Tot Pieces] )
    )
RETURN
    Result
Lascio poi a te il compito di ottimizzarla una volta capite le logiche.

Il risultato che si può ottenere è il seguente:

Immagine

Poi giocando con le varie impostazioni potrai migliorare l'aspetto visivo adattandolo alle tue reali esigenze.

Andrea
Se ti è piaciuta la soluzione e vuoi contribuire allo sviluppo del forum --> Donazioni

Autore del topic
admanex
Messaggi: 36 | Topic creati
Iscritto il: gio 18 mar 2021, 12:06
Luogo: Roma
Ringraziato: 1 volta

Verifica Dati su date diverse

Messaggio da admanex »

Ciao Andrea90 ,

ho provato la tua soluzione e funziona correttamente e ho iniziato a trasportare tutto il ragionamento sul mio file di produzione, mi restituisce l'errore di memoria insufficiente, come posso risolvere questa problematica?
Avatar utente

Andrea90
Messaggi: 541 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Riccione
Ringraziato: 243 volte
Contatta:

Verifica Dati su date diverse

Messaggio da Andrea90 »

Ciao admanex,

non so di che mole di dati stiamo parlando, comunque immagino che tu sia già in 64bit.

Hai provato a modificare la dimensione massima della cache che trovi nelle impostazioni globali di Powerbi?

Poi non dubito che si possa anche ottimizzare il codice che ti ho scritto, ma una volta comprese le logiche lo potrai fare tu in autonomia.

A presto,
Andrea
Se ti è piaciuta la soluzione e vuoi contribuire allo sviluppo del forum --> Donazioni

Autore del topic
admanex
Messaggi: 36 | Topic creati
Iscritto il: gio 18 mar 2021, 12:06
Luogo: Roma
Ringraziato: 1 volta

Verifica Dati su date diverse

Messaggio da admanex »

Ciao Andrea90 , si sono a 64 bit, e le dimensioni massime sono a 6144.

AL limite posso spezzare in pezzi la funzione dax?

grazie tante

Autore del topic
admanex
Messaggi: 36 | Topic creati
Iscritto il: gio 18 mar 2021, 12:06
Luogo: Roma
Ringraziato: 1 volta

Verifica Dati su date diverse

Messaggio da admanex »

Ciao Andrea90 ,

ho trovato la soluzione, invece di costruire la tabella con unica operazione ho aggiunto le colonne con singole operazioni e così sono riuscito a scavalcare il problema. ti faccio sapere sul risultato finale.

grazie

Autore del topic
admanex
Messaggi: 36 | Topic creati
Iscritto il: gio 18 mar 2021, 12:06
Luogo: Roma
Ringraziato: 1 volta

Verifica Dati su date diverse

Messaggio da admanex »

ciao Andrea90,

sono riuscito a mettere già la tabella nel mio file di produzione. ho il problema con questo pezzo. Mi restituisce sempre un problema di memoria. Ho provato a eliminare i Var e integrarli nella formula, ma mi restituisce errore nel risultato , mi puoi aiutare a semplificarla in qualche modo?

ti auguro un buon proseguimento di giornata


"@Run Tot",
VAR MyYear =
YEAR ( produzione[data] )
VAR MyDate = produzione[data reso]
RETURN
COUNTROWS (
FILTER (
StartTable,
produzione[data reso] <= MyDate
&& [@Year] = MyYear
&& NOT ISBLANK ( produzione[data reso] )
)
),

Autore del topic
admanex
Messaggi: 36 | Topic creati
Iscritto il: gio 18 mar 2021, 12:06
Luogo: Roma
Ringraziato: 1 volta

Verifica Dati su date diverse

Messaggio da admanex »

Ciao Andrea90 buongiorno,

volevo comunicarti che dopo un po di tentativi sono riuscito a far funzionare il tutto anche sul modello dati originario, vista la mole di date la query andava in crisi, ho dovuto creare le singole colonne e per count pezzi annui ho dovuto creare una colonna con delle condizioni e la seconda con la verifica le tre condizioni del countrow non riusciva ad elaborarle.

Grazie tante per il tuo aiuto.

buona giornata
Rispondi