Risultati da 1 a 15 di 15

Discussione: Stringa.estrai...ma su una cella "particolare"



  1. #1
    L'avatar di Alessandro
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Roma
    Età
    45
    Messaggi
    851
    Versione Office
    2010 64 bit
    Likes ricevuti
    113
    Likes dati
    61

    Stringa.estrai...ma su una cella "particolare"

    Ciao a tutti,
    purtroppo è un bel po che non intervengo e nemmeno ho il tempo di leggere le vs soluzioni ma per ovvi motivi di lavoro...ma prometto che ben presto mi rifaccio vivo.
    Mi è stato inviato un file (vi allego un estratto) con delle celle il cui interno è settato in modo particolare.
    Obiettivo è quello di tirar fuori i valori. Il primo valore è una qtà il secondo valore è il valore in €.
    Il problema (almeno per me) è il non riuscire a capire quale possa esser la discriminante che mi permette di splittare in due i valori così da ottenere la qtà e il valore.
    Vi allego il file con le 3 tabelle: la prima i valori originali mentre le seconda e la terza rispettivamente ciò che vorrei ottenere (cioè le qtà e i valori) così da poterci poi lavorare per analisi varie.
    Grazie anche per dei consigli.
    ciao
    ale
    File Allegati File Allegati

  2. #2
    L'avatar di Alessandro
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Roma
    Età
    45
    Messaggi
    851
    Versione Office
    2010 64 bit
    Likes ricevuti
    113
    Likes dati
    61

    Re: Stringa.estrai...ma su una cella "particolare"

    apparentemente penso di aver risolto...anche se lo voglio provare su più celle.
    Per il momento per le qtà inserisco
    =STRINGA.ESTRAI(A3; 1; TROVA(""; A3; 1)+1)
    mentre per i valori
    =STRINGA.ESTRAI(A3; TROVA(""; A3; 1)+2; 50)
    Me li ritrovo sempre come testo...ma poi ho una macro che mi trasforma tutto in valori

    Set intervallo = Selection
    For Each cella In intervallo
    miovalore = cella.Value
    cella(1, 1).Value = CDbl(miovalore)
    Next
    Selection.NumberFormat = "#,##0.00"

    ciao
    ale

  3. #3

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4050
    Versione Office
    2013
    Likes ricevuti
    1240
    Likes dati
    931

    Re: Stringa.estrai...ma su una cella "particolare"

    Ciao,
    sono dal cellulare quindi non credo di poterti aiutare molto, comunque per ottenere dei valori al posto del testo dovrebbe bastare aggiungere alla fine della formula:
    *1 (moltiplichi per uno)

    oppure:
    +0 (aggiungi zero)

    Ciao
    Tore

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  4. #4
    L'avatar di Alessandro
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Roma
    Età
    45
    Messaggi
    851
    Versione Office
    2010 64 bit
    Likes ricevuti
    113
    Likes dati
    61

    Re: Stringa.estrai...ma su una cella "particolare"

    Citazione Originariamente Scritto da cromagno Visualizza Messaggio
    Ciao,
    sono dal cellulare quindi non credo di poterti aiutare molto, comunque per ottenere dei valori al posto del testo dovrebbe bastare aggiungere alla fine della formula:
    *1 (moltiplichi per uno)

    oppure:
    +0 (aggiungi zero)

    Ciao
    Tore
    hoi grazie infinite...ma purtroppo non è così semplice...
    in ogni modo non va bene nemmeno la mia...o meglio va bene fino a quando le qtà sono due digit...poi non prende la terza...e se forzo con un +2 mi prende l'inizio del valore...
    temo proprio che non si possa fare...
    vabè
    ciao
    ale

  5. #5
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3224
    Versione Office
    Excel2010
    Likes ricevuti
    628
    Likes dati
    155

    Re: Stringa.estrai...ma su una cella "particolare"

    Salve a tutti
    non solo un "formulomane" ma ci provo lo stesso.

    in G3 =SINISTRA(A3;STRINGA.ESTRAI(TROVA(CODICE.CARATT(10);A3;1)-1;1;TROVA(CODICE.CARATT(10);A3;1)-1)) e copi in basso e a destra

    in M3 =DESTRA(A3;LUNGHEZZA(A3)-STRINGA.ESTRAI(TROVA(CODICE.CARATT(10);A3;1)-1;1;TROVA(CODICE.CARATT(10);A3;1)-1)) e copi a destra e in basso.

    Fai sapere. Ciao,
    Mario

    PS ovviamente i risultati sono stringhe; se si voglio valori seguire il consiglio di cromagno

  6. #6

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7183
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2067
    Likes dati
    1308

    Re: Stringa.estrai...ma su una cella "particolare"

    Ciao a tutti, da trascinare a destra e in basso,

    per il primo valore:

    =SINISTRA(A3;2)

    per il secondo valore:

    =SOSTITUISCI(A3;B8;"")


    File Allegati File Allegati
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  7. #7
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3224
    Versione Office
    Excel2010
    Likes ricevuti
    628
    Likes dati
    155

    Re: Stringa.estrai...ma su una cella "particolare"

    Ciao Ges
    una spiegazione: con la tua formula prendi i primi 2 caratteri a sinistra. E se fossero 3?
    la seconda formula mi dà dei risultati strani. Ti allego il file dove ho fatto le mie prove e dove ho inserito le tue.

    Ciao,
    Mario

    PS - non avevo scaricato il tuo file ma, credo, che nella seconda formula postata ci sia una svista. O sbaglio?
    File Allegati File Allegati

  8. #8
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4937
    Versione Office
    2013
    Likes ricevuti
    1122
    Likes dati
    1131

    Re: Stringa.estrai...ma su una cella "particolare"

    Ciao a tutti gli amici
    Rieccomi!! purtroppo il lavoro è sempre in mezzo.....
    Ho fatto una formula con un approccio diverso

    infatti in G3
    =STRINGA.ESTRAI(SOSTITUISCI(A3;CODICE.CARATT(10);RIPETI(" ";20));1;20)

    e in M3
    =STRINGA.ESTRAI(SOSTITUISCI(A3;CODICE.CARATT(10);RIPETI(" ";20));20;20)
    da testare
    un saluto
    Gerardo

  9. #9

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7183
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2067
    Likes dati
    1308

    Re: Stringa.estrai...ma su una cella "particolare"

    Ciao Mario,
    la mia seconda formula ti dava risultati sbagliati perchè avevi messo dei riferimenti sbagliati, allego la versione corretta.
    File Allegati File Allegati
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  10. #10
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    ferrara
    Età
    41
    Messaggi
    2075
    Versione Office
    office pro 2010
    Likes ricevuti
    440
    Likes dati
    241

    Re: Stringa.estrai...ma su una cella "particolare"

    Ho provato in svariati modi ma io, di formule, so veramente molto poco.

    Il delimitatore, nelle celle che sono state proposte, esiste ed è ben chiaro, é il "ritorno a capo".

    Ho provato ad usare la formula:

    Sostituisci(CellaConTesto; Codice.Carattere(13); "E")

    Ma non funziona

    Ho provato con Menu -> Home -> cerca e sostituisci (dando al cerca la combinazione di tasti CTRL + J) ma anche quì niente.

    Passando al VBA

    replace() e split non mi hanno dato soddisfazione perchè

    Repalce(cellaConIvalori, VbCtrlf, "E") dove VbCtrlF è la costante che identifica il carattere n°13, l' aCapo non restituisce il risultato sperato
    L' uso di split(cellaConValori, VbCtrlf) non restituisce un array di più di una stringa

    ...

    Alla fine sono passato ad utilizzare le espressioni regolari e quelle mi danno soddisfazione. ma, purtroppo, non conosco la teoria per costruire una funzione che possa restituire due o più valori.

    Comunque vi posto la prima parte del lavoro che restituisce il primo o il secondo valore trovato

    Codice: 
    
    Function EstraiValore(Valore As Variant, Optional QualeRisultato As Integer = 1) As Variant
        Dim MC  'Variabile oggetto che conterrà tutte le occorrenze trovate
        Set RE = CreateObject("VBScript.RegExp")
        
        With RE
            .Global = True 'Individua tutte le occorrenze
            .MultiLine = True 'tiene in considerazione i ritorni a capo
            .ignorecase = False ' Ignora differenza tra maiuscole e minuscole
            .Pattern = "\d+(,\d+|)"  'la stringa di ricerca delle occorrenze:
                                        '- uno o più cifre seguite da
                                        '-Una virgola con una o più cifre
        
            Set MC = RE.Execute(Valore)
        End With
    
    
        If QualeRisultato = 1 Then
            If MC.Count > 0 Then
                EstraiValore = MC.Item(0)
            Else
                 'gestione errore
            End If
        Else
            If MC.Count > 1 Then
                EstraiValore = MC.Item(1)
            Else
                'gestione errore
            End If
        End If
        
        
        Set MC = Nothing
        Set RE = Nothing
    End Function

    Dopo aver copiato il codice in un modulo standard, nella cella desiderata scrivere:

    "=EstraiValore( Valore; QualeRisultato)"

    Dove, coem primo argomento, va inserito il dato da smembrare e come secondo argomento un "1" se si vuole la prima occorrenza o un altro carattere per la seconda occorrenza. Il secondo argomento è facoltativo preimpostato ad "1"
    Quindi ometterlo significa avere, come risultato, la prima occorreenza.

  11. #11
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4937
    Versione Office
    2013
    Likes ricevuti
    1122
    Likes dati
    1131

    Re: Stringa.estrai...ma su una cella "particolare"

    @Ciao Dracoscrigno
    Normalmente con le function VBA sono molto scietticco, perchè a volte non si aggiornano automaticamente al cambiare del database, ma questa Function è spettacolare, problemi zero
    saluto

  12. #12
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    ferrara
    Età
    41
    Messaggi
    2075
    Versione Office
    office pro 2010
    Likes ricevuti
    440
    Likes dati
    241

    Re: Stringa.estrai...ma su una cella "particolare"

    come avrai certamente notato, la finction o UDF proposta, non è completa ma manca della gestione di eventuali errori.

    il fatto che possano non funzionare, le UDF, è proprio nella gestione dei possibili tipi di dati immessi e degli errori che in essa dovesserero scatenarsi.
    personalmente, mi trovo molto meglio a costruirmele piuttosto che utilizzar quelle native semplicemente perchè conosco le istruzioni vba meglio delle funzioni.

    certo è che son meglio le native ;)

  13. #13
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3224
    Versione Office
    Excel2010
    Likes ricevuti
    628
    Likes dati
    155

    Re: Stringa.estrai...ma su una cella "particolare"

    Citazione Originariamente Scritto da ges Visualizza Messaggio
    Ciao a tutti, da trascinare a destra e in basso,

    per il primo valore:

    =SINISTRA(A3;2)

    per il secondo valore:

    =SOSTITUISCI(A3;
    B8;"")


    Ciao Ges
    hai ragione che i riferimenti erano errati, però attento, mi pare che quello in rosso sia esbagliato.
    Ciao,
    Mario

  14. #14
    L'avatar di Alessandro
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Roma
    Età
    45
    Messaggi
    851
    Versione Office
    2010 64 bit
    Likes ricevuti
    113
    Likes dati
    61

    Re: Stringa.estrai...ma su una cella "particolare"

    Citazione Originariamente Scritto da Gerardo Zuccalà Visualizza Messaggio
    Ciao a tutti gli amici
    Rieccomi!! purtroppo il lavoro è sempre in mezzo.....
    Ho fatto una formula con un approccio diverso

    infatti in G3
    =STRINGA.ESTRAI(SOSTITUISCI(A3;CODICE.CARATT(10);RIPETI(" ";20));1;20)

    e in M3
    =STRINGA.ESTRAI(SOSTITUISCI(A3;CODICE.CARATT(10);RIPETI(" ";20));20;20)
    da testare
    un saluto
    Gerardo
    Buongiorno a tutti ragazzi e grazie infinite per i vs consigli.
    Le ho provate tutte: Cromagno, Marius, Ges e il codice di Dragoscrigno...ma di tutte quella che funziona perfettamente (se non altro perchè gestisce anche i 3/4 digit per le qtà e non si intreccia con i valori successivi) è questa di Gerardo (ciao e grazie anche a te).
    Per i codici anche io tendo (ma semplicemente per mancata conoscenza) a non utilizzarli e/o a preferire (laddove il risultato sia rispettato) le formule.
    Anche se devo dire con i codici si riesce a tutto...cosa non sempre possibile con le formule.
    In ogni modo grazie ancora per il vs prezioso aiuto.
    ciao
    ale

  15. #15
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4937
    Versione Office
    2013
    Likes ricevuti
    1122
    Likes dati
    1131

    Re: Stringa.estrai...ma su una cella "particolare"

    Ciao Alessandro, grazie per il riscontro
    L'importante che hai risolto, lo spirito di questo forum è che ogni uno di noi mette in campo le proprie conoscenze e dopo qualche tentativo si arriva sempre alla soluzione ed è questo che rende magico questo forum
    ciao grazie

Discussioni Simili

  1. [Risolto] Ordinare con la funzione "piccolo"..ma "portandosi dietro" anche altri dati affiancati
    Di mauri73 nel forum Domande su Excel in generale
    Risposte: 13
    Ultimo Messaggio: 05/02/17, 14:57
  2. [Risolto] Come leggere la seguente formula =SE.ERRORE(INDIRETTO("'"&A1&"'!K1";1);""))
    Di sitolofi nel forum Domande su Excel in generale
    Risposte: 5
    Ultimo Messaggio: 20/12/16, 14:54
  3. >Come estrappolare la somma "automatica" di un DB con funzione "FILTRO"<
    Di tk71 nel forum Domande su Excel in generale
    Risposte: 1
    Ultimo Messaggio: 11/06/16, 11:44
  4. [Risolto] Codice non funzionante dopo il passaggio da "Windows" a "Mac"...
    Di joondeep nel forum Foglio di calcolo su altre Piattaforme
    Risposte: 13
    Ultimo Messaggio: 12/03/16, 21:09
  5. Collegamento "foglio elenco" e "fogli singoli"
    Di Maurizio76 nel forum Domande su Excel in generale
    Risposte: 7
    Ultimo Messaggio: 23/11/15, 10:14

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •