Filtrare righe alternate di una tabella L’argomento è risolto

Non è propriamente un programma di BI, ma nelle sue versioni più recenti anche Excel può fare grandi cose!

Moderatore: Utilizzo_prof_Excel


Gennaro_64
Messaggi: 107 | Topic creati
Iscritto il: dom 11 apr 2021, 12:47
Ringraziato: 5 volte

Filtrare righe alternate di una tabella

Messaggio da Gennaro_64 »

Enrico Galli ha scritto: lun 12 lug 2021, 9:07
Gennaro_64 ha scritto: lun 12 lug 2021, 7:24 PS1: Ma poi perché non ha funzionato la funzione che avevo provato e disponibile nello strumento "Rimuovi Righe"?
Hai solo scritto male la funzione, o meglio hai inserito gli argomenti in modo non corretto. Nel tuo caso, tutti e tre gli argomenti dovevano essere impostati a 1 (o al massimo la prima riga a 2), perché gli stai dicendo che, partendo dalla riga 1 (o 2), ne vuoi tenere 1 e scartare 1, fino alla fine. Questo è il modo corretto di leggere quegli argomenti (vedi anche la riga 6 del mio listato) :wave:
Enrico Galli
uaaaaaaaa, ma allora sono "mezzo salvato" :D
Avevo trovato una sorta di strada (impervia) per la soluzione al mio problema .... :D :D
Ma devo riconoscere che le vostre soluzioni (Andrea90 e Enrico Galli) non solo risolvono il problema con "logiche" più lineari direi, ma soprattutto aprono altre strade che vanno al di là del piccolo problema che ho posto.
Ecco perché sto ancor a studiare le vostre soluzioni per capire anche gli ulteriori passaggi (poi li sperimento di nuovo per vedere se ho capito bene).
Insomma ... mi avete assegnato i compiti a casa ..... :D :D
A presto



Autore del topic
Gennaro_64
Messaggi: 107 | Topic creati
Iscritto il: dom 11 apr 2021, 12:47
Ringraziato: 5 volte

Filtrare righe alternate di una tabella

Messaggio da Gennaro_64 »

Cari Enrico Galli e Andrea90 , sto studiando.
Mi spiegate questo passaggio per favore?

#"Aggiunta colonna personalizzata" = Table.AddColumn(#"Aggiunta colonna indice", "Row + 1", each #"Aggiunta colonna indice"[Colonna1]{[Indice]+1}),

Come lo ottengo? Quale ragionamento devo fare?

Di fatto questo codice crea una nuova colonna "duplicato" di quella esistente, ma, magicamente, "taglia" la prima riga e riporta al rigo superiore il "tempo". operazione importantissima ai fini del risultato, ma non riesco a capire come e perché.
Grazie
g
Avatar utente

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

Filtrare righe alternate di una tabella

Messaggio da Andrea90 »

Ciao Gennaro_64,

La ottieni con una modifica manuale al codice sottostante l’interfaccia.

In generale la sintassi

nome tab[campo]

riporta una lista contenente tutti i valori di quel campo.
Se a questo aggiungi {n} dove con n indichi un numero da 0 a … otterrai l’ n-esimo valore di quella lista.

A presto,
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
Gennaro_64
Messaggi: 107 | Topic creati
Iscritto il: dom 11 apr 2021, 12:47
Ringraziato: 5 volte

Filtrare righe alternate di una tabella

Messaggio da Gennaro_64 »

Andrea90 ha scritto: lun 12 lug 2021, 17:51 Ciao Gennaro_64,

La ottieni con una modifica manuale al codice sottostante l’interfaccia.

In generale la sintassi

nome tab[campo]

riporta una lista contenente tutti i valori di quel campo.
Se a questo aggiungi {n} dove con n indichi un numero da 0 a … otterrai l’ n-esimo valore di quella lista.

A presto,
Andrea
aggiungendo {n} otterei la lista, ma a partire da quel n-esimo valore. Corretto?
Avatar utente

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

Filtrare righe alternate di una tabella

Messaggio da Andrea90 »

