Condividi:        

[EXCEL] Estrarre le coincidenze linee bus alle varie fermate

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] Estrarre le coincidenze linee bus alle varie fermate

Postdi fcudia » 09/02/12 15:06

Buonasera a tutti,
Ho un problemino che vorrei risolvere con Excel, che conosco, a differenza di Access di cui non conosco nulla.
In una tabella di excel ho una serie di dati delle linee di trasporto urbano, con l'elencazione di tutte le fermate.
Per semplificare tratto solo i dati della tabella che interessano, cioè i seguenti campi:

Linea = numero della linea;
Progr. Fermata = nr. sequenziale della fermata all'interno di quella linea;
Codice Fermata = nr. univoco attribuito alla fermata;
Descr. Fermata = descrizione della fermata (nome fermata);
Direzione = Direzione di transito del bus, cioè verso quale capolinea va.

Vorrei sapere come poter generare un elenco o report in cui per ogni "Codice Fermata", oltre alla descrizione della stessa mi elenchi tutte le linee in coincidenza, cioè tutte le linee che passano da quella specifica fermata.
Il problema che trovo è nel mettere tutte le linee sulla stessa riga del Codice Fermata, ad esempio:

Cod.F - fermata - Coincidenze
1 - Via Libertà - Linee 100, 110, 112, 344, 650
2 - Via Garibaldi - Linee 210, 233, 256, 450

Vi ringrazio in anticipo, sperando ci possa essere una soluzione in excel.

Fabrizio
fcudia
Utente Junior
 
Post: 37
Iscritto il: 20/06/09 14:53

Sponsor
 

Re: [EXCEL] Estrarre le coincidenze linee bus alle varie fer

Postdi ricky53 » 09/02/12 18:27

Ciao,
potresti utilizzare una "Tabella PIVOT" però ... occorre che i dati siano ben organizzati e, inoltre, non ci siano celle/righe/colonne vuote.

Puoi inviare una descrizione della struttura dei tuoi dati:
intestazioni di colonna e dati contenuti nelle varie colonne/righe/celle.
I dati sono su più foglio?

Un'immagine di parte di un tuo foglio potrebbe essere di aiuto.
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] Estrarre le coincidenze linee bus alle varie fer

Postdi wallace&gromit » 09/02/12 21:18

ciao, penso che si possa risolvere facilmente con una tabella ben strutturata semplicemente applicando dei filtri automatici.
L'importante è che per ogni riga figuri sempre un solo valore per ogni dato.
Quindi per indicare che da una fermata passano diverse linee dovrai ripetere il nome della fermata su varie righe, ognuna con un numero di linea diverso.
Applicando il filtro al numero di linea otterrai tutte le fermate percorse da quel bus, applicandolo al nome della fermata troverai tutte le linee che vi passano, ecc.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: [EXCEL] Estrarre le coincidenze linee bus alle varie fer

Postdi Anthony47 » 09/02/12 22:09

Penso che sia interessante il suggerimento di wallace&gromit (vedi sopra); se pero' con quello spunto non risolvi allora e' meglio descrivere bene il layout dei tuoi dati e postare un file con un esempio sufficientemente ampio di informazioni da usarsi come collaudo di quanto si andra' sviluppando.
Per come fare vedi qui: : viewtopic.php?f=26&t=80395

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

Re: [EXCEL] Estrarre le coincidenze linee bus alle varie fer

Postdi fcudia » 10/02/12 10:36

Buongiorno a tutti,
Vi ringrazio per i suggerimenti, e fin quì ci arrivavo, il mio problema è che vorrei avere, possibilmente su un'unica riga, ad ogni nome fermata tutte le linee in coincidenza, con la direzione (o anche senza, devo ancora decidere).
Vi posto un file di esempio in cui ho selezionato solo le linee della classe 300, suddivise in _A e _B (tratta di andata/ritorno, lo si evince anche dalla descrizione della direzione).

