Mi trovo in questa situazione.
In un foglio Excel c'è un campo che si chiama "Costo (€/ton)"
Pensavo che fosse normale che l'utente inserisse un numero o niente, invece mi trovo per esempio:

cella vuota
3,4
€ 3,4 a tonnellata
3.4 €/tonnellata
gratis


e questo è solo quello che ho visto io; ma scrivono anche di peggio.

Ho pensato di scremare questi dati con una funziona VBA.
Dato che non sono pratico di Excel, anche se sembra funzionare, vi prego di darle un'occhiata, e di migliorarla se il caso.
codice:
Public Function TrovaN(source)
    Dim result
    Dim pattern
    pattern = "(\d+)([\.,]\d+)?"
    Dim r As New VBScript_RegExp_55.RegExp
    r.pattern = pattern
    Dim matches, Match
    
    If r.Test(source) Then
        Set matches = r.Execute(source)
        For Each Match In matches
            result = Match
            Exit For
        Next
    End If
    result = Replace(result, ".", ",")
    If IsNumeric(result) Then result = CDbl(result)
    TrovaN = result
End Function
richiamabile naturalmente con
=TrovaN(A1)