Estrarre data

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
benkyo63
00lunedì 2 agosto 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"?
DANILOFIORINI
00lunedì 2 agosto 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
L2018
00lunedì 2 agosto 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
federico460
00lunedì 2 agosto 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 ?
L2018
00lunedì 2 agosto 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
federico460
00martedì 3 agosto 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

L2018
00martedì 3 agosto 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
federico460
00martedì 3 agosto 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))
L2018
00martedì 3 agosto 2021 13:35
mannaggia, grazie, ma avevo fatto varie prove invano, ora va, ottimo
L2018
00martedì 3 agosto 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
federico460
00martedì 3 agosto 2021 14:18
certo
che tutte le possibilità
le devi valutare
quel -2 che metti è variabile
benkyo63
00martedì 3 agosto 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?
federico460
20mercoledì 4 agosto 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)))
L2018
00domenica 8 agosto 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
federico460
20domenica 8 agosto 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.
L2018
00domenica 8 agosto 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
federico460
00domenica 8 agosto 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)))
L2018
10domenica 8 agosto 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
federico460
00domenica 8 agosto 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
L2018
00domenica 8 agosto 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
L2018
10domenica 8 agosto 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
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 02:48.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com