› Excel e gli applicativi Microsoft Office › Funzione FILTRO (Excel 365)
-
AutoreArticoli
-
Stavo realizzando una cosa al volo, mescolando Excel e Word per inserire tabelle di Excel in alcune celle di un tabellone di Word in diversi file. Mi serviva un modo rapido e indolore per filtrare sul posto l'elenco Excel originale, basandomi su un campo id, quindi copiare i dati filtrati nell'altra applicazione.
Non avevo voglia di ricordare tutto l'ambaradan del filtro automatico e del filtro avanzato... e poi volevo provare qualche brivido nuovo
per farla breve ho scoperto, studiato e applicato la nuova funzione FILTRO per questo Excel 365.Gianfranco sara' fiero di me: =FILTRO(intervallo senza header, criterio[, valore se nullo]). Ok, proviamo... funziona alla grande. Adesso questa bella formulina la mettiamo nel mio bel codice VBA e tricche tracche, lavoro finito.
Tutto vero? Macche'
Tentativi:
Range(xxx).Formula = "=FILTRO(A2:C50, A2:A50=1)"
Risultato ---> #NOME? e la formula nella cella xxx viene trasformata in =@FILTRO(A2:D17;@A2:A17=2000) (ma da dove salta fuori quel @? documentati, documentati... anche Excel mi dice cos'e', ma bene... dynamic array
)
Togli la seconda chiocciola, caprone!=@FILTRO(A2:C50;A2:A50=2000)
Risultato: qualcosa compare... ma solo un "2000" nella prima cella. E il resto della tabella filtrata?
Mumble mumble... a un certo punto nell'elenco oggetti compare una proprieta', Formula2... chissa'...
Riproviamo con VBA...Range(xxx).Formula = "=FILTRO(A2:C50;A2:A50=1)"Risultato ---> Beep! Errore definito dall'applicazione o dall'oggetto. Uff, il punto e virgola...Range(xxx).Formula2 = "=FILTRO(A2:C50,A2:A50=1)"
Risultato: #NOME? Grrrr... E se non gli piacesse la parola FILTRO?
Range(xxx).Formula = "=FILTER(A2:C50,A2:A50=1)"
Risultato: in cella la formula riceva una chiocciola e mostra solo un "2000" (=@FILTRO(A2:A50;A2:A50=2000))
Esasperato... ultimo tentativo....Range(xxx).Formula2 = "=FILTER(A2:C50,A2:A50=1)"
Bingo!
Ma che fatica ragazzi
Morale? codice VBA perfettamente funzionante, filtro dinamico perfettamente riuscito per ogni singolo id della tabella, aggancio volante a Word senza problemi, recupero e incollaggio dei dati con salvataggio del file finale perfettamente riuscito. Il mio capo mi ha chiesto se ne valeva la pena quando potevo copiare e incollare le tabelle a mano... ok vabbe'... non c'e' paragone... prima di tutto ho imparato qualcosa di nuovo e poi a lavorare sul reale in pochi minuti il lavoro finito quando avrei messo piu' tempo a filtrare i dati in Excel, copiare il range, aprire il Word giusto, raggiungere il tabellone, svuotarlo, reinserire le righe necessarie, incollare i dati, riformattare la schifezza, salvare e chiudere e passare al prossimo intervallo/file.
So che solo voi mi capite
ciao
certo che sono fiero di te
ti sto contagiando con le formule
comunque sai quante chioccioline tolgo io al giorno?
se apro un file di una versione inferiore che abbia una formula matriciale
magicamente spuntano le chioccioline che altro non sono che la bella copia delle grafe
ora delle volte (rare) le usiamo anche nel 365 per bloccare l'espansione
in pratica ti rendono solo il primo risultato

Range(xxx).Formula = "=FILTRO(A2:C50, A2:A50=1)"Risultato ---> #NOME?Forse
Range(xxx).FormulaLocal = "=FILTRO(A2:C50, A2:A50=1)"Io, per comodità, scrivo la formula
=FILTRO(A2:C50, A2:A50=1)in una cella e, nella finestra immediata digito?ActiveCell.Formulacosì so il nome originale della formula.comunque sai quante chioccioline tolgo io al giorno?

Forse
Range(xxx).FormulaLocalMi sembrava di aver provato. Mi stavo incasinando tra locale e non locale, e comunque preferisco la versione inglese
così so il nome originale della formula
Sì ma non l'avevo mai provata e mi sono emozionato, sbagliando... avrei dovuto pensarci prima: se SOMMA diventa SUM nel codice e CONTA.VALORI diventa COUNTA, cosa che faccio abitualmente, era ovvio che doveva funzionare anche per FILTRO (una lampadina inconscia comunque si è accesa, se mi è venuto in mente di farlo).
In ogni caso non si finisce davvero mai di aggiungere mattoncini. Adesso devo pensare a una applicazione pratica delle LAMBDA
-
AutoreArticoli
