Pagina 1 di 1

Ricerca della modalità con il massimo differenziale

Inviato: ven 22 apr 2022, 14:46
da Filippo.regina
Ciao a tutti,

sono nuovo sul forum ed è la prima volta che scrivo! :wave:
Sto cercando di risolvere il seguente problema: devo creare una misura che mi dica il massimo del differenziale tra la tab. 1 e 2

nelle tabelle, ci sono sulle righe le modalità della variabile "LtR_NPS" e i conteggi sono stati fatti sulla base della variabile "LtR_postCTL" (vi è un filtro a monte di dummy = 1), nella tab. 1 presi solo i LtR_postCTL<=6 e nella tab. 2 quelli >=7.

In sostanza mi servirebbe cercare il massimo tra i differenziali dei totali riga delle due tabelle (-16 = 4-20, -4=3-7, e così via) che dovrebbe essere pari a 6, per la modalità 6 della variab. LtR_NPS.

mi sapreste aiutare a definire una funzione che mi dica qual è la modalità con il massimo differenziale?

allego anche il codice che ho scritto per facilitare la lettura

Codice: Seleziona tutto

Misura3 = 
VAR COUNT_IF_GAIN = 
COUNTROWS(
    FILTER(FT_Survey_Export,FT_Survey_Export[DUMMY_IF_CTL]=1 && FT_Survey_Export[LtR_postCTL]>=7
    )
)

VAR COUNT_IF_LOSS = 
COUNTROWS(
    FILTER(FT_Survey_Export,FT_Survey_Export[DUMMY_IF_CTL]=1 && FT_Survey_Export[LtR_postCTL]<=6
    )
)
RETURN
CALCULATE(MAXX(
    SUMMARIZE(FT_Survey_Export,FT_Survey_Export[LtR_NPS]),
    COUNT_IF_GAIN-COUNT_IF_LOSS)
    )

Ricerca della modalità con il massimo differenziale

Inviato: ven 22 apr 2022, 15:22
da Andrea90
Ciao Filippo.regina,

Ma se ti crei una variabile tabella con il campo [LtR_NPS] ed una colonna temporanea che utilizza la tua Misura 3 e poi su questa tabella ci calcoli il MAXX()?

Andrea

Ricerca della modalità con il massimo differenziale

Inviato: ven 22 apr 2022, 16:33
da Filippo.regina
Andrea90 ho risolto così!

Codice: Seleziona tutto

Obiettivo = 
MAXX(
    ADDCOLUMNS(
        VALUES(FT_Survey_Export[LtR_NPS]),
        "diff",
            CALCULATE(
                COUNT([LtR_GAIN]),FT_Survey_Export[DUMMY_IF_CTL]=1 && FT_Survey_Export[LtR_GAIN]>=7
                )
            -CALCULATE(
                COUNT([LtR_GAIN]),FT_Survey_Export[DUMMY_IF_CTL]=1 && FT_Survey_Export[LtR_GAIN]<=6
                )
        ),
    [diff]
    )

solo che adesso non so come fare, dopo aver calcolato il massimo, ad avere in output la modalità corrispondente al massimo.
:crazy:

Ricerca della modalità con il massimo differenziale

Inviato: ven 22 apr 2022, 16:41
da Andrea90
Filippo.regina,

Per semplicità espositiva avrei calcolato la Misura 3 a parte e poi richiamato quella per il calcolo del “diff”, invece che inserire tutta quanta la formula all’interno.

Comunque per trovare la modalità (se non sbaglio penso che sia il campo [LtR_NPS]) la formula è praticamente già fatta perché tu hai una variabile che contiene una tabella con i vari scostamenti e le diverse modalità.

Con il MAXX hai trovato quale è il valore max quindi non basta far altro che filtrare questa tabella calcolata per i soli valori di diff uguali al Max.

A questo punto con VALUES() sul campo delle [LtR_NPS] della tabella calcolata ottieni il valore, se e solo se la tabella filtrata contiene una sola riga.

