Pagina 1 di 1
MODIFICA RAPIDA MISURA
Inviato: sab 4 set 2021, 13:58
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?
MODIFICA RAPIDA MISURA
Inviato: sab 4 set 2021, 14:55
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
MODIFICA RAPIDA MISURA
Inviato: sab 4 set 2021, 15:35
da Enrico Galli
Ciao! Se non altro, se scarichi
Excel Swiss Knife, puoi creare 30 duplicati della misura "modello" con un solo clic
MODIFICA RAPIDA MISURA
Inviato: sab 4 set 2021, 15:40
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
MODIFICA RAPIDA MISURA
Inviato: sab 4 set 2021, 16:03
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
MODIFICA RAPIDA MISURA
Inviato: sab 4 set 2021, 16:27
da Alieno86
Questa è una demo, spero vada bene.
MODIFICA RAPIDA MISURA
Inviato: sab 4 set 2021, 18:07
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
MODIFICA RAPIDA MISURA
Inviato: sab 4 set 2021, 18:20
da Alieno86
si perfetto, non ho pensato di provare con le parentesi graffe, grazie mille.