https://rapidshare.com/files/2735157441/Prova_Linee.xlsx

Il risultato finale, che vorrei in un nuovo foglio, dovrebbe essere questo:

https://rapidshare.com/files/3438900449/Coincidenze.jpg

P.S. Le linee in coincidenza, per me, potrebbero anche essere inserite in sequenza in un'unica cella.

Spero di essere stato chiaro e vi ringazio per i suggerimenti ed il tempo dedicato a risolvere il mio problema.
Ciao

Fabrizio
fcudia
Utente Junior
 
Post: 37
Iscritto il: 20/06/09 14:53

Re: [EXCEL] Estrarre le coincidenze linee bus alle varie fer

Postdi Flash30005 » 10/02/12 13:23

Utilizzando il Foglio1 e Foglio2
nel foglio2 inserisci la testata
in un modulo incolla questa macro
Codice: Seleziona tutto
Sub CompilaCoinc()
Set Ws1 = Worksheets("Foglio1")
Set Ws2 = Worksheets("Foglio2")
UR1 = Ws1.Range("A" & Rows.Count).End(xlUp).Row
UR2 = Ws2.Range("A" & Rows.Count).End(xlUp).Row
If UR2 < 2 Then UR2 = 2
Ws2.Range("A2:C" & UR2).ClearContents
MaxL = 0
For RR1 = 2 To UR1
If Ws1.Range("C" & RR1).Value > MaxL Then MaxL = Ws1.Range("C" & RR1).Value
Next RR1
MLL = 0
For LL = 1 To MaxL
    StrL = ""
    For RR1 = 2 To UR1
        If Ws1.Range("C" & RR1).Value = LL Then
            If MLL <> LL Then
                URS = Ws2.Range("A" & Rows.Count).End(xlUp).Row + 1
                Ws2.Range("A" & URS).Value = LL
                Ws2.Range("B" & URS).Value = Ws1.Range("D" & RR1).Value
                Ws2.Range("C" & URS).Value = Ws1.Range("A" & RR1).Value
                StrL = Ws1.Range("A" & RR1).Value & " "
                MLL = LL
            Else
                StrL = StrL & Ws1.Range("A" & RR1).Value & " "
            End If
        End If
           
    Next RR1
    Ws2.Range("C" & URS).Value = StrL
Next LL
End Sub


Avvia la macro come ti è più comodo (pulsante, tasti scelta rapida etc)

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL] Estrarre le coincidenze linee bus alle varie fer

Postdi fcudia » 13/02/12 08:53

Grazie mille Flash,
Funziona tutto alla grande.
Un ultima domanda, è anche possibile mettere le linee in coincidenza una per ogni cella adiacente? e se si quali modifiche al codice si devono apportare?
Grazie sempre a tutti Voi.

Fabrizio
fcudia
Utente Junior
 
Post: 37
Iscritto il: 20/06/09 14:53

Re: [EXCEL] Estrarre le coincidenze linee bus alle varie fer

Postdi Flash30005 » 13/02/12 09:23

Sostituisci la precedente macro con questa

Codice: Seleziona tutto
Sub CompilaCoinc()
Set Ws1 = Worksheets("Foglio1")
Set Ws2 = Worksheets("Foglio2")
UR1 = Ws1.Range("A" & Rows.Count).End(xlUp).Row
UR2 = Ws2.Range("A" & Rows.Count).End(xlUp).Row
If UR2 < 2 Then UR2 = 2
Ws2.Range("A2:BB" & UR2).ClearContents
MaxL = 0
For RR1 = 2 To UR1
If Ws1.Range("C" & RR1).Value > MaxL Then MaxL = Ws1.Range("C" & RR1).Value
Next RR1
MLL = 0
For LL = 1 To MaxL
    For RR1 = 2 To UR1
        If Ws1.Range("C" & RR1).Value = LL Then
            If MLL <> LL Then
                URS = Ws2.Range("A" & Rows.Count).End(xlUp).Row + 1
                Ws2.Range("A" & URS).Value = LL
                Ws2.Range("B" & URS).Value = Ws1.Range("D" & RR1).Value
                Ws2.Range("C" & URS).Value = Ws1.Range("A" & RR1).Value
                MLL = LL
            Else
            UC2 = Ws2.Cells(URS, 200).End(xlToLeft).Column + 1
            Ws2.Cells(URS, UC2).Value = Ws1.Range("A" & RR1).Value
            End If
        End If
     Next RR1