Se più modalità contengono lo stesso scostamento massimo puoi utilizzare CONCATENATEX per avere un unica stringa risultante.

Andrea

Ricerca della modalità con il massimo differenziale

Inviato: ven 22 apr 2022, 17:08
da Enrico Galli
Ho spostato la discussione in Power BI
PS Filippo.regina le prossime volte che inserirai un codice (dax o altro) utilizza il tag CODE (lo trovi nella barra degli strumenti quando inserisci il messaggio, vedi anche qui: viewtopic.php?t=13), grazie!
:wave:

Ricerca della modalità con il massimo differenziale

Inviato: mer 27 apr 2022, 11:51
da Filippo.regina
Okay, Enrico Galli promesso! :thumbup:

perdonate, ma era la prima volta che scrivevo sul forum :mrgreen:

Ricerca della modalità con il massimo differenziale

Inviato: lun 2 mag 2022, 15:45
da Filippo.regina
Andrea90 ha scritto: ven 22 apr 2022, 16:41 Filippo.regina,

Per semplicità espositiva avrei calcolato la Misura 3 a parte e poi richiamato quella per il calcolo del “diff”, invece che inserire tutta quanta la formula all’interno.

Comunque per trovare la modalità (se non sbaglio penso che sia il campo [LtR_NPS]) la formula è praticamente già fatta perché tu hai una variabile che contiene una tabella con i vari scostamenti e le diverse modalità.

Con il MAXX hai trovato quale è il valore max quindi non basta far altro che filtrare questa tabella calcolata per i soli valori di diff uguali al Max.

A questo punto con VALUES() sul campo delle [LtR_NPS] della tabella calcolata ottieni il valore, se e solo se la tabella filtrata contiene una sola riga.

Se più modalità contengono lo stesso scostamento massimo puoi utilizzare CONCATENATEX per avere un unica stringa risultante.

Andrea

Andrea90 Ho risolto così:

Codice: Seleziona tutto

Modalità = 

VAR Obiettivo = 
MAXX(
    ADDCOLUMNS(
        VALUES(FT_Survey_Export[LtR_NPS]),
        "diff",
            CALCULATE(
                COUNT([LtR_GAIN]),FT_Survey_Export[DUMMY_IF_CTL]=1 && FT_Survey_Export[LtR_GAIN]>=7
                )
            -CALCULATE(
                COUNT([LtR_GAIN]),FT_Survey_Export[DUMMY_IF_CTL]=1 && FT_Survey_Export[LtR_GAIN]<=6
                )
        ),
    [diff]
    )

RETURN
    MAXX(
        FILTER(
            ADDCOLUMNS(
                VALUES(FT_Survey_Export[LtR_NPS]), "diff", 
                    CALCULATE(
                        COUNT([LtR_GAIN]),FT_Survey_Export[DUMMY_IF_CTL]=1 && FT_Survey_Export[LtR_GAIN]>=7
                    )
                    -CALCULATE(
                        COUNT([LtR_GAIN]),FT_Survey_Export[DUMMY_IF_CTL]=1 && FT_Survey_Export[LtR_GAIN]<=6
                    )
                ),
            [diff] = Obiettivo
            ),
        FT_Survey_Export[LtR_NPS]
        )

tuttavia questo codice subisce il contesto di filtro, mentre a me servirebbe ottenere il massimo assoluto, o i massimi assoluti tramite il concatenax perché deve diventare il parametro di un altro codice. Suggerimenti?

Questo codice mi sta mandando in pappa :mrgreen:

Ricerca della modalità con il massimo differenziale

Inviato: lun 2 mag 2022, 15:51
da Andrea90
Filippo.regina

L’effetto del contesto filtro lo risolvi con CALCULATE utilizzando ALL(), ALLSELECTED(), ALLEXCEPT(), ecc a seconda di quello che ti serve rimuovere dal filtro.

Andrea