Condividi:        

[Excel] Macro (o funzione) per filtrare/cercare valori

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Excel] Macro (o funzione) per filtrare/cercare valori

Postdi edino » 15/09/14 20:45

Ciao a tutti!
Sono edino e ho bisogno della vostra preziosa esperienza per risolvere questo problemino.
NB. Il mio livello di conoscenza excel è piuttosto scarso, perciò vi chiedo di perdonarmi se non mi spiego bene.

Nel mio file excel ho 2 fogli così organizzati:
- Foglio1 rinominato in "database"
- Foglio2 rinominato in "ricerca"

Nel "database" ho una lista di valori suddivisi in colonne: Col.A = codice, Col.B = valore1, Col.C = valore2, Col.D = valore3, ecc....
La riga 1 è usata per i "titoli", le successive per i valori.

Nel foglio "ricerca" vorrei crearmi una lista di codici (e relativi valori) filtrati e copiati dal "database" in funzione di alcuni "dati
target" inseriti senza conoscere a memoria codici e valori del "database".
Per questo, nel foglio "ricerca" ho dedicato alcune celle all'inserimento dei "dati target" (es. A2 = Valore1 target, A3 = Valore3 target).

Per esempio, inserendo nel foglio "ricerca" in :
A2 = Valore1 target
un valore di cui ho bisogno per il mio progetto e che non corrisponde necessariamente a un valore del database

Vorrei ottenere "n" righe copiate dal foglio "database" con "Valore1" >= al "Valore1 target"

E se volessi affinare la ricerca, inserisco in:

A3 = Valore3 target
un valore di cui ho bisogno, ma questa volta corrisponde esattamente al valore del database (es. Sì/No)

A questo punto dovrei ottenere una lista che rispetta la condizione "Valore1 target" + "Valore3 target"

Ed eventualmente altre condizioni...

Grazie...
MS Office 2007-2010
Win7
edino
Utente Junior
 
Post: 17
Iscritto il: 15/09/14 14:49

Sponsor
 

Re: [Excel] Macro (o funzione) per filtrare/cercare valori

Postdi ricky53 » 16/09/14 08:52

Ciao,
prima di tutto benvenuto nel nostro forum.


Veniamo al tuo quesito:
A) puoi dirci quale versione di Office utilizzi; sarebbe un ottima cosa se tu aderissi alla Campagna Versione Applicativo Usato

B) puoi fare un esempio con dati effettivi riportando le celle in cui scrivi qualcosa e le celle dove vorresti i dati trovati.
Infine una descrizione più dettagliata delle condizioni che ti occorrono per cercare i dati
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Macro (o funzione) per filtrare/cercare valori

Postdi edino » 16/09/14 12:07

Ciao, grazie per i suggerimenti.
Ho provveduto ad aggiornare la firma. Utilizzo excel 2007 e 2010. Il file in questione dovrà andare bene per la versione 2010.

Ecco l'esempio:
foglio database in cui verranno scritti i dati
Immagine

foglio ricerca in cui scrivo le condizioni e mi vengono restituiti i valori
Immagine

Il lavoro consisterebbe nell'inserire nelle celle evidenziate di giallo (B2, B3, B4) i parametri richiesti dal mio progetto e avere come risultato i valori uguali o simili (es. >=) del database. Questi ultimi verrebbero scritti in D:D ed E:E.

Esempio:
in B2 inserisco 425
se la condizione è >= di B2, dal database saranno copiati i codici (quindi le righe) che hanno come "Valore1">=425
quindi da A5 a B21

Se in B3 inserisco uno dei valori (es. "A") allora la lista diventa circoscritta alle righe che hanno Valore1>=425 e che hanno Valore2=A

E così via...

Ciao
MS Office 2007-2010
Win7
edino
Utente Junior
 
Post: 17
Iscritto il: 15/09/14 14:49

Re: [Excel] Macro (o funzione) per filtrare/cercare valori

Postdi ricky53 » 16/09/14 13:25

Ciao,
si può arrivare al risultato in vari modi: manualmente o automaticamente o una via di mezzo.

Per esempio:
A. con VBA scrivendo una macro che seleziona in base ai criteri che hai esposto e copia i dati che rientrano in questi criteri in modo automatico al cambiare dei valori scritti in B2:B4 oppure lanciata con un pulsante
Tu come te la cavi con il VBA?

B. con un filtro che imposti manualmente sulle tre colonne e poi copia incolla sulle due colonne "D:E"


C. con il registratore di macro puoi ripetere i passi del punto B ed adattare il codice ottenuto
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Macro (o funzione) per filtrare/cercare valori

Postdi edino » 16/09/14 16:20

Allora, la versione con macro che copia i dati in modo automatico sarebbe ottima.
Purtroppo però non ho conoscenza dell'ambiente VBA.

La copia manuale non la vedo interessante, perchè lo scopo del tool è quello di creare una lista in modo automatico e veloce senza ricorrere a filtri o copia/incolla manuali.

La strada C mi sembra interessante perchè adatta anche a inesperti e soprattutto leggendo gli altri post ho visto che è possibile intervenire anche manualmente sulla macro registrata.
Potreste indicarmi da dove partire però?
Ho capito come registrare tecnicamente la macro, ma non come ottenere la copia/incolla e il filtro in funzione di B2,B3,B4....

Grazie 1000
MS Office 2007-2010
Win7
edino
Utente Junior
 
Post: 17
Iscritto il: 15/09/14 14:49

Re: [Excel] Macro (o funzione) per filtrare/cercare valori

Postdi ricky53 » 16/09/14 16:33

Ciao,
fai i passi con il registratore:
filtrare e copia/incolla
e poi invia la macro ottenuta e ci lavoriamo su.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Macro (o funzione) per filtrare/cercare valori

Postdi wallace&gromit » 16/09/14 20:18

ciao,
ci sarebbe anche la variante D: usare il filtro avanzato invece di quello automatico.
Magari una volta che vedo la disposizione dei dati posso proporre qualcosa.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: [Excel] Macro (o funzione) per filtrare/cercare valori

Postdi edino » 17/09/14 15:00

Ciao,
vi ringrazio intanto per i suggerimenti.
Allego il file iniziale del tool.

http://www.filedropper.com/tooledin

Direi di lavorare direttamente sul file che devo costruire invece che sull'esempio iniziale in modo da facilitare tutti...

Foglio "Ricerca_Modulo" contiene:
B1:B5 le condizioni (B1 è inserita dall'utente, mentre B2:B5 sono dei menù a tendina)

Invece dalla riga 8 fino alla 25 (o anche oltre...) devono essere restituiti i dati copiati dal foglio "Modulo"
MS Office 2007-2010
Win7
edino
Utente Junior
 
Post: 17
Iscritto il: 15/09/14 14:49

Re: [Excel] Macro (o funzione) per filtrare/cercare valori

Postdi ricky53 » 17/09/14 15:28

Ciao,
dovresti dire da quali colonne prendere i dati ed in quali colonne scriverli ... i nomi delle colonne nel foglio "Modulo" e nel foglio "Ricerca_Modulo" NON sono proprio identici/corrispondenti ... devi darci la corrispondenza !


Da come è organizzato il foglio "Modulo" io ci vedo bene (e SOLO) una macro che faccia le operazioni richieste.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Macro (o funzione) per filtrare/cercare valori

Postdi edino » 17/09/14 16:50

Target LUMEN - Flux Max (da "Modulo") qui l'idea è di mettere tutte le righe con "Flux Max" >= di "Target LUMEN"*0,9 (mi tengo un 10% in meno...)
Tipo circuito - Tipologia (da "PCB"); il modulo è composto da PCB + LED, quindi avendo nel foglio modulo il riferimento al PCB (colonna C) da quel codice posso ricavarmi la tipologia dal foglio "PCB"
Alimentazione - Alimentazione (da "Modulo")
Dimmerabile - Dimmerabile (da "Modulo")
Tipologia dimmer - Tipo dimmerazione (da "Modulo")

Queste sono le colonne di riferimento.

Invece in B2:B5 ho utilizzato convalida dati prendendo i valori da "Leggenda"

Ciao
MS Office 2007-2010
Win7
edino
Utente Junior
 
Post: 17
Iscritto il: 15/09/14 14:49

Re: [Excel] Macro (o funzione) per filtrare/cercare valori

Postdi Anthony47 » 21/09/14 23:02

Sposo l' intuizione di W&G per il filtro avanzato (viewtopic.php?f=26&t=102753&p=596639#p596584), una soluzione gia' disponibile nel prezzo della licenza, che l' utente puo' disegnare come vuole.

I criteri possono essere indicati come >, <, =; possono essere messi in And (se sulla stessa riga) o in Or (se su righe successive); possono usare caratteri jolly nei testi; e altro ancora, descritto nell' help on line alla voce "Filtrare utilizzando criteri avanzati".

Se decidi di sperimentare questa via, tieni presente che una riga vuota di criteri equivale a dire "visualizza tutto", quindi nelle finestra di dialogo "Filtro avanzato" l' intervallo dei criteri deve fermarsi all' ultima riga popolata (partendo dalla riga che contiene le etichette del campo). Volendo, dopo aver impostato un tot di criteri procedi a registrare una macro mentre avvii il filtro automatico, imposti l' area dedicata ai filtri, imposti l' area dei dati da filtrare, premi Ok; poi nella macro ottenuta sostituisci la parte del tipo
...., CriteriaRange:= Range("A1:E4"), ....
con
...., CriteriaRange:= Range("A1").CurrentRegion, ....
Nota1: la parte da modificare e' inclusa in una riga piu' complessa, in fuzione dei comandi e delle aree indicate mentre si registrava la macro; non dovrebbe essere difficile identificare la parte da sostituire, ma se hai difficolta' siamo qui.
Nota2: ho ipotizzato che ci siano 5 colonne di criteri con tre righe compilate, oltre la riga 1 di intestazioni

Con questa modifica bastera' lanciare la macro (anche con un Pulsante o un tasto di scelta rapida) per avere l' elenco filtrato.
Volendo, la stessa macro autoregistrata puo' occuparsi di copiare l' elenco prodotto dal filtro e incollarlo in un' altra posizione; ma la mia preferenza e' per usare una seconda macro, da attivarsi (tramite altro pulsante o tasto di scelta rapida) dopo aver verificato la validita' del filtro applicato.
La copia dell' area filtrata in altra posizione si produce con l' istruzione
Codice: Seleziona tutto
Range("A7").CurrentRegion.Copy Destination:=Sheets("Foglio2").Range("A1")
Questa ipotizza che l' area dati cominci da A7, e che l' area filtrata debba essere copiata su Foglio2-A1; adatta secondo il tuo caso.

Ciao a tutti.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Macro (o funzione) per filtrare/cercare valori

Postdi edino » 22/09/14 20:44

Ciao, grazie intanto per i consigli...
Vedo di cominciare a lavorarci, e vi faccio sapere se ho altri dubbi...
MS Office 2007-2010
Win7
edino
Utente Junior
 
Post: 17
Iscritto il: 15/09/14 14:49


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Macro (o funzione) per filtrare/cercare valori":


Chi c’è in linea

Visitano il forum: Nessuno e 53 ospiti