Next LL
End Sub


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL] Estrarre le coincidenze linee bus alle varie fer

Postdi fcudia » 13/02/12 12:42

Provata, e funziona perfettamente, di nuovo mille grazie.
Adesso ci studio un pò, per cercare d'imparare qulacosa da questo codice, che spero di poter riutilizzare anche in altre elaborazioni.
Di nuovo grazie e a presto.

Fabrizio
fcudia
Utente Junior
 
Post: 37
Iscritto il: 20/06/09 14:53

Re: [EXCEL] Estrarre le coincidenze linee bus alle varie fer

Postdi fcudia » 15/02/12 17:48

Ciao Flash,
Solo oggi pomeriggio sono riuscito a studiare un pò il codice che hai postato, credo di aver capito come funziona e sono riuscito a fare alcune modifiche che possono rendere più intelligibili i dati generati.
Avrei bisogno di sapere, in riferimento al primo codice che mi hai postato (quello che mette tutte le coincidenze in un'unica cella), se è possibile mettere dopo ogni linea in coincidenza, al posto dello spazio, il carattere "a capo", in modo da avere un'unica cella che ha le linee in coincidenza che si leggono impilate una sopra all'altra.
Per essere più chiaro, come se all'interno della cella dopo ogni linea in coincidenza, inserissimo manualmente il carattere ALT+INVIO.
Ti posto la porzione di codice evidenziando in grassetto le due righe da modificare:

StrL = Ws1.Range("A" & RR1).Value & " "
MLL = LL
Else
StrL = StrL & Ws1.Range("A" & RR1).Value & " "
End If
End If

Ovviamente mi riferisco solo al carattere " " a cui vorri sostituire il codice per simulare ALT+INVIO.

Spero di essere stato chiaro e ti ringrazio nuovamente per il tempo che vorrai dedicarmi.
Buona serata.

Fabrizio
fcudia
Utente Junior
 
Post: 37
Iscritto il: 20/06/09 14:53

Re: [EXCEL] Estrarre le coincidenze linee bus alle varie fer

Postdi Anthony47 » 15/02/12 23:04

Ma hai provato il risultato visivo di quanto chiedi?
Comunque se sei convinto allora sostituisci i due & " " con & Chr(10)

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

Re: [EXCEL] Estrarre le coincidenze linee bus alle varie fer

Postdi fcudia » 16/02/12 09:14

Ciao Anthony,
Si ho provato ed è il risultato visivo che cercavo. Infatti ho modificato il codice e adesso al posto del solo nr. di linea, inserisco Linea e Direzione (colonna E di foglio 1), che su una sola riga creavano confusione. Così invece ho in corrispondenza di ogni fermata, l'elenco delle linee in coincidenza con la direzione, cioè verso quale capolinea vanno.
Appena sistemo il codice con la modifica lo posto sul forum, magari potrà essere utile a qualcun'altro.
Grazie sempre a te ed a Flash, buona giornata a tutti.

Fabrizio
fcudia
Utente Junior
 
Post: 37
Iscritto il: 20/06/09 14:53


Torna a Applicazioni Office Windows


Topic correlati a "[EXCEL] Estrarre le coincidenze linee bus alle varie fermate":


Chi c’è in linea

Visitano il forum: raimea e 98 ospiti