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à
    53
    Messaggi
    7165
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2065
    Likes dati
    1304

    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à
    37
    Messaggi
    4025
    Versione Office
    2013
    Likes ricevuti
    1229
    Likes dati
    923
    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
    1687
    Versione Office
    2010 PC
    Likes ricevuti
    899
    Likes dati
    185
    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 05:18

  4. #4

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7165
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2065
    Likes dati
    1304
    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à
    53
    Messaggi
    7165
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2065
    Likes dati
    1304
    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à
    57
    Messaggi
    1024
    Versione Office
    .
    Likes ricevuti
    367
    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à
    53
    Messaggi
    7165
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2065
    Likes dati
    1304
    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à
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126
    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

  9. #9

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    57
    Messaggi
    1024
    Versione Office
    .
    Likes ricevuti
    367
    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à
    53
    Messaggi
    7165
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2065
    Likes dati
    1304
    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 21: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à
    57
    Messaggi
    1024
    Versione Office
    .
    Likes ricevuti
    367
    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à
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126
    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 22:13

  13. #13

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    57
    Messaggi
    1024
    Versione Office
    .
    Likes ricevuti
    367
    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à
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126
    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

  15. #15

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7165
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2065
    Likes dati
    1304
    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 alfanumeriche da excel
    Di zaqsedc nel forum Domande su Excel in generale
    Risposte: 7
    Ultimo Messaggio: 11/10/16, 18:52
  2. Estrarre stringhe testo o numeri da una cella
    Di robynud nel forum Domande su Excel in generale
    Risposte: 7
    Ultimo Messaggio: 17/03/16, 12:07
  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, 18: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, 06: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, 11: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
  •