Risultati da 1 a 15 di 15

Discussione: Estrarre numeri da stringhe -quiz



  1. #1

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    54
    Messaggi
    10064
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2580
    Likes dati
    1552

    Smile Estrarre numeri da stringhe -quiz

    Questo dannato virus mi ha sballato la mia lista di studenti, erano ordinati per nome e numero di matricola e ora me li ha mischiati.

    A me servono i numeri di matricola per registrare loro i voti, ma ora questo numero è confuso tra i nomi, cognomi e altre lettere strane generate dal virus; sono tanti, non ho il tempo per fare il lavoro a mano.

    Quindi ho bisogno di una formula che in B2 che mi trovi velocemente questi numeri!

    A
    B
    1
    DATI MATRICOLA
    2
    ANTONIO-_MATR:2000015*ROSSI 2000015
    3
    7933856GIANN-MATR:-IMISTICO 7933856
    4
    ARNALDOBIANCHI8235366?MATR:_ 8235366
    5
    MATTEO349866--MATR:VERDI 349866
    6
    973154---UMBERTO***VIALLI_MATR: 973154
    7
    GIUSEPPE0841135VERDIMATR:??? 0841135
    8
    UBALDO-MARTINI.MATR:2956677 2956677
    9
    GIORGIO-??*!6011547SANTINI 6011547
    10
    9924444MARIABELLI-MATR:?? 9924444
    11
    SERENA????--OTTUSI5124923!!! 5124923
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  2. #2

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    38
    Messaggi
    4752
    Versione Office
    2013
    Likes ricevuti
    1501
    Likes dati
    1053
    Ciao ges,
    non è che mi piaccia molto la mia soluzione, ma vista l'ora, è la prima che mi sembrava sensata :292:

    Comunque, formula matriciale da mettere in B2 e copiare in basso:

    =STRINGA.ESTRAI(A2;MIN(SE(SE(--(CODICE(STRINGA.ESTRAI(A2;RIF.RIGA(INDIRETTO("A1:A"&LUNGHEZZA(A2)));1))>=48)*--(CODICE(STRINGA.ESTRAI(A2;RIF.RIGA(INDIRETTO("A1:A"&LUNGHEZZA(A2)));1))<=57)=0;0;1)=1;RIF.RIGA(INDIRETTO("A1:A"&LUNGHEZZA(A2)));""));SOMMA(SE(--(CODICE(STRINGA.ESTRAI(A2;RIF.RIGA(INDIRETTO("A1:A"&LUNGHEZZA(A2)));1))>=48)*--(CODICE(STRINGA.ESTRAI(A2;RIF.RIGA(INDIRETTO("A1:A"&LUNGHEZZA(A2)));1))<=57)=0;0;1)))

    Ciao:185:

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

  3. #3
    L'avatar di ninai
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Barcellona P.G.
    Età
    55
    Messaggi
    2142
    Versione Office
    2010 PC
    Likes ricevuti
    1181
    Likes dati
    239
    ciao
    pure io, vista l'ora, la butto così al volo, ho assemblato un paio di formule che avevo in archivio e sembra funzionare, ma è sicuramente migliorabile:

    Codice: 
    =-CERCA(2;-SINISTRA(STRINGA.ESTRAI(A2;CONFRONTA(VERO;VAL.NUMERO(STRINGA.ESTRAI(A2;RIF.RIGA($1:$300);1)*1);0);300);RIF.RIGA($1:$25)))
    matriciale

    oppure:
    Codice: 
    =RIMPIAZZA(RIMPIAZZA(A2;CERCA(2;1/VAL.NUMERO(STRINGA.ESTRAI(A2;RIF.RIGA($A$1:$A$100);1)*1);RIF.RIGA($1:$300))+1;200;"");1;CONFRONTA(VERO;VAL.NUMERO(STRINGA.ESTRAI(A2;RIF.RIGA($A$1:$A$100);1)*1);0)-1;"")
    Ultima modifica fatta da:ninai; 28/08/15 alle 04:18

  4. #4

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    54
    Messaggi
    10064
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2580
    Likes dati
    1552
    Citazione Originariamente Scritto da cromagno Visualizza Messaggio
    Ciao ges,
    non è che mi piaccia molto la mia soluzione, ma vista l'ora, è la prima che mi sembrava sensata :292:

    Comunque, formula matriciale da mettere in B2 e copiare in basso:

    =STRINGA.ESTRAI(A2;MIN(SE(SE(--(CODICE(STRINGA.ESTRAI(A2;RIF.RIGA(INDIRETTO("A1:A"&LUNGHEZZA(A2)));1))>=48)*--(CODICE(STRINGA.ESTRAI(A2;RIF.RIGA(INDIRETTO("A1:A"&LUNGHEZZA(A2)));1))<=57)=0;0;1)=1;RIF.RIGA(INDIRETTO("A1:A"&LUNGHEZZA(A2)));""));SOMMA(SE(--(CODICE(STRINGA.ESTRAI(A2;RIF.RIGA(INDIRETTO("A1:A"&LUNGHEZZA(A2)));1))>=48)*--(CODICE(STRINGA.ESTRAI(A2;RIF.RIGA(INDIRETTO("A1:A"&LUNGHEZZA(A2)));1))<=57)=0;0;1)))

    Ciao:185:
    Sarà lunga, ma funziona a meraviglia!
    Ottimo!:28:
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  5. #5

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    54
    Messaggi
    10064
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2580
    Likes dati
    1552
    Citazione Originariamente Scritto da ninai Visualizza Messaggio
    ciao
    pure io, vista l'ora, la butto così al volo, ho assemblato un paio di formule che avevo in archivio e sembra funzionare, ma è sicuramente migliorabile:

    Codice: 
    =-CERCA(2;-SINISTRA(STRINGA.ESTRAI(A2;CONFRONTA(VERO;VAL.NUMERO(STRINGA.ESTRAI(A2;RIF.RIGA($1:$300);1)*1);0);300);RIF.RIGA($1:$25)))
    matriciale

    oppure:
    Codice: 
    =RIMPIAZZA(RIMPIAZZA(A2;CERCA(2;1/VAL.NUMERO(STRINGA.ESTRAI(A2;RIF.RIGA($A$1:$A$100);1)*1);RIF.RIGA($1:$300))+1;200;"");1;CONFRONTA(VERO;VAL.NUMERO(STRINGA.ESTRAI(A2;RIF.RIGA($A$1:$A$100);1)*1);0)-1;"")
    La prima non mi estrae lo zero iniziale alla riga 7, la seconda è perfetta!!!
    Ottima!:28:
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  6. #6

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    58
    Messaggi
    1212
    Versione Office
    .
    Likes ricevuti
    456
    Likes dati
    0
    Matriciale:

    =RIMPIAZZA(RIMPIAZZA(A2;CONFRONTA(10;--STRINGA.ESTRAI(A2;RIF.RIGA($1:$40);1))+1;999;"");1;CONFRONTA(VERO;VAL.NUMERO(STRINGA.ESTRAI(A2;RIF.RIGA($1:$40);1)*1);0)-1;"")

  7. #7

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    54
    Messaggi
    10064
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2580
    Likes dati
    1552
    Citazione Originariamente Scritto da scossa Visualizza Messaggio
    Matriciale:

    =RIMPIAZZA(RIMPIAZZA(A2;CONFRONTA(10;--STRINGA.ESTRAI(A2;RIF.RIGA($1:$40);1))+1;999;"");1;CONFRONTA(VERO;VAL.NUMERO(STRINGA.ESTRAI(A2;RIF.RIGA($1:$40);1)*1);0)-1;"")
    Woww.. ottima! :246:
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  8. #8
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    50
    Messaggi
    5388
    Versione Office
    office 365/2016
    Likes ricevuti
    1274
    Likes dati
    1342
    Citazione Originariamente Scritto da scossa Visualizza Messaggio
    Matriciale:

    =RIMPIAZZA(RIMPIAZZA(A2;CONFRONTA(10;--STRINGA.ESTRAI(A2;RIF.RIGA($1:$40);1))+1;999;"");1;CONFRONTA(VERO;VAL.NUMERO(STRINGA.ESTRAI(A2;RIF.RIGA($1:$40);1)*1);0)-1;"")
    Spettacolo!! scossa
    Da archiviare gelosamente e chissà se avrò un po di tempo ci faro anche un bel video visto che è anche abbastanza semplice
    PS Scossa ovviamente tu avrai tutti i diritti d' autore
    Woooow
    Se non lo sai spiegare in modo semplice, non l'hai capito abbastanza bene Cit. Einstein

  9. #9

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    58
    Messaggi
    1212
    Versione Office
    .
    Likes ricevuti
    456
    Likes dati
    0
    Citazione Originariamente Scritto da Gerardo Zuccalà Visualizza Messaggio
    PS Scossa ovviamente tu avrai tutti i diritti d' autore
    Da condividere con ninai, è stata ispirata dalla sua soluzione! :90:
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  10. #10

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    54
    Messaggi
    10064
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2580
    Likes dati
    1552
    Bene, per concludere - salvo altre idee - non resta che postare la mia soluzione con una sequenza un po' diversa dal solito:

    =STRINGA.ESTRAI(A2;CONFRONTA(0;(VAL.ERRORE(STRINGA.ESTRAI(A2;RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(A2)));1)*1)*1);0);LUNGHEZZA(A2)-SOMMA((VAL.ERRORE(STRINGA.ESTRAI(A2;RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(A2)));1)*1)*1)))

    Le formule calcolano i numeri consecutivi in qualsiasi posizione di testo si trovino, tuttavia devo constatare una debolezza nelle soluzione di scossa e ninai rispetto a quella mia e di cromagno: se si allungano le stringhe della colonna A dopo un certo numero di lettere inserite quella di scossa sballa e dopo altre ancora sballa anche quella di ninai, mentre continuano a funzionare quella mia e di cromagno .. almeno fino a quanto ho provato io.

    Fate anche voi la prova, magari mi sbaglio.
    Ultima modifica fatta da:ges; 28/08/15 alle 20:06
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  11. #11

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    58
    Messaggi
    1212
    Versione Office
    .
    Likes ricevuti
    456
    Likes dati
    0
    Citazione Originariamente Scritto da ges Visualizza Messaggio
    tuttavia devo constatare una debolezza nelle soluzione di scossa e ninai ....: se si allungano le stringhe della colonna A dopo un certo numero di lettere inserite quella di scossa sballa
    Vero, ma basta sostituire quel $40 con, ad esempio, $999 o a altro valore grande (più o meno) a piacere per risolvere:

    Codice: 
    =RIMPIAZZA(RIMPIAZZA(A2;CONFRONTA(10;--STRINGA.ESTRAI(A2;RIF.RIGA($1:$999);1))+1;999;"");1; CONFRONTA(VERO;VAL.NUMERO(STRINGA.ESTRAI(A2;RIF.RIGA($1:$999);1)*1);0)-1;"")
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  12. #12
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    50
    Messaggi
    5388
    Versione Office
    office 365/2016
    Likes ricevuti
    1274
    Likes dati
    1342
    Ciao Ragazzi
    Voglio dare anche io il mio piccolo contributo a queste bellissime formule
    il contributo è proprio piccolo rispetto al vostro grande lavoro, cioè mettere alla fine della formula +0, che come sapete benissimo trasforma un numero memorizzato come testo, in un numero vero e proprio.
    ciao a tutti:222:
    Ultima modifica fatta da:Gerardo Zuccalà; 28/08/15 alle 21:13
    Se non lo sai spiegare in modo semplice, non l'hai capito abbastanza bene Cit. Einstein

  13. #13

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    58
    Messaggi
    1212
    Versione Office
    .
    Likes ricevuti
    456
    Likes dati
    0
    Citazione Originariamente Scritto da Gerardo Zuccalà Visualizza Messaggio
    cioè mettere alla fine della formula +0, che come sapete benissimo trasforma un numero memorizzato come testo, in un numero vero e proprio.
    Ma così perderesti lo 0 iniziale:

    Citazione Originariamente Scritto da ges
    La prima non mi estrae lo zero iniziale alla riga 7,
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  14. #14
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    50
    Messaggi
    5388
    Versione Office
    office 365/2016
    Likes ricevuti
    1274
    Likes dati
    1342
    Citazione Originariamente Scritto da scossa Visualizza Messaggio
    Ma così perderesti lo 0 iniziale:
    Oppss!! avrei dovuto stare piu attento, in effetti si è vero, logicamente diventando un numero lo zero davanti sparisce:235:
    Ciao
    Se non lo sai spiegare in modo semplice, non l'hai capito abbastanza bene Cit. Einstein

  15. #15

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    54
    Messaggi
    10064
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2580
    Likes dati
    1552
    Citazione Originariamente Scritto da scossa Visualizza Messaggio
    Vero, ma basta sostituire quel $40 con, ad esempio, $999 o a altro valore grande (più o meno) a piacere per risolvere:

    Codice: 
    =RIMPIAZZA(RIMPIAZZA(A2;CONFRONTA(10;--STRINGA.ESTRAI(A2;RIF.RIGA($1:$999);1))+1;999;"");1; CONFRONTA(VERO;VAL.NUMERO(STRINGA.ESTRAI(A2;RIF.RIGA($1:$999);1)*1);0)-1;"")
    Perfetto! :28:
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

Discussioni Simili

  1. Estrarre stringhe testo o numeri da una cella
    Di robynud nel forum Domande su Excel in generale
    Risposte: 14
    Ultimo Messaggio: 27/01/18, 16:41
  2. estrarre stringhe alfanumeriche da excel
    Di zaqsedc nel forum Domande su Excel in generale
    Risposte: 7
    Ultimo Messaggio: 11/10/16, 17:52
  3. Estrarre Testo da Stringhe non regolari e matching
    Di tmac720 nel forum Domande su Excel in generale
    Risposte: 9
    Ultimo Messaggio: 10/02/16, 17:44
  4. Quiz #5 Estrarre nomi da Stringhe
    Di Gerardo Zuccalà nel forum Domande su Excel in generale
    Risposte: 1
    Ultimo Messaggio: 23/06/15, 05:03
  5. quiz #7 formula x contare quanti numeri sono sopra a 1
    Di Gerardo Zuccalà nel forum Domande su Excel in generale
    Risposte: 2
    Ultimo Messaggio: 21/06/15, 10:03

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
  •