Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel] Binarizzare i dati

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] Binarizzare i dati

Postdi buccia » 26/01/06 21:52

Ciao a tutti ho un problema, devo binarizzare dei dati con excel: vi spiego la tabella com'è e come deve diventare.

Codice: Seleziona tutto
IP      SESSIONE        DATA                   ORA     PAGINA_VISITATA
...         1           ....                   ....       PAGINA_X
...         1           ....                   ....       PAGINA_Q
...         2           ....                   ....       PAGINA_E
...         2           ....                   ....       PAGINA_X
...         3           ....                   ....       PAGINA_H
...         3           ....                   ....       PAGINA_Q

DOVE GLI IP PER SESSIONE SONO UGUALI.

IO DEVO OTTENERE UNA TABELLA DOVE:
Codice: Seleziona tutto
SES         PAG_A         PAG_E        PAG_X        PAG_H          PAG_ Q
1             0             0           1             0                1
2             0             1           1             0                0

0 PER PAGINA NON VISITATA E 1 PER VISITATA.

... E COSI VIA...

SOLO CHE LE PAGINE SONO 20.000 E LE SESSIONI 7.000 FARLO MANUALMENTE è UN PO' IMPOSSIBILE. COME POSSO FARE? CI SONO DELLE FORMULE CHE MI PERMETTONO DI BINARIZZARE IN AUTOMATICO? :undecided:

SPERO SI CAPISCA ...

SE QUALCUNO MI DA UNA MANO MI FAREBBE UN FAVORE ENORME!
GRAZIE GIA DA ORA A CHI MI RISPONDERA! :D

[edit]
Aggiunte tag "code" per incolonnare bene la tabella, dopo averla rieditata in editor di testi.
<cassioli>
buccia
Newbie
 
Post: 1
Iscritto il: 26/01/06 21:39

Sponsor
 

Postdi cassioli » 27/01/06 14:47

Innanzitutto ricordati di non scrivere mai sempre TUTTO MAIUSCOLO IN UN FORUM perche' equivale a GRIDARE ed è fastidioso da leggere.

Secondo... ben arrivato nel forum! ;)

Per finire: credo che la complessita' del problema richieda l'uso del linguaggio di programmazione integrato in Excel (Visual Basic), "attivabile" con ALT+F11 .
Il contenuto di una cella è indicato da CELLS(x,y) . Il resto... è semplice BASIC! ;)
cassioli
Utente Senior
 
Post: 1014
Iscritto il: 05/03/04 11:02

Postdi cassioli » 27/01/06 15:29

Vedi un po' se cosi' funziona:

Codice: Seleziona tutto
Option Explicit

Sub ControllaPaginePerSessione()
Const PRIMARIGA = 2
Const PRIMACOLONNA = 1
Const MAXPAGINE = 50
Const PRIMARIGA_RISULTATI = 1
Const PRIMACOLONNA_RISULTATI = 8

Dim riga As Integer
Dim sessione$
Dim VecchiaSessione$
Dim IP$
Dim data$
Dim ora$
Dim pagina$
Dim confronto$
Dim IndicePagine As Integer
Dim RigaRisultati As Integer

riga = PRIMARIGA
sessione$ = "dummy"
RigaRisultati = 2
While sessione$ <> ""
    IP$ = Cells(riga, PRIMACOLONNA + 0)
    sessione$ = Cells(riga, PRIMACOLONNA + 1)
    data$ = Cells(riga, PRIMACOLONNA + 2)
    ora$ = Cells(riga, PRIMACOLONNA + 3)
    pagina$ = Cells(riga, PRIMACOLONNA + 4)
    For IndicePagine = 1 To MAXPAGINE
        confronto$ = Cells(PRIMARIGA_RISULTATI, PRIMACOLONNA_RISULTATI - 1 + IndicePagine)
        If pagina$ = confronto$ Then
            Cells(RigaRisultati, PRIMACOLONNA_RISULTATI - 1) = sessione$
            Cells(RigaRisultati, PRIMACOLONNA_RISULTATI - 1 + IndicePagine) = "1"
            Exit For
        End If
    Next
    riga = riga + 1
    VecchiaSessione$ = sessione$
    sessione$ = Cells(riga, PRIMACOLONNA + 1) ' Aggiorna per iterare.
    If VecchiaSessione$ <> sessione$ Then
        RigaRisultati = RigaRisultati + 1
    End If
   
Wend
End Sub


Metti la tua tabella nelle colonne a-e;
Nella casella G1 scrivi "sessione";
Nelle caselle da h1 a z1 scrivi i nomi della pagine;

Avvia la macro e vediamo... ;)
cassioli
Utente Senior
 
Post: 1014
Iscritto il: 05/03/04 11:02


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Binarizzare i dati":


Chi c’è in linea

Visitano il forum: raimea e 25 ospiti