Formula Excel per estrarre parte di testo usando come riferimento l'ultimo punto (punteggiatura) da destra. Excel + Bloomberg

Anonimo
2010-10-08T08:02:30+00:00

Buongiorno,

ho il seguente problema. Scaricando i dati di ticker Bloomberg, in particolare le descrizioni delle attività di un titolo quotato (BDP ticker Bloomberg; CIE_DES), solo una parte dell'entira descrizione è disponibile in una cella (con un altro comando si potrebbe scaricare l'intera descrizione, ma in un max di 5 celle). Volendo la descrizione in una unica cella, e non desiderando frasi trocate, vorrei sapere se fosse possibile estrarre solo parte del testo scaricato. In particolare se fosse possibile tagliare la frase usando come riferimento il primo punto di punteggiatura, partendo da destra.

es: frase scaricata

Solarworld AG develops and produces solar technologies. The Company produces silicon wafers and manufactures solar cells and complete solar modules and components used to generate solar<br> energy. Solarworld also recycles silicon and by-products from solar<br><br><br>frase desiderata da visualizzare:<br><br><br><br><br><br><br> Solarworld AG develops and produces solar technologies. The Company produces silicon wafers and manufactures solar cells and complete solar modules and components used to generate solar<br> energy.<br><br><br>grazie <br> ---
Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2010-10-08T13:45:05+00:00

ciao,

abbiamo provato adesso.

Azzardo...La formula sembra non riconoscere gli spazi, il risultato è sempre il periodo stesso. L'esempio, A1: a.b.c.d.e. forse considera una parola / frase unica, nonostante i punti.

Mancano gli spazi  tra le frasi.

Forse a. b. c. d. e. rappresenta meglio la successione di più frasi in un periodo.

grazie / paolo

Prova così:

Public Function f(ByVal v As Variant) As String

    Dim lng As Long

    Dim sa As Variant

    Dim lCont As Long

    Application.Volatile

    f = ""

    sa = Split(Mid(Trim(v), 1, Len(Trim(v)) - 1), ".")

    lCont = UBound(sa)

    For lng = 0 To UBound(sa) - 1

        f = f & sa(lng) & "."

    Next

End Function

Fai sapere, grazie.


--

La soluzione, il codice ed i files sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dalla soluzione proposta se usata impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare la soluzione in files importanti.

--

Mauro Gamberini - Microsoft© MVP(Excel)

http://www.maurogsc.eu/

La risposta è stata utile?

0 commenti Nessun commento

26 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2010-10-08T13:08:52+00:00

    ciao,

    abbiamo provato adesso.

    Azzardo...La formula sembra non riconoscere gli spazi, il risultato è sempre il periodo stesso. L'esempio, A1: a.b.c.d.e. forse considera una parola / frase unica, nonostante i punti.

    Mancano gli spazi  tra le frasi.

    Forse a. b. c. d. e. rappresenta meglio la successione di più frasi in un periodo.

    grazie / paolo

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2010-10-08T12:45:39+00:00

    pefetto: grazie mille per rapidità e completezza. Proverò subito.

    paolo

    Bene. fai sapere, grazie.


    --

    La soluzione, il codice ed i files sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dalla soluzione proposta se usata impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare la soluzione in files importanti.

    --

    Mauro Gamberini - Microsoft© MVP(Excel)

    http://www.maurogsc.eu/

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2010-10-08T12:31:58+00:00

    pefetto: grazie mille per rapidità e completezza. Proverò subito.

    paolo

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2010-10-08T09:54:00+00:00

    Buongiorno,

    ho il seguente problema. Scaricando i dati di ticker Bloomberg, in particolare le descrizioni delle attività di un titolo quotato (BDP ticker Bloomberg; CIE_DES), solo una parte dell'entira descrizione è disponibile in una cella (con un altro comando si potrebbe scaricare l'intera descrizione, ma in un max di 5 celle). Volendo la descrizione in una unica cella, e non desiderando frasi trocate, vorrei sapere se fosse possibile estrarre solo parte del testo scaricato. In particolare se fosse possibile tagliare la frase usando come riferimento il primo punto di punteggiatura, partendo da destra.

    <cut>

    Questa UDF da copia/incollare in un modulo standard(ALT+F11, Inserisci-->Modulo), fa quanto chiedi:

    Public Function f(ByVal v As Variant) As String

        Dim lng As Long

        Dim sa As Variant

        Application.Volatile

        sa = Split(v, ".")

        lng = UBound(sa)

        If sa(lng) = "" Then

            f = Mid(v, 1, Len(v) - Len(sa(lng - 1)) - 1)

        Else

            f = Mid(v, 1, Len(v) - Len(sa(lng - 1)))

        End If

    End Function

    A1: a.b.c.d.e.

    B1: =f(A1)  Risultato a.b.c.d.


    --

    La soluzione, il codice ed i files sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dalla soluzione proposta se usata impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare la soluzione in files importanti.

    --

    Mauro Gamberini - Microsoft© MVP(Excel)

    http://www.maurogsc.eu/

    La risposta è stata utile?

    0 commenti Nessun commento