MODIFICA RAPIDA MISURA

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

Moderatore: Utilizzo_prof_Excel

Rispondi
Avatar utente

Alieno86
Messaggi: 47 | Topic creati
Iscritto il: mer 9 giu 2021, 16:36
Ringraziato: 5 volte

MODIFICA RAPIDA MISURA

Messaggio da Alieno86 »

Buongiorno,
mi trovo a dover creare una trentina di misure e vorrei chiedervi se c'è possibilità di crearle velocemente;
la misura di base e questa:

Codice: Seleziona tutto

STIPENDIO BASE=
VAR FILTRO=FILTER('2019-2021';[COD_VOCE]=1 && [PRECODICE]<>"T"&&[ANNO_RIFERIM]=2020)

VAR RESULT = SUMX (FILTRO;'2019-2021'[IMPORTO_U])

RETURN
RESULT
Le misure differiscono per i diversi filtri e possono essere presenti più codici voce con legame or, ho provato a fare una cosa del genere ma non funziona,

Codice: Seleziona tutto

 
 
 STIPENDIO BASE=

VAR COD1=[COD_VOCE]=1
VAR PREC=[PRECODICE]<>"T"
VAR COMP=[ANNO_RIFERIM]=2020

VAR FILTRO=FILTER('2019-2021';COD1 &&PREC&&COMP)

VAR RESULT = SUMX (FILTRO;'2019-2021'[IMPORTO_U])

RETURN
RESULT
 


Esiste un modo per fare qualcosa del genere in modo da velocizzare la creazione delle misure?


Avatar utente

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

MODIFICA RAPIDA MISURA

Messaggio da Andrea90 »

Ciao Alieno86,

Quando tu scrivi:

COD1 && PREC && COMP

Come pensi lavori il Dax quando valuta quel filter? Perché è importante sapere questo, in modo tale da capire dove risiede l’errore.

Se tu salvi quei tre valori come variabili, le variabili in Dax sono valori fissi quindi una volta che vengono valorizzati, il loro valore rimane uguale, indipendentemente dal contesto in cui lo inserisci.

E questo è appunto un problema se tu e utilizzi in quel modo dentro ad un Filter, il quale è un iteratore e quindi scorre la tabella riga per riga andando a valutare una condizione, ma se tu la condizione l’hai inserita in una variabile l’unica cosa che ti riporta è un TRUE o FALSE.

Pertanto dal punto di vista logico non può funzionare quella formula, per il motivo che ti ho indicato prima.

Non vedo tanti modi possibili per rendere dinamica quella formula. Penso che dovrai crearti delle misure ad hoc, almeno guardando quel codice che hai scritto, senza vedere il modello.

A presto,
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
Avatar utente

Enrico Galli
Messaggi: 890 | Topic creati
Iscritto il: dom 28 giu 2020, 19:03
Luogo: San Giovanni in Persiceto (BO)
Ringraziato: 325 volte
Contatta:

MODIFICA RAPIDA MISURA

Messaggio da Enrico Galli »

Ciao! Se non altro, se scarichi Excel Swiss Knife, puoi creare 30 duplicati della misura "modello" con un solo clic ;)
Enrico Galli
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione
Avatar utente

Autore del topic
Alieno86
Messaggi: 47 | Topic creati
Iscritto il: mer 9 giu 2021, 16:36
Ringraziato: 5 volte

MODIFICA RAPIDA MISURA

Messaggio da Alieno86 »

a me andrebbe anche bene li prendesse come valori fissi, poi mi basterebbe copiare la misura e cambiare i parametri delle tre variabili.
purtroppo l'espressione non è proprio valida, modificherò ogni misura.
Una domanda al volo è possibile in dax usare nella funzione filter qualcosa che funzioni tipo IN sql
es:
WHERE [COD_VOCE]IN(1,2,3)

Invece di dover fare una cosa del genere, che è l'unica che mi funziona.

Codice: Seleziona tutto


=
VAR FILTRO1=FILTER('2019-2021';[COD_VOCE]=1 && [PRECODICE]<>"T"&&[ANNO_RIFERIM]=2020)
VAR V1=SUMX (FILTRO1;'2019-2021'[IMPORTO_U])

VAR FILTRO2=FILTER('2019-2021';[COD_VOCE]=6 && [PRECODICE]<>"T"&&[ANNO_RIFERIM]=2020)
VAR V2=SUMX (FILTRO2;'2019-2021'[IMPORTO_U])

VAR RESULT = V1+V2

RETURN
RESULT
Avatar utente

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

MODIFICA RAPIDA MISURA

Messaggio da Andrea90 »

In Dax puoi utilizzare la keyword IN esattamente come hai indicato. Se vuoi maggiore aiuto gira un file demo con un tuo tentativo, non importa che sia il file originale, basta una tabella con qualche dato ed il risultato desiderato.

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
Avatar utente

Autore del topic
Alieno86
Messaggi: 47 | Topic creati
Iscritto il: mer 9 giu 2021, 16:36
Ringraziato: 5 volte

MODIFICA RAPIDA MISURA

Messaggio da Alieno86 »

Questa è una demo, spero vada bene.
Allegati
TOP1000.xlsx
(544.57 KiB) Scaricato 12 volte
Avatar utente

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

MODIFICA RAPIDA MISURA

Messaggio da Andrea90 »

Ciao Alieno86,

Io consiglio sempre di formattare il codice, in DAX sennò si fa veramente fatica a capire il senso logico delle formule:

Codice: Seleziona tutto

=
VAR FILTRO =
    FILTER (
        'Tabella3';
        [COD_VOCE] IN {1; 5028}
            && [PRECODICE] <> "T"
            && [ANNO_RIFERIM] = 2020
    )
VAR RESULT =
    SUMX ( FILTRO; 'Tabella3'[IMPORTO_U] )
RETURN
    RESULT
Questa utilizza IN, prova a vedere se è quello che desideravi ottenere.

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
Avatar utente

Autore del topic
Alieno86
Messaggi: 47 | Topic creati
Iscritto il: mer 9 giu 2021, 16:36
Ringraziato: 5 volte

MODIFICA RAPIDA MISURA

Messaggio da Alieno86 »

si perfetto, non ho pensato di provare con le parentesi graffe, grazie mille.
Rispondi