Non ottieni una lista, ottieni un valore.
Se n=0 ottieni il primo valore della lista.

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
Gennaro_64
Messaggi: 107 | Topic creati
Iscritto il: dom 11 apr 2021, 12:47
Ringraziato: 5 volte

Filtrare righe alternate di una tabella

Messaggio da Gennaro_64 »

Andrea90 ha scritto: lun 12 lug 2021, 18:01 Non ottieni una lista, ottieni un valore.
Se n=0 ottieni il primo valore della lista.

Andrea
Provo a dirlo a parole mie. Vediamo se ho capito adesso.
Quindi otteniamo la lista perché tu aggiungi una nuova colonna-indice che riporta al posto dell'indice l' n-esimo valore in ogni campo, ma quella {n}
non è un valore assoluto (es. zero). Quella {n} è costituita dalla somma della colonna [indice]+1.
Per cui {n} = {[Indice]+1}

Contorto ancora?
Avatar utente

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

Filtrare righe alternate di una tabella

Messaggio da Andrea90 »

Gennaro_64,

Quel [Indice] + 1 riporta semplicemente il valore del campo indice presente nella riga immediatamente successiva a quella che stai guardando, in questo modo andrai ad estrapolare dalla lista il valore che ti serve della riga successiva, e così per tutte le celle. L’output di ciascuna cella non è una lista, ma un valore specifico.

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
Gennaro_64
Messaggi: 107 | Topic creati
Iscritto il: dom 11 apr 2021, 12:47
Ringraziato: 5 volte

Filtrare righe alternate di una tabella

Messaggio da Gennaro_64 »

ho capito
thks

Autore del topic
Gennaro_64
Messaggi: 107 | Topic creati
Iscritto il: dom 11 apr 2021, 12:47
Ringraziato: 5 volte

Filtrare righe alternate di una tabella

Messaggio da Gennaro_64 »

Andrea90 ha scritto: lun 12 lug 2021, 0:39 Ciao Gennaro_64,

Ci sono tanti modo per ottenere quello che chiedi. Giusto per darti un'idea di una possibile logica da utilizzare:

Codice: Seleziona tutto

let
    Origine = Excel.CurrentWorkbook(){[Name="Tabella1"]}[Content],
    #"Aggiunta colonna indice" = Table.AddIndexColumn(Origine, "Indice", 0, 1, Int64.Type),
    #"Aggiunta colonna personalizzata" = Table.AddColumn(#"Aggiunta colonna indice", "Row + 1", each #"Aggiunta colonna indice"[Colonna1]{[Indice]+1}),
    #"Modulo calcolato" = Table.TransformColumns(#"Aggiunta colonna personalizzata", {{"Indice", each Number.Mod(_, 2), type number}}),
    #"Filtrate righe" = Table.SelectRows(#"Modulo calcolato", each ([Indice] = 0)),
    #"Rimosse colonne" = Table.RemoveColumns(#"Filtrate righe",{"Indice"}),
    #"Modificato tipo" = Table.TransformColumnTypes(#"Rimosse colonne",{{"Colonna1", type text}}),
    #"Errori sostituiti" = Table.ReplaceErrorValues(#"Modificato tipo", {{"Row + 1", null}}),
    #"Modificato tipo1" = Table.TransformColumnTypes(#"Errori sostituiti",{{"Row + 1", type number}})
in
    #"Modificato tipo1"
Andrea
Ciao Andrea90 ,
L'ultima riga del codice (prima di "in"), rimuove degli errori che si sono gnerati.
Perché si sono generati quegli errori? Cosa li ha determinati?
l'unica operazione che potrebbe averli generati credo possa essere il "Modulo Calcolato" (Number.Mod). Ma è solo una divisione tra due numeri ([Indice] e 2).
Cosa mi sfugge?
Ciao e grazie
g
Avatar utente

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

Filtrare righe alternate di una tabella

Messaggio da Andrea90 »

L’operazione che l’ha generato è il recupero del contenuto della riga successiva, semplicemente perché quando arrivi all’ultima riga della tabella non c’è più nulla al di sotto di questa e quindi genera un errore.

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