Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Estrarre data

Ultimo Aggiornamento: 08/08/2021 17:58
Post: 4
Registrato il: 12/07/2019
Età: 60
Utente Junior
2016
OFFLINE
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"?
Post: 1.105
Registrato il: 15/01/2016
Città: ROMA
Età: 51
Utente Veteran
2016
OFFLINE
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]
Post: 58
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Junior
EXCEL 2016 - SPREAD32
OFFLINE
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
Post: 2.381
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
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]
Post: 59
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Junior
EXCEL 2016 - SPREAD32
OFFLINE
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
Post: 2.383
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
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

Post: 60
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Junior
EXCEL 2016 - SPREAD32
OFFLINE
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
Post: 2.384
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
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))
Post: 61
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Junior
EXCEL 2016 - SPREAD32
OFFLINE
03/08/2021 13:35

mannaggia, grazie, ma avevo fatto varie prove invano, ora va, ottimo

LEO
https://t.me/LordBrum
Post: 62
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Junior
EXCEL 2016 - SPREAD32
OFFLINE
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
Post: 2.385
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
03/08/2021 14:18

certo
che tutte le possibilità
le devi valutare
quel -2 che metti è variabile
Post: 4
Registrato il: 12/07/2019
Età: 60
Utente Junior
2016
OFFLINE
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]
Post: 2.386
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
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]
Post: 63
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Junior
EXCEL 2016 - SPREAD32
OFFLINE
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
Post: 2.390
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
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]
Post: 64
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Junior
EXCEL 2016 - SPREAD32
OFFLINE
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
Post: 2.391
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
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)))
Post: 65
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Junior
EXCEL 2016 - SPREAD32
OFFLINE
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
Post: 2.392
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
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]
Post: 66
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Junior
EXCEL 2016 - SPREAD32
OFFLINE
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
Post: 67
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Junior
EXCEL 2016 - SPREAD32
OFFLINE
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
Vota: 15MediaObject5,00621 6
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Estrarre data (1 messaggio, agg.: 02/08/2021 16:54)
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 07:30. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com