Pagina 2 di 2

Errore riga totale con misura SUMX

Inviato: mer 22 giu 2022, 14:35
da alex77
Non fare il modesto, io senza voi due, ma senza fare gerarchie, sono spacciato :mrgreen:
E comunque era solo perchè non avevi visto il file di esempio :D
Intanto sono al palo perchè il sig. DAX non gli piacciono gli articoli con le lettere e gli spazi... :roll:

Errore riga totale con misura SUMX

Inviato: mer 22 giu 2022, 14:38
da Andrea90
alex77,

Prova cosi:

Codice: Seleziona tutto

=
Var CurArt = VALUES( factVendite[Codice Articolo] )
VAR TempTab =
    CALCULATETABLE (
        ADDCOLUMNS (
            VALUES ( dimCalendario[EofMonth] );
            "@TotQty"; [DAX.Volume Vendite];
            "@ListinoPrice"; CALCULATE ( MAXX ( factListino; factListino[Prezzo Listino] ) )
        );
        FILTER( ALL( dimArticolo[Codice Articolo]); dimArticolo[Codice Articolo] IN CurArt)
    )
VAR Result =
    SUMX ( TempTab; [@ListinoPrice] * [@TotQty] )
RETURN
    Result
Andrea

Errore riga totale con misura SUMX

Inviato: mer 22 giu 2022, 14:52
da Enrico Galli
Ora che ho potuto "paciugare" con il file di esempio, propongo la mia soluzione, che sostituisce interamente la misura iniziale ;)

Codice: Seleziona tutto

=
SUMX (
    ADDCOLUMNS (
        SUMMARIZE (
            'factVendite';
            'dimCalendario'[Data];
            'dimArticolo'[Codice Articolo]
        );
        "_CostoTotale";
            VAR vData =
                EOMONTH ( 'dimCalendario'[Data]; 0 )
            RETURN
                [DAX.Volume Vendite]
                    * CALCULATE ( MAX ( factListino[Prezzo Listino] ); 'dimCalendario'[Data] = vData )
    );
    [_CostoTotale]
)

Errore riga totale con misura SUMX

Inviato: mer 22 giu 2022, 15:53
da alex77
E all'ultima curva vince Enrico Galli
Forse ero stato troppo "asciutto" nel file di esempio mettendo sostanzialmente un solo codice. Oltretutto avevo escluso anche il cliente (nella matrice in PBI raggruppo anche il cliente) e nell'ultima soluzione di Andrea, sia a livello cliente che di somma totale il valore si decuplicava senza senso.

Allego un file di esempio aggiornato, dove si vedono i risultati delle due strade percorse.

Grazie ad entrambi per l'aiuto, che le soluzioni che mi avete proposto sono a livelli ancora altini (anche se riesco a "leggerle" abbastanza) per me. Devo dire che avevo abbozzato qualcosa di simile ad Enrico, ma poi... mettere la variabile all'interno del sumx... non mi passerebbe neanche per l'anticamera del cervello... e adesso mi sto pure leggendo la differenza tra endofmonth end eomonth...
Ce n'è da imparare

A.

Errore riga totale con misura SUMX

Inviato: mer 22 giu 2022, 16:38
da Andrea90
Ciao a tutti,

Non per fare polemica, ci mancherebbe, ma come metro di confronto mi verrebbe da dire che un SUMMARIZE sulla intera tabella dei fatti lo eviterei, poi sinceramente non mi sono messo a calcolare le performance 😅

Andrea

Errore riga totale con misura SUMX

Inviato: mer 22 giu 2022, 16:46
da Enrico Galli
Io però sono interessato alla questione: nella mia testa, nel momento in cui scrivo

Codice: Seleziona tutto

        
SUMMARIZE (
    'factVendite';
    'dimCalendario'[Data];
    'dimArticolo'[Codice Articolo]
)
praticamente vado a ridurre le righe considerate a quelle visibili nel contesto valutativo (in modo simile a ciò che avviene con VALUES), e di conseguenza le colonne aggiunte vengono calcolate solo su questo sottoinsieme. E' corretto?
Ovviamente sarà sempre un'operazione più costosa rispetto a operare sulle dimensioni, ma siccome in questo caso il contesto di filtro prevede due campi presi da due dimensioni che non si "parlano", ho pensato a questa via per arrivare al risultato. Sarei contento di confrontare questo ragionamento con un altro al quale non sono arrivato a pensare!

Errore riga totale con misura SUMX

Inviato: mer 22 giu 2022, 17:00
da Andrea90
Ciao Enrico,

A livello di singola combinazione si, ma a livello di totale (o di subtotale semmai cambierà il report) il numero di righe sarà potenzialmente molto più grande.

Mentre con un values sul calendar EndOfMonth ad esempio, il valore massimo sarà 12.

Andrea