Ricerca della modalità con il massimo differenziale

Il software per la BI di Microsoft, leader nel mercato
Rispondi

Filippo.regina
Messaggi: 6 | Topic creati
Iscritto il: ven 22 apr 2022, 14:37
Contatta:

Ricerca della modalità con il massimo differenziale

Messaggio 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)
    )
Allegati
Immagine 2022-04-22 144019.png
Immagine 2022-04-22 144019.png (61.53 KiB) Visto 155 volte


Avatar utente

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

Ricerca della modalità con il massimo differenziale

Messaggio 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
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

Autore del topic
Filippo.regina
Messaggi: 6 | Topic creati
Iscritto il: ven 22 apr 2022, 14:37
Contatta:

Ricerca della modalità con il massimo differenziale

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

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

Ricerca della modalità con il massimo differenziale

Messaggio 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
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:

Ricerca della modalità con il massimo differenziale

Messaggio 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:
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

Autore del topic
Filippo.regina
Messaggi: 6 | Topic creati
Iscritto il: ven 22 apr 2022, 14:37
Contatta:

Ricerca della modalità con il massimo differenziale

Messaggio da Filippo.regina »

Okay, Enrico Galli promesso! :thumbup:

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

Autore del topic
Filippo.regina
Messaggi: 6 | Topic creati
Iscritto il: ven 22 apr 2022, 14:37
Contatta:

Ricerca della modalità con il massimo differenziale

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

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

Ricerca della modalità con il massimo differenziale

Messaggio 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
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
Rispondi