Come ricavare la keyword density con Microsoft Excel

A differenza di Microsoft Word, Excel non offre una funzione per conteggiare il numerod i parole presente in una cella.

Del resto la funzione di un foglio di calcolo è tutt’altra. Tuttavia, spesso e volentieri un foglio di calcolo ben si presta ad attività congiunte dove per ricavare i numeri è necessario fare alcune “considerazioni” a monte.
keyword density

Nel mio caso mi serviva uno strumento al volo che, dato una lista piuttosto nutrita di stringhe (leggi meta tag title) mi dicesse quanti caratteri e quante parole costituissero la stringa in questione, nonchè la prossimita’ di una parola chiave rispetto al titolo.

L’unica funzione tra quelle citate che era immediatamente disponibile era il conteggio dei caratteri che con Excel è facilmente ottenibile con la seguente formula:

=LEN(REF)

Dove al posto di REF va messo il riferimento della cella che ci interessa.

Non credo che vado spiegato cosa il comando realmente faccia.

Di quante parole è formato il mio meta tag title?

Quanto al secondo quesito, per ottenere il risultato ho dovuto far ricorso – oltre che alla funzione sopra – anche con altri due comandi, il SUBSTITUTE e il TRIM.

Come dice la parola stessa, il SUBSTITUTE serve a sostituire all’interno di una stringa un testo con uno differente, mentre é compito del TRIM rimuovere gli spazi in eccesso immediatamente prima e dopo l’inizio di una stringa.
Nulla di trascendentale quindi.

La sintassi del commando è = SUBSTITUTE (string,old_text,new_text,[times]) mentre quella del TRIM, è come per il comando LEN, ovvero solo il riferimento della cella che ci interessa.

Così se abbiamo una stringa “ ciao come stai “, questa diventa “ciao come stai” (notate gli spazi).
E veniamo alla formula completa per trovare il numero di parole in una cella.

=LEN(TRIM(REF))-LEN(SUBSTITUTE(TRIM(REF),” “,””))+(LEN(REF)>1)

Ovviamente la formula fa qualche cosa in più di quanto dichiarato, compreso un controllo d’errore, che forse è superfluo spiegare.

Calcolare la densità del mio meta tag title

Il compito “difficile” è stato quello di calcolare la densità, non tanto per la formula matematica, quando per ottenere un foglio di lavoro semi-automatico che si basasse su di una cella di lavoro unica.

Così sulla falsa riga della formula precedente (di cui ho utilizzato il valore come addendo) per l’operazione finale ecco cosa dovreste scrivere nella vostra cella per ricavare la densità del vostro meta tag title.

=(LEN(TRIM(MID(A2,1,IF(ISERR(FIND(B2,A2)), 0, FIND(B2,A2)))))-LEN(SUBSTITUTE(MID(A2,1,IF(ISERR(FIND(B2,A2)), 0, FIND(B2,A2))),” “,””))+IF(ISERR(FIND(B2,A2)), 0,1))/C2*100

La funzione tiene in considerazione del casing della parola chiave, ovvero maiuscole e minuscole fanno differenza e comunque presenta dei limiti strutturali. Ho infatti tenuto conto solo della prima occorrenza trovata.

Se quindi il vostro titolo contiene “ciao ciao” e io cerco “ciao” la densità sarà del 50%, che è comunque il ragionamento che di base applica qualsiasi motore di ricerca durante l’analisi individuale del singolo fattore.

Fare qualcosa di più complesso non rientrava nella mia specifica necessità, ma qua ho fornito tutte le basi per poter eventualemente ragionare su qualcosa di più complesso che non dovrebbe essere difficile raggiungere con qualche ora di programamzione VBA.

Un’ultima nota. Laddove formattiate la vostra cella in percentuale, ricordatevi di aggiungere alla fine della formula sopra un ulteriore “/100” senza gli apici, altrimenti non vi ridaranno mai i conti.

Technorati Tags: , ,

3 thoughts on “Come ricavare la keyword density con Microsoft Excel”

  1. Ciao, complimenti per l’articolo, davvero molto interessante! Unico piccolo neo è che la stringa è per la versione di excel in inglese, mentre io ho quella in italiano… ho provato a trascriverla ma senza successo… ti scrivo la formula riscritta ma errata:

    (LUNGHEZZA(ANNULLA.SPAZI(STRINGA.ESTRAI(A2;1;SE(VAL.ERR(RICERCA(B2;A2)); 0; RICERCA(B2;A2)))))-LUNGHEZZA(SOSTITUISCI(STRINGA.ESTRAI(A2;1;SE(VAL.ERR(RICERCA(B2;A2)); 0, RICERCA(B2;A2))),” “,””))+SE(VAL.ERR(RICERCA(B2,A2)), 0,1))/C2*100

    non è che potresti cortesemente darci un occhio? sicuramente sei piu esperto di me con excel!

    Grazie mille e ancora complimenti!

    1. Ciao Riccardo,

      purtroppo non ho una versione italiana di Excel e non posso aiutarti. Detesto i software in italiano. Ci sono certamente in rete diversi siti che hanno la lista delle funzioni con la loro controparte italiana. Sicuramente Google ti può aiutare.

Comments are closed.