Condividi:        

Estrazione Indice Analitico in Excel

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

Estrazione Indice Analitico in Excel

Postdi replymonster » 06/11/17 11:52

Buongiorno a tutti,

Mi rivolgo a voi più esperti nella speranza che possiate in qualche modo aiutarmi, e vi ringrazio anche solo per la lettura di ciò che segue.
Tendenzialmente il problema riguarda l'estrazione di un indice analitico in un foglio excel in modo tale che nella prima colonna ci sia il termine e nelle successive colonne ci sia il numero della pagina. Insomma, volevo sapere se era possibile vedere un indice analitico in un foglio excel strutturato in modo preciso. Ho già provato con vari metodi semplici ma sembra che una volta che importo i dati sul foglio excel risultano scardinati e strutturati male.

Dato che dovrò strutturare queste tabelle per oltre 50 mila termini da un indice analitico di oltre 150 pagine sarebbe comodo se ci fosse una maniera almeno di semi automatizzare questa procedura.

Se aveste bisogno di altre informazioni per favore non esitate a contattarmi o a rispondere al post.

Grazie per il vostro aiuto.

PS. Questa è la prima pagina di questo Indice Analitico di cui parlavo, non so se vi possa servire.
Immagine
replymonster
Utente Junior
 
Post: 30
Iscritto il: 06/11/17 11:45

Sponsor
 

Re: Estrazione Indice Analitico in Excel

Postdi Anthony47 » 06/11/17 13:27

Ovviamente non si potra' produrre un indice ragionato come quello che hai indicato (tipo Abacavir /effetti collaterali; Abacavir /considerazioni genetiche), possibile solo marcando i termini sul documento originale.
Ma probabilmente un elenco di parole e relativa pagina si puo' fare.
Ovviamente ripulire il risultato da termini inutili, sara' compito di chi sa quali sono i termini utili.

Mi sembra che si tratti di una applicazione per scopi commerciale, avrei quindi preferito che ti fossi rivolto a un professionista della programmazione (cosi' facevi girare anche l'economia; per evitare equivoci io non sono in quel settore). Comunque con un po' di tempo e pazienza (merce rara dalle mie parti) ci provero'. La velocita' potrebbe aumentare :D :D se ti impegni a versare un contributo (a piacere) a una onlus tipo Emergency oppure MediciSenzaFrontiere.

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

Re: Estrazione Indice Analitico in Excel

Postdi replymonster » 06/11/17 17:16

Intanto grazie per la risposta sincera e chiara riguardo l'argomento.
Mi rendo conto che è qualcosa di impossibile per quanto riguarda l'automatizzazione completa e che ciò che mi hai descritto già potrebbe farmi risparmiare molto tempo.

Per fare chiarezza invece io sono un semplice studente che è coinvolto in un progetto di ricerca dove la creazione di questo archivio potrebbe notevolmente aiutare il risultato scientifico. Ci tengo a dire che sono un volontario e non ho particolare competenza né nel campo medico né nel campo di programmazione, tanto è vero che mi hanno assegnato questo ruolo (che sarebbe semplicemente un copia/incolla alla fine) e avrei voluto sapere se ci fosse stata una soluzione più "svelta" ed ottimizzare i tempi.

Grazie a tutti.
replymonster
Utente Junior
 
Post: 30
Iscritto il: 06/11/17 11:45

Re: Estrazione Indice Analitico in Excel

Postdi Anthony47 » 07/11/17 15:59

Ho capito che non sei uno speculatore nonostante il nickname che ti sei scelto, quindi la donazione non e' obbligatoria...

A scopo dimostrativo guarda questo file Word:
https://www.dropbox.com/s/nr2pp5aq4f3eq ... .docm?dl=0

Contiene la macro Worder che e' in grado di esaminare le parole del documento e creare su un foglio excel il riepilogo delle parole e delle pagine in cui compaiono (una o piu' volte).

Ovviamente e' un indice "di parole", fa differenza tra singolare e plurale, maschile e femminile, non e' in grado di associare "Effetti collaterali", tantomeno di associarli all'Abacavir piuttosto che all'Abciximab.
Quindi non so che uso ne possa fare.

Il codice della macro:
Codice: Seleziona tutto
Sub Worder()
Dim Cont As Boolean, wDict As Object, cWord As String, miLen As Long
Dim XLApp As Object, cPage
'
miLen = 3           '<<< Lunghezza minima delle parole da prendere in considerazione
'
Set wDict = CreateObject("Scripting.Dictionary")
wDict.comparemode = 1
Selection.HomeKey Unit:=wdStory
Do
    If Not Cont Then
        Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=True: Cont = True
    Else
        Selection.Next(Unit:=wdWord, Count:=1).Select
    End If
    cPage = Selection.Information(wdActiveEndPageNumber)
    cWord = Trim(Selection.Range.Text)
    If Len(cWord) >= miLen Then
        If wDict.Exists(cWord) Then
            If InStr(1, wDict.Item(cWord), cPage & ",", vbTextCompare) = 0 Then
                wDict.Item(cWord) = wDict.Item(cWord) & cPage & ","
            End If
        Else
            wDict.Add (cWord), cPage & ","
        End If
    End If
    If Selection.Type = 2 And Selection.End = ActiveDocument.Content.End Then Exit Do
    DoEvents
Loop
If wDict.Count > 0 Then
Dim wKey, mySplit, iInd As Long
    Set XLApp = CreateObject("Excel.Application")
    XLApp.WindowState = -4143
    XLApp.Visible = True
    XLApp.workbooks.Add
    For Each wKey In wDict.keys
        iInd = iInd + 1
        mySplit = Split(wDict.Item(wKey), ",", , vbTextCompare)
        XLApp.sheets(1).Cells(iInd, 1) = wKey
        XLApp.sheets(1).Cells(iInd, 2).Resize(1, 1 + UBound(mySplit)) = mySplit
        DoEvents
    Next wKey
End If
Set XLApp = Nothing
MsgBox ("Completato conteggio; salva il file e CHIUDI la sessione corrente di Excel")
End Sub

La riga marcata <<< puo' essere modificata per variare la lunghezza minima delle parole da prendere in considerazione.
Per modificare la macro, partendo dal documento da esaminare:
-premere Alt-F8, scegliere Worder dall'elenco delle macro disponibili, premere Modifica; si aprira' l'editor delle macro e si potra' modificare il codice.

Per eseguire la macro, partendo dal documento da esaminare:
-premere Alt-F8, scegliere Worder dall'elenco delle macro disponibili, premere Esegui

Essa lavora sul documento corrente; ne scansiona tutte le parole di cui crea un Dizionario con il numero di pagina.
Finita la scansione delle parole, crea una sessione excel con un nuovo workbook vuoto, in cui inserisce le parole e, nelle colonne adiacenti, il numero di pagina in cui la parola compare una o piu' volte. Il completamento del processo e' segnalato da un messaggio.
Il file excel va salvato a mano, e la sessione excel va chiusa (perche' creata appositamente per questo processo).

Spero ci sia qualche spunto interessante.

Ciao

Keyw:
Word automation word counter index
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Estrazione Indice Analitico in Excel

Postdi replymonster » 08/11/17 10:52

Grazie tante per la fiducia e per l'impegno.

Mi sento costretto però, vista la mia grande inesperienza in questo campo, a domandarti come possa risolvere questo errore che mi si presenta una volta avviata la Macro:
"Errore di Runtime 429"
Il componente di ActiveX non è in grado di creare l'oggetto.
Riguardo la riga >> Set wDict = CreateObject("Scripting.Dictionary")

Perdonatemi ancora per la mia grande incompetenza perché immagino che la soluzione sia molto banale ma non riesco a trovarla.
PS. Sto lavorando con Office sul MAC, non so se questo può cambiare qualcosa.

Grazie per il vostro tempo.
replymonster
Utente Junior
 
Post: 30
Iscritto il: 06/11/17 11:45

Re: Estrazione Indice Analitico in Excel

Postdi Anthony47 » 08/11/17 19:24

Sto lavorando con Office sul MAC, non so se questo può cambiare qualcosa.
Si, questo cambia le cose, perche' il "dictionary" e' una struttura dati non disponibile sul Mac.
Provero' a modificare la macro per usare qualcosa d'altro.

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


Torna a Applicazioni Office Windows


Topic correlati a "Estrazione Indice Analitico in Excel":


Chi c’è in linea

Visitano il forum: Nessuno e 44 ospiti