Buongiorno a tutti,
premesso che sono alle prime armi con Power BI e ringrazio tutti per i preziosi argomenti che trovo su questo forum, ho un problema di calcolo con una matrice.
Ho necessità di calcolare una colonna "GiacenzaPrevista_Y" che riprenda il dato della riga precedente di una colonna calcolata "GiacenzaCalcolata_X" al verificarsi di una condizione [se ConsumiTotali <>0].
La formula è:
Se ConsumiTotali <>0, riprendi valore GiacenzaCalcolata_X riga precedente, [somma] colonna ArriviPrevisti, [sottrai] colonna ConsumiPrevisti, altrimenti riprendi GiacenzaCalcolata_X.
Allego l'immagine del calcolo risultante dalla matrice di Power BI, colonna "Giacenza_Prevista_Y" con i dati errati in rosso sbarrati e di fianco la colonna in azzurro "calcolo corretto" (purtroppo non riesco ad allegare l'immagine, il servizio risulta giù).
Allego anche file Power bI per le opportune verifiche.
Grazie a chi vorrà aiutarmi.
Saluti
Calcolo errato colonna in matrice L’argomento è risolto
-
- Messaggi: 2 | Topic creati
- Iscritto il: lun 29 gen 2024, 10:33
Calcolo errato colonna in matrice
- Allegati
-
- immagine.jpg (223.27 KiB) Visto 75 volte
-
- Stock_Centrali_BL_forum.pbix
- (107.16 KiB) Scaricato 4 volte
-
- Messaggi: 2313 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 676 volte
- Contatta:
Calcolo errato colonna in matrice
@Kyros,
Comincia con il rendere il tuo codice "leggibile".
Questa è la tua funzione attuale:
Che può essere scritta come:
Dove [TotConsumi] è una misura che ho realizzato come:
Ora se metti sul piatto tutte le misure coinvolte ottieni una cosa simile, ed il primo errore lo trovi sulla riga del 19/01:
Se è così, cerca quale delle n misure che hai creato è quella che si comporta in modo anomalo. Una volta corretta quella la misura finale si correggerà in automatico.
Evita di utilizzare tutte quelle misure implicite. In Power BI vanno scritte in linguaggio DAX, non prendendo il campo e trascinandolo nell'area valori come se fossimo in excel e stessimo lavorando con le pivot.
Andrea
Comincia con il rendere il tuo codice "leggibile".
Questa è la tua funzione attuale:
Codice: Seleziona tutto
GiacenzaPrevista_Y = if(sum(TotaleConsumi[ConsumoTotale]) <> 0, ([Sommatoria_X]-[ConsumoTotale_BLX]), ([GiacenzaCalcolata_X]-[ConsumiPrevisti_Y]))
Codice: Seleziona tutto
Test =
VAR GiaCalcolata = [Sommatoria_X] - [ConsumoTotale_BLX]
VAR result =
IF ( [TotConsumi] <> 0, GiaCalcolata, GiaCalcolata - [ConsumiPrevisti_Y] )
RETURN
result
Codice: Seleziona tutto
TotConsumi = sum(TotaleConsumi[ConsumoTotale])
Se è così, cerca quale delle n misure che hai creato è quella che si comporta in modo anomalo. Una volta corretta quella la misura finale si correggerà in automatico.
Evita di utilizzare tutte quelle misure implicite. In Power BI vanno scritte in linguaggio DAX, non prendendo il campo e trascinandolo nell'area valori come se fossimo in excel e stessimo lavorando con le pivot.
Andrea
-
Autore del topic - Messaggi: 2 | Topic creati
- Iscritto il: lun 29 gen 2024, 10:33
Calcolo errato colonna in matrice
Ringrazio per la risposta immediata, ho cercato di seguire i consigli, ma ahimè essendo somaro non riesco a comprendere quale misura presenta l'anomalia.
Come già evidenziato al verificarsi della condizione ( se TotConsumi<>0 ) il calcolo funziona per la prima riga rientrante nella condizione, ma non per la successiva così come avevo evidenziato con i valori sbarrati in rosso.
AIUTO !!!
Come già evidenziato al verificarsi della condizione ( se TotConsumi<>0 ) il calcolo funziona per la prima riga rientrante nella condizione, ma non per la successiva così come avevo evidenziato con i valori sbarrati in rosso.
AIUTO !!!
-
- Messaggi: 2313 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 676 volte
- Contatta:
Calcolo errato colonna in matrice
@Kyros,
Si tratta di eseguire una differenza tra due numeri, quindi nulla di terribilmente complicato.
Alla riga 18/01/2024 il valore non era indicato in rosso, il TotConsumi è = 0 dunque la formula deve eseguire la seconda espressione. Questa è GiaCalcolata - [ConsumiPrevisti_Y] dunque 10.920 - 540 ed infatti riporta 10.380
La riga 19/01/2024 ha la condizione Falsa (TotConsumi = 0), e la formula riesegue lo stesso calcolo che tu dici essere sbagliato. Poiché dici che deve venire 9.840. Quindi o 10.920 è sbagliato, oppure lo è 540.
Questo spetta a te dirlo sulla base delle logiche che vuoi applicare. Se è sbagliato il primo, allora dovrai correggere la misura
[Sommatoria_X] - [ConsumoTotale_BLX], altrimenti dovrai correggere [ConsumiPrevisti_Y].
Su come correggerle devi dircelo tu, non noi (noi possiamo eventualmente aiutare a tradurre la logica in linguaggio DAX).
Andrea
Si tratta di eseguire una differenza tra due numeri, quindi nulla di terribilmente complicato.
Alla riga 18/01/2024 il valore non era indicato in rosso, il TotConsumi è = 0 dunque la formula deve eseguire la seconda espressione. Questa è GiaCalcolata - [ConsumiPrevisti_Y] dunque 10.920 - 540 ed infatti riporta 10.380
La riga 19/01/2024 ha la condizione Falsa (TotConsumi = 0), e la formula riesegue lo stesso calcolo che tu dici essere sbagliato. Poiché dici che deve venire 9.840. Quindi o 10.920 è sbagliato, oppure lo è 540.
Questo spetta a te dirlo sulla base delle logiche che vuoi applicare. Se è sbagliato il primo, allora dovrai correggere la misura
[Sommatoria_X] - [ConsumoTotale_BLX], altrimenti dovrai correggere [ConsumiPrevisti_Y].
Su come correggerle devi dircelo tu, non noi (noi possiamo eventualmente aiutare a tradurre la logica in linguaggio DAX).
Andrea