Stellar Blade Un'esclusiva PS5 che sta facendo discutere per l'eccessiva bellezza della protagonista. Vieni a parlarne su Award & Oscar!

Excel Forum Per condividere esperienze su Microsoft Excel

Estrarre data

  • Messaggi
  • OFFLINE
    benkyo63
    Post: 4
    Registrato il: 12/07/2019
    Età: 60
    Utente Junior
    2016
    00 02/08/2021 16:55
    Buongiorno, è possibile con una formula estrarre la data da una casella contenente il testo "Operazione effettuata il 15/4/1955 presso l'esercente LA BOTTEGA"?
  • OFFLINE
    DANILOFIORINI
    Post: 1.105
    Registrato il: 15/01/2016
    Città: ROMA
    Età: 51
    Utente Veteran
    2016
    00 02/08/2021 18:28
    Ciao
    Ponendo la stringa in A1
    In A2

    =STRINGA.ESTRAI($A1;AGGREGA(15;6;RIF.RIGA($1:$100)/(((CODICE(STRINGA.ESTRAI(A1;RIF.RIGA($1:$100);1))>=48)*(CODICE(STRINGA.ESTRAI(A1;RIF.RIGA($1:$100);1))<=57))=1);1);AGGREGA(14;6;RIF.RIGA($1:$100)/(((CODICE(STRINGA.ESTRAI(A1;RIF.RIGA($1:$100);1))>=48)*(CODICE(STRINGA.ESTRAI(A1;RIF.RIGA($1:$100);1))<=57))=1);1)-AGGREGA(15;6;RIF.RIGA($1:$100)/(((CODICE(STRINGA.ESTRAI(A1;RIF.RIGA($1:$100);1))>=48)*(CODICE(STRINGA.ESTRAI(A1;RIF.RIGA($1:$100);1))<=57))=1);1)+1)

    P.S. nella stringa non ci devono essere altri numeri oltre la data....se no bisogna percorrere un altra strada
    [Modificato da DANILOFIORINI 02/08/2021 18:31]
  • OFFLINE
    L2018
    Post: 58
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Junior
    EXCEL 2016 - SPREAD32
    00 02/08/2021 22:46
    Salve,
    mi permetto di dare un contributo col risultato di una mia esercitazione (da novizio leggermente avanzato)
    La condizione della sottostante formula è che la data sia espressa esattamente nella forma "gg/mm/aaaa", o "mm/gg/aaaa" quindi 10 caratteri di cui 2 slash

    se l'espressione è in A1 allora in A2

    =STRINGA.ESTRAI(A1;TROVA("/";A1)-2;10)

    Leo

    LEO
    https://t.me/LordBrum
  • OFFLINE
    federico460
    Post: 2.381
    Registrato il: 10/10/2013
    Città: VICENZA
    Età: 69
    Utente Veteran
    365
    00 02/08/2021 23:00
    ciao
    matriciale ctrl maiuscolo invio

    =ANNULLA.SPAZI(STRINGA.ESTRAI(A5;MIN(TROVA({0\1\2\3\4\5\6\7\8\9};A5&(0\1\2\3\4\5\6\7\8\9}));SOMMA(LUNGHEZZA(A5)-LUNGHEZZA(SOSTITUISCI(A5;{1\2\3\4\5\6\7\8\9\0};));2)))

    anche se quella di L2018 mi sembra ottima

    da integrare al posto del 10 con
    SOMMA(LUNGHEZZA(A1)-LUNGHEZZA(SOSTITUISCI(A1;{1\2\3\4\5\6\7\8\9\0};));2)
    se noti l'esempio ha 9 lettere non 10
    e se scrive 1/1/2020 ?
    [Modificato da federico460 02/08/2021 23:01]
  • OFFLINE
    L2018
    Post: 59
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Junior
    EXCEL 2016 - SPREAD32
    00 02/08/2021 23:40
    ciao Fede
    hai perfettamente ragione in tutto, perciò ho specificato il mio stato di novizio leggermente avanzato
    Avrei dovuto specificare anche che nella espressione non devono comparire gli slash se non quelli della data, e cmq ho detto esattamente nella forma....ecc
    cmq grazie del riscontro, provo la tua formula
    Leo

    LEO
    https://t.me/LordBrum
  • OFFLINE
    federico460
    Post: 2.383
    Registrato il: 10/10/2013
    Città: VICENZA
    Età: 69
    Utente Veteran
    365
    00 03/08/2021 01:42
    ciao
    L2018

    onestamente se dovessi usare una delle formule proposte
    io userei la tua.

    hai avuto l'occhio di trovare la costante ( la/ della data)
    mentre io trovo il primo numero della stringa

    perciò se è scritto 2 orsi a trento il 12/01/2021

    la mia non funzionerebbe, la tua si
    il
    SOMMA(LUNGHEZZA(A5)-LUNGHEZZA(SOSTITUISCI(A5;{1\2\3\4\5\6\7\8\9\0};));2))
    al posto del 10 è solo per ovviare l'inconveniente della mancata scrittura dello 0
    nei mesi o giorni.........anche se scrivono 21 al posto di 2021.

    perciò complimenti

  • OFFLINE
    L2018
    Post: 60
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Junior
    EXCEL 2016 - SPREAD32
    00 03/08/2021 13:17
    Ciao Federico
    grazie per l'apprezzamento, anzi nel mio secondo post ho precisato che gli slash devono stare solo nella data

    ovviamente è utilissima anche la tua stringa al posto del mio valore 10, io non l'avrei saputa costruire.

    E a questo proposito potresti verificare perchè mai se io l'aggiungo alla mia formula non riesce a funzionare ?
    Provo a riscriverla qui, vedi un po'

    =STRINGA.ESTRAI(A1;TROVA("/";A1)-2;SOMMA(LUNGHEZZA(A1)-LUNGHEZZA(SOSTITUISCI(A1;{1\2\3\4\5\6\7\8\9\0};));2)))

    grazie
    Leo

    LEO
    https://t.me/LordBrum
  • OFFLINE
    federico460
    Post: 2.384
    Registrato il: 10/10/2013
    Città: VICENZA
    Età: 69
    Utente Veteran
    365
    00 03/08/2021 13:24
    ciao
    leva una parentesi chiusa alla fine
    =STRINGA.ESTRAI(A1;TROVA("/";A1)-2;SOMMA(LUNGHEZZA(A1)-LUNGHEZZA(SOSTITUISCI(A1;{1\2\3\4\5\6\7\8\9\0};));2))
  • OFFLINE
    L2018
    Post: 61
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Junior
    EXCEL 2016 - SPREAD32
    00 03/08/2021 13:35
    mannaggia, grazie, ma avevo fatto varie prove invano, ora va, ottimo

    LEO
    https://t.me/LordBrum
  • OFFLINE
    L2018
    Post: 62
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Junior
    EXCEL 2016 - SPREAD32
    00 03/08/2021 13:51
    sì, va, ma pur ci dev'essere un errore di struttura, perchè se io scrivo 1/4/20 tutto va a ramengo

    LEO
    https://t.me/LordBrum
  • OFFLINE
    federico460
    Post: 2.385
    Registrato il: 10/10/2013
    Città: VICENZA
    Età: 69
    Utente Veteran
    365
    00 03/08/2021 14:18
    certo
    che tutte le possibilità
    le devi valutare
    quel -2 che metti è variabile
  • OFFLINE
    benkyo63
    Post: 4
    Registrato il: 12/07/2019
    Età: 60
    Utente Junior
    2016
    00 03/08/2021 22:49
    estrarre data
    Grazie a tutti per i contributi. Trovo utile quanto proposto da L2018 integrato con la soluzione di federico460. Nel mio caso la costante è "il" perchè nel testo, come potete vedere nel file allegato, di barre ce ne sono altre. Ma perchè mi estrae anche parte del testo dopo la data?
    [Modificato da benkyo63 03/08/2021 22:51]
  • OFFLINE
    federico460
    Post: 2.386
    Registrato il: 10/10/2013
    Città: VICENZA
    Età: 69
    Utente Veteran
    365
    20 04/08/2021 00:49
    ciao
    perchè la stringa ha una valanga di numeri
    non solo la data.
    se il mese lo metti sempre con due cifre e l'anno di 4

    =ANNULLA.SPAZI(STRINGA.ESTRAI(A1;TROVA("il";A1)+3;10))

    con questa dovresti andare sul sicuro

    =ANNULLA.SPAZI(STRINGA.ESTRAI(A1;TROVA("il";A1;1)+3;TROVA(" ";A1;TROVA("il";A1;1)+3)-(TROVA("il";A1;1)+3)))
    [Modificato da federico460 04/08/2021 01:07]
  • OFFLINE
    L2018
    Post: 63
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Junior
    EXCEL 2016 - SPREAD32
    00 08/08/2021 15:13
    ciao Federico
    la tua ultima formula è grandiosa
    ho passato diversi giorni a rileggerla e smontarla ma non sono ancora riuscito ad "assimilarla"
    Tu usi 4 volte il TROVA
    il primo TROVA chiaramente cerca di sapere la lunghezza della stringa DATA
    Gli altri 3 TROVA, di cui 2 nidificati, danno il risultato giusto che è 9, ma nella nidificazione ci sono 2 espressioni apparentemente uguali, se non altro perchè cercano la stringa "il", ma poi come fa il tutto a restituire 9 ?
    Ti dispiacerebbe dire (tipo pseudocodice) come fanno i 3 TROVA a dare il risultato atteso, qualunque sia la lunghezza della stringa DATA ?
    Io conosco un buon numero di formule, le altre le cerco, ne studio la sintassi, ok, ma in questo caso mi piacerebbe capire come si arriva a metterne insieme alcune.
    Grazie
    Leo

    LEO
    https://t.me/LordBrum
  • OFFLINE
    federico460
    Post: 2.390
    Registrato il: 10/10/2013
    Città: VICENZA
    Età: 69
    Utente Veteran
    365
    20 08/08/2021 15:41
    ciao
    caotica ma non complicata

    trovo la parte fissa IL
    TROVA("il";A1;1)+3.......=26

    trovo il primo spazio dopo il 26
    TROVA(" ";A1;TROVA("il";A1;1)+3)..........trova ""...inizio 26..................................35

    trovo la differenza
    TROVA(" ";A1;TROVA("il";A1;1)+3)-(TROVA("il";A1;1)+3)

    35-26 =9


    chiaro che il 26 è una variabile perciò
    devo usare la prima formula ripetuta

    oppure potrei usare due stringa estrai
    ma ho preferito questa.
    [Modificato da federico460 08/08/2021 15:44]
  • OFFLINE
    L2018
    Post: 64
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Junior
    EXCEL 2016 - SPREAD32
    00 08/08/2021 16:01
    grazie per la spiegazione dell'ottima formula, non ancora mi ci trovo, forse ci riferiamo a 2 stringhe diverse, proverò con calma a smontare la mia seguendo il tuo ragionamento.
    Non preoccuparti
    ciao

    LEO
    https://t.me/LordBrum
  • OFFLINE
    federico460
    Post: 2.391
    Registrato il: 10/10/2013
    Città: VICENZA
    Età: 69
    Utente Veteran
    365
    00 08/08/2021 16:32
    ciao
    io parlo di questa
    =ANNULLA.SPAZI(STRINGA.ESTRAI(A1;TROVA("il";A1;1)+3;TROVA(" ";A1;TROVA("il";A1;1)+3)-(TROVA("il";A1;1)+3)))
  • OFFLINE
    L2018
    Post: 65
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Junior
    EXCEL 2016 - SPREAD32
    10 08/08/2021 16:40
    certo, infatti ho detto tua "ultima formula"
    ma il problemino è la stringa da interpretare, se usiamo la stessa (Operazione eseguita....)
    infatti seguendo la tua spiegazione ho ottenuto il tuo stesso risultato, ma non con 35-26, bensì con 75-66
    se ne dedurrebbe che abbiamo usato 2 stringhe diverse
    cioè la lunghezza 9 della DATA in questione nella mia stringa si trova dal carattere 67 al 75
    ho appena fatto, tutto ok
    la mia meraviglia era nell'effetto di più funzioni TROVA, opportunamente concatenate.
    grazie

    LEO
    https://t.me/LordBrum
  • OFFLINE
    federico460
    Post: 2.392
    Registrato il: 10/10/2013
    Città: VICENZA
    Età: 69
    Utente Veteran
    365
    00 08/08/2021 17:39
    ciao
    io ho usato la stringa
    Operazione effettuata il 15/4/1955 presso l'esercente LA BOTTEGA
    è chiaro che tu ne hai usata un'altra.

    la costante è la parola IL

    perciò è una variabile

    trova IL nella frase =23 +3.due lettere il e uno spazio


    trova il primo spazio partendo da 26.........35

    estrai partendo dal 26 per 9 lettere ( 35-26)

    ora se scrivi 1/4/1955 saranno 8 (34-26)
    se scrivi 1/4/21 saranno 6 (32-26)

    ecco la variabile che ti serve
    [Modificato da federico460 08/08/2021 17:49]
  • OFFLINE
    L2018
    Post: 66
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Junior
    EXCEL 2016 - SPREAD32
    00 08/08/2021 17:45
    era presumibile, perchè io ne usavo un'altra
    Operazione pagoBANCOMAT di acquisto eseguita con carta 654321 il 9/07/2021 alle ore 09:33 presso l'Esercente 6832/7845703/97320/002 "LA BOTTEGA" in VIA TAMBURELLO 66 a BUSSOLOTTI

    i conti tornano

    Leo

    LEO
    https://t.me/LordBrum
  • OFFLINE
    L2018
    Post: 67
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Junior
    EXCEL 2016 - SPREAD32
    10 08/08/2021 17:58
    quello che doveva entrarmi in testa è che lo spazio" " subito dopo "IL" non ha niente a che vedere con la ricerca del primo spazio reperibile dopo la costante, peraltro giustamente aumentata di 3 caratteri, e l'opportuno concatenamento dei TROVA restituisce i 2 valori voluti, nel tuo caso 26 e 35.

    leo

    LEO
    https://t.me/LordBrum
  • 15MediaObject5,00621 6