A mio parere, per avere la maggiore elasticità possibile per poter associare alle parole chiave la voce desiderata (es. Sopravvenienza=Varie), occorrerebbe creare una tabella dove ad ogni parola chiave associare la voce desiderata.
Se hai Excel2007 o superiori utilizare proprio la funzionalità "Inserisci Tabella" (che tra l'altro con le versioni successive si espande automaticamente man mano che si aggiunge una voce sotto l'altra).
Poi ci si può affidare al VBA per l'assegnazione delle voci in base al testo presente nella cella.
Vedi questo file dove ho un foglio nominato Foglio1 e un altro foglio nominato Chiavi_e_Voci al cui interno è presente una "Tabella" che, una volta creata con l'apposita funzionalità, ho rinominato TabellaChiaviVoci dove ho inserito le varie parole chiave ed associato la voce desiderata per la stessa parola chiave.
https://www.dropbox.com/s/0ecf4v62fkyilie/Se%20la%20cella%20contiene%20la%20parola.....allora.xlsm?dl=0
Poi nel VBA ho scritto una FDU (funzione definita dall'utente) che ha due argomenti.
Il primo argomento StringaTesto rappresenta la stringa di testo all'interno della quale verificare se è presente una delle parole chiave.
Il secondo argomento TabellaChiaviVoci rappresenta l'intervallo (range) dove sono riportate le parole chiave e le voci collegate.
La funzione effettua un ciclo per ogni parola chiave e una di queste viene trovata nella stringa di testo ferma il ciclo e assegna alla funzione il valore rappresentato dalla voce collegato alla parola chiave.
Nel file la funzione è utilizzata, in colonna B del Foglio1, direttamente nella cella (come una qualsiasi funzione di excel) .
Ma, considerato che alla lunga e in presenza di molte parole chiave da ricercare, il ricalcolo si appesantirebbe nulla vieterebbe di implementare una procedura VBA che, individuato l'intervallo delle stringhe da lavorare, inserisca il valore restituito dalla funzion via VBA.
Questa è la FDU presente nel modulo1:
Function AssegnaVoci(StringaTesto As String, TabellaChiaviVoci As Range) As String
Dim arrChiaviVoci As Variant
Dim i As Long
arrChiaviVoci = TabellaChiaviVoci.Value
For i = 1 To UBound(arrChiaviVoci, 1)
If arrChiaviVoci(i, 1) <> "" Then
If InStr(1, StringaTesto, arrChiaviVoci(i, 1), vbTextCompare) > 0 Then
AssegnaVoci = arrChiaviVoci(i, 2)
Exit For
End If
End If
Next i
End Function