Aiuto! Selezione dati di diversi database su singolo foglio

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
HunterOne
Messaggi: 2
Iscritto il: martedì 17 aprile 2012, 15:25

Aiuto! Selezione dati di diversi database su singolo foglio

Messaggio da HunterOne »

Salve a tutti i membri del forum!

Il mio primo post, e ovviamente una richiesta di aiuto... :D

Sto lavorando su di un foglio CALC che racchiude diversi database importati da file CSV e TXT.
Si tratta di vecchie liste reperite dai computer di qualche amico; contengono informazioni su dischi in vinile; vecchie perché quasi tutte ante-internet... ho uniformato i contenuti e le colonne, di modo che ora i dati siano compatibili fra loro.

Ho organizzato il foglio di calcolo come il seguente - metto solo le prime colonne perché ce ne sono troppe; aggiungo qualche esempio:

Codice: Seleziona tutto

DB  TITOLO     ARTISTA     NAZIONE     REFERENZA      CODICE A BARRE     ANNO     COPERTINA     TRACCE
#1  titolo 1   artista 1   italia      10001          1234567890                         
#2  titolo 1   artista 1               10001                             1990    
#3  titolo 1   artista1    italia      10001                                      normale    
#4  titolo1    artista 1   italia      10001                                                    12
#1  titolo 2   artista 2   francia     20001          0987654321         1988                
#3  titolo2    artista 2               20001                                                    16
#4  titolo 2   artista2    italia      20001          0000000000                  cofanetto
DB è il database di provenienza: il primo (#1) è quello di rifermento, che contiene informazioni quasi tutte esatte; gli altri seguono, qualcuno con informazioni aggiuntive. Il numero di referenza è l'unico valore uguale per tutti i dischi, mentre il titolo e l'artista potrebbero essere diversi - ad esempio qualcuno ha "the" alla fine, altri all'inizio, qualcuno ha VVAA e altri AAVV etc.

Il risultato che vorrei ottenere è una sola riga per titolo, contenente tutte le informazioni derivate dalle diverse righe provenienti da database differenti... nel caso che la cella del db di riferimento #1 abbia il dato quello sarà mantenuto; nel caso non ci fosse, verrà presa la cella del db #2, se mancante del #3 e via dicendo, come nell'esempio seguente:

Codice: Seleziona tutto

DB  TITOLO     ARTISTA     NAZIONE     REFERENZA      CODICE A BARRE     ANNO     COPERTINA     TRACCE
new titolo 1   artista 1   italia      10001          1234567890         1990     normale       12
new titolo 2   artista 2   francia     20001          0987654321         1988     cofanetto     16
Ho cercato ovunque per settimane, senza aver trovato niente... con un foglio che conta oramai oltre centomila righe e un centinaio di colonne, non OSO nemmeno pensare di dover fare il lavoro a mano... :?

Qualcuno dirà che faccio prima a trovare un database "fatto e tutto"... però all'interno di questo foglio si trovano prima di tutto dischi sconosciuti non rientranti in database famosi, e poi voci insolite come "colore dell'etichetta", "colore del vinile"; "consistenza vinile" etc.

Qualcuno riesce a trovare una soluzione?

Grazie mille!
OpenOffice 3.1 & LibreOffice 3.3.0 su Windows XP & Ubuntu 10.04
Avatar utente
Mizio1961
Volontario
Volontario
Messaggi: 841
Iscritto il: mercoledì 5 ottobre 2011, 22:55
Località: Roma

Re: Aiuto! Selezione dati di diversi database su singolo fog

Messaggio da Mizio1961 »

Ciao
Una soluzione che mi viene in mente è lavorare con l'istruzione condizionale SE(...) e con l'istruzione CERCA.VERT(...) in Calc
Prova, altrimenti è' più facile a farsi che a dirsi.
Se puoi allegare un pezzettino significativo dei tuoi CSV o del file in Calc coi vari DB da interfacciare trovi sicuramente qualcuno in grado di risponderti
Saluti
OpenOffice Windows - Libre su Ubuntu Desktop e Notebook WiFi
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto. ;-)
HunterOne
Messaggi: 2
Iscritto il: martedì 17 aprile 2012, 15:25

Re: Aiuto! Selezione dati di diversi database su singolo fog

Messaggio da HunterOne »

Mizio, ho fatto come hai suggerito: ho messo il database in un foglio chiamato test, e nel foglio dopo ho usato questa formula:

Codice: Seleziona tutto

=SE(VAL.VUOTO(test.E2);test.E3;test.E2)
Ho fatto delle prove usando le righe pari per il db di riferimento, e quelle dispari per un altro db; ovviamente, ho copiato nel nuovo foglio la formula su tutte le celle pari e non quelle dispari.

Funziona, ma ho ancora un problema... se una cella è vuota, ottengo uno zero anziché una cella vuota... e poi vorrei far si che, ad esempio avendo per ogni titolo diverse righe (3, 4, 5...) si ottenga alla fine una sola riga per ogni titolo.

Vorrei implementare la funzione =IDENTICO per controllare se la referenza della riga inferiore al riferimento è uguale, e quindi portare i valori necessari sulla riga del riferimento, e farlo ancora finché si incontra una referenza uguale e quindi ricominciare - si veda l'esempio del primo post... ma non ho idea di come fare!

Mi sono spiegato bene? Perché mi sono perso anche io... :)
OpenOffice 3.1 & LibreOffice 3.3.0 su Windows XP & Ubuntu 10.04
Avatar utente
Mizio1961
Volontario
Volontario
Messaggi: 841
Iscritto il: mercoledì 5 ottobre 2011, 22:55
Località: Roma

Re: Aiuto! Selezione dati di diversi database su singolo fog

Messaggio da Mizio1961 »

Per eliminare lo 0 basta che ripeti il test SE() anche per 'test.E3' e metti "" (due volte doppi apici) nel ramo test.E3 = vuoto
Per il resto torno a chiederti un pezzetto del DB in ODS che è la via più veloce per trovare la/le giuste soluzioni
Saluti by Mizio ;)

Se il file è di grandi dimensioni puoi postarlo alla seguente casella gmail
vai a
mail.google.com
inserisci indirizzo in nomeutente

Indirizzo: oodocs.tutorial@gmail.com
Password: oodocs2012tut

Poi vai in documenti e aggiungi lo spezzone del tuo
OpenOffice Windows - Libre su Ubuntu Desktop e Notebook WiFi
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto. ;-)
Rispondi