Formula exel



  • Formula exel
    di Claudia data: 26/12/2014 18:49:54

    Ciao ragazi,
    ho bisogno di una formula che mi estrae da una riga una parte del testo, mi spiego.

    colonna "V" riga"2"
    media-live.icintracom.biz/catalog/product/i/m/img2545_3.jpg

    di questa riga ho bisogno da destra fino alla prima /

    quindi avrò "img2545_3.jpg"

    grazie... urgente



  • di Albatros54 (utente non iscritto) data: 26/12/2014 19:11:38

    Per le URGENZE chiamare il.....118.
    prova con il codice sotto
    Ciao
    Albatros54
     
    Public Sub albatros54()
    Dim MyArray
    MyArray = Split(Cells(1, 1).Value, "/") ' si presuppone che il dato sia nella cella A1
    recupero = UBound(MyArray)
    nome = MyArray(recupero)
    End Sub


  • Formula exel
    di Claudia (utente non iscritto) data: 26/12/2014 19:37:49

    non funziona,
    ma.. una formula +semplice



  • di Albatros54 (utente non iscritto) data: 26/12/2014 19:42:22

    incolla il codice nel foglio1, nella cella a1 inserisci il testo che hai postato lancia la macro e vedi che funziona



  • di Albatros54 (utente non iscritto) data: 26/12/2014 19:43:27

    Scusa, il dato che tu cerchi è memorizzato nella variabile nome



  • di Albatros54 (utente non iscritto) data: 26/12/2014 19:50:19

    subito dopo la linea di codice
    nome = MyArray(recupero)
    inserisci questa linea di codice
    MsgBox (nome)
    ti dara la stringa che cerchi
    Ciao
    Albatros54



  • di isy (utente non iscritto) data: 26/12/2014 20:32:49

    Ciao

    Con una formula:
    In colonna "V" riga"2"
    media-live.icintracom.biz/catalog/product/i/m/img2545_3.jpg

    In V3:
    =SOSTITUISCI(STRINGA.ESTRAI("/"&$V2&"/";PICCOLO(SE(VAL.ERRORE(RICERCA(STRINGA.ESTRAI("/"&$V2&"/";RIF.RIGA($1:$99);1);"/"));"";RIF.RIGA($1:$99)+1);SOMMA(LUNGHEZZA(V2)-LUNGHEZZA(SOSTITUISCI(V2;"/";"")))+1);PICCOLO(SE(VAL.ERRORE(RICERCA(STRINGA.ESTRAI("/"&$V2&" ";RIF.RIGA($1:$99);1);"/"));"";RIF.RIGA($1:$99));SOMMA(LUNGHEZZA(V2)-LUNGHEZZA(SOSTITUISCI(V2;"/";"")))+2)-PICCOLO(SE(VAL.ERRORE(RICERCA(STRINGA.ESTRAI("/"&$V2&" ";RIF.RIGA($1:$99);1);"/"));"";RIF.RIGA($1:$99));SOMMA(LUNGHEZZA(V2)-LUNGHEZZA(SOSTITUISCI(V2;"/";"")))+1)-1);"/";"")

    Da confermare come matrice



  • di Raffaele_53 (utente non iscritto) data: 26/12/2014 21:45:11

    Un'altro modo
     
    =STRINGA.ESTRAI(SOSTITUISCI(V2;"/";"@@@";LUNGHEZZA(V2)-LUNGHEZZA(SOSTITUISCI(V2;"/";"")));RICERCA("@@@";SOSTITUISCI(V2;"/";"@@@";LUNGHEZZA(V2)-LUNGHEZZA(SOSTITUISCI(V2;"/";"")));1)+3;100)



  • di Claudia data: 27/12/2014 09:04:06

    Ok fatto grazie!!!



  • di ninai (utente non iscritto) data: 27/12/2014 12:22:53

    Ciao
    oppure
    =ANNULLA.SPAZI(DESTRA(SOSTITUISCI(V2;"/";RIPETI(" ";200));100))



  • di Raffaele_53 (utente non iscritto) data: 27/12/2014 13:29:37

    Premessa ho usato una proprietà = sostituisci;Testo;testo_prec;nuovo_testo;[riccorenza]), l'ultima proprietà non credo funzioni con Excel inferiori a 2007

    Ciao ninai, l'ho sapevo che mi fregavi pure a Natale...
    Con tanti auguri, "almeno spiegarmela".

    Auguri anche a ISY
    Per favore riesci a spiegarmi dove sbaglio? Formula =Ultima_frase(V2;"/")
     
    Function Ultima_frase(str1,str2) as string
    Dim strArray, Tot as long, X as long, Ultima_frase as string
    strArray = Split(str1, str2)
    Tot= UBound(strArray)
    '......a questo punto sapevo che facendo un ciclo For to Tot, l'ultimo ciclo avrebbe ottenuto il nome del file?
    For X = 1 to Tot
    Ultima_frase = Split(???che cosa???)
    next X
    End if



  • di ninai (utente non iscritto) data: 27/12/2014 15:01:16

    ciao Raffaele , ricambio gli auguri con affetto:

    ci provo:
    =ANNULLA.SPAZI(DESTRA(SOSTITUISCI(V2;"/";RIPETI(" ";200));100))
    spezzettiamola:
    SOSTITUISCI(V2;"/";RIPETI(" ";200))
    sostituisce in V2, tutti i "/" con 200 spazi vuoti

    DESTRA(....;100)
    estrae gli ultimi 100 caratteri a destra, compresi parte degli spazi vuoti prima generati.

    ANNULLA.SPAZI(......)
    elimina gli spazi vuoti, lasciando solo il testo prima estratto.

    200 e 100 sono dei numeri ipotetici che vengono usati in base a quanto lunga può essere la stringa da estrarre (in questo caso fino a 100 caratteri.




  • di Raffaele_53 (utente non iscritto) data: 27/12/2014 15:36:13

    Posso dire "***** per natale"
    Ho sostituito @@@, dove ninai non ha consumato nulla nella formula? Sono il brutto anacrotolo.

    Ripeti =OK
    Sostitusci in tutti gli "/" = OK
    Destra (lo capisco, non nella Tua formula)
    mà quello che mi fa girare le ***** sono gli Annulla.spazi...(dove cavolo sono?????)



  • di ninai (utente non iscritto) data: 27/12/2014 16:15:50

    Raffaele,
    il SOSTITUISCE(.......) , sostituisce ogni segno "/" con 200 spazi vuoti (tramite il RIPETI()).
    Perciò, per esempio, se il testo dopo l'ultimo "/" è lungo 30 caratteri, la stringa di 100 caratteri che la funzione DESTRA() estrarrà, sarà data dai 30 caratteri + 70 spazi vuoti che verranno eliminati dall' ANNULLA.SPAZI().



  • di Raffaele_53 (utente non iscritto) data: 28/12/2014 02:24:12

    ninai, sei un grande...
    Se esprimi le Tue qualità in VBA, mi ritiro dai forum.