Pagina 2 di 2

Individuare valore massimo di un gruppo omogeneo

Inviato: lun 17 gen 2022, 23:33
da Raf1988
Non ho capito perché utilizzi il campo “disponibilità”. In realtà proprio la formula non mi da ciò che voglio.

Stavo ragionando che forse sarebbe meglio avere una colonna calcolata che mi indichi qual’è il valore max di “minuti complessivi” per ogni matricola (il campo in corrispondenza dei valori non max dovranno dunque essere vuoti).
Non riesco a capire come approcciare per creare la formula.

Individuare valore massimo di un gruppo omogeneo

Inviato: mar 18 gen 2022, 7:21
da Andrea90
Raf1988,

Quindi tutta la tua base dati non ti servirà mai per le
tue analisi se non quelle righe dove hai il massimo valore ?

Andrea

Individuare valore massimo di un gruppo omogeneo

Inviato: mar 18 gen 2022, 8:09
da Raf1988
Esatto, è come se volessi filtrare solo le righe in corrispondenza dei valori massimi di minuti complessivi.

Individuare valore massimo di un gruppo omogeneo

Inviato: mar 18 gen 2022, 8:28
da Andrea90
Raf1988

Codice: Seleziona tutto

 let
    Origine = Excel.CurrentWorkbook(){[Name="Tabella1"]}[Content],
    #"Modificato tipo" = Table.TransformColumnTypes(Origine,{{"Matricola", type text}, {"Codice Istanza", type text}, {"ID Catalogo", Int64.Type}, {"Disponibilità", Int64.Type}, {"Minuti Trasferimento", Int64.Type}, {"Minuti Lavoro", Int64.Type}, {"Minuti complessivi", Int64.Type}}),
    #"Ordinate righe" = Table.Sort(#"Modificato tipo",{{"Matricola", Order.Ascending}, {"Minuti complessivi", Order.Ascending}}),
    #"Aggiunta colonna indice" = Table.AddIndexColumn(#"Ordinate righe", "Indice", 0, 1, Int64.Type),
    #"Raggruppate righe" = Table.Group(#"Aggiunta colonna indice", {"Matricola"}, {{"MaxRiga", each List.Max([Indice]), type number}, {"Temp", each _, type table [Matricola=nullable text, Codice Istanza=nullable text, ID Catalogo=nullable number, Disponibilità=nullable number, Minuti Trasferimento=nullable number, Minuti Lavoro=nullable number, Minuti complessivi=nullable number, Indice=number]}}),
    #"Rimosse colonne" = Table.RemoveColumns(#"Raggruppate righe",{"Matricola"}),
    #"Tabella Temp espansa" = Table.ExpandTableColumn(#"Rimosse colonne", "Temp", {"Matricola", "Codice Istanza", "ID Catalogo", "Disponibilità", "Minuti Trasferimento", "Minuti Lavoro", "Minuti complessivi", "Indice"}),
    Filtro = Table.SelectRows(#"Tabella Temp espansa", each [MaxRiga] = [Indice])
in
    Filtro
Andrea

Individuare valore massimo di un gruppo omogeneo

Inviato: mar 18 gen 2022, 8:34
da Raf1988
Ma questa tabella mi filtra in maniera permanente la mia base dati?
Siccome mi serve solo per alcuni grafici questo tipo di analisi, la mia intenzione era quella di creare una colonna di appoggio dove mi venisse indicato (ad esempio con 1 e 0) se quella riga è corrispondente al valore massimo di minuti complessivi o meno per ogni matricola.
Forse sono io che mi sono spiegato male fin dall’inizio 😅

Individuare valore massimo di un gruppo omogeneo

Inviato: mar 18 gen 2022, 8:42
da Andrea90
Raf1988

‘Quindi tutta la tua base dati non ti servirà mai per le tue analisi se non quelle righe dove hai il massimo valore ?”

Mi sembrava chiara la domanda, alla quale tu hai risposto con “esatto”.

Comunque, questo è un forum per apprendere, non per consulenza. Ti ho dato tutti gli elementi per poterci lavorare su e fare le tue prove, adattando il file alle tue esigenze. Quindi, in sostanza, uno sforzo lo devi fare anche tu.

Se prendi la mia ultima stringa di codice, e la studi, vedrai che l’ultimo passaggio filtra via le righe che non soddisfano il criterio dei minuti massimi. Tolto quello avrai tutta la tua base dati con una colonna aggiuntiva che identifica il livello di [Indice] in corrispondenza del valore massimo di minuti.
Applicandosi un attimo non sarà difficile aggiungere la tua colonna di flag.

Andrea

Individuare valore massimo di un gruppo omogeneo

Inviato: mar 18 gen 2022, 13:54
da Raf1988
Si hai ragione, avevo completamente frainteso la domanda.
Dalla tua ultima stringa di codice sono riuscito a ricostruire quello che cercavo, era più o meno la logica che avevo in mente, speravo di costruire qualcosa del genere direttamente in DAX ma anche così va bene.
Ti ringrazio ancora dell’aiuto Andrea90

Individuare valore massimo di un gruppo omogeneo

Inviato: mar 18 gen 2022, 13:58
da Andrea90
Raf1988,

Ti ho anche già dato l’input per costruire le tue misure in dax. Se vai in uno dei messaggi precedenti vedrai che ti ho scritto due misure, una che calcola il valore massimo dei minuti e l’altra che sfrutta la prima per poter modificare il contesto filtro della seconda.

Andrea

Individuare valore massimo di un gruppo omogeneo

Inviato: mar 18 gen 2022, 16:32
da Raf1988
Adesso la sto approfondendo. Come sempre dai ottimi spunti di riflessione e approfondimento 🙂