Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Eliminare giorno settimana da data in cella di testo

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Eliminare giorno settimana da data in cella di testo

Postdi Francesco53 » 09/11/17 18:24

Un saluto a tutto il Forum, ho la seguente difficoltà:
in una cella Es: A1 ho la seguente data in formato testo Wednesday 8 November 2017
con la seguente formula riesco ad eliminare il giorno
Codice: Seleziona tutto
=SE(K1<>"";SOSTITUISCI(K1;"Wednesday";""))

la mia difficoltà è che se inserisco un'unica formula per eliminare qualsiasi giorno,
dovrei inserire sette formule, una per ogni giorno, vorrei sapere se mi potete aiutare
ad evitare di dover utilizzare sette formule diverse.
Metto un esempio che naturalmente non funziona perchè si ferma alla prima condizione.
Codice: Seleziona tutto
=SE(K4<>"";SOSTITUISCI(K4;"Wednesday";"");SE(K4<>"";SOSTITUISCI(K4;"Tuesday";"");SE(K4<>"";SOSTITUISCI(K4;"Monday";"");SE(K4<>"";SOSTITUISCI(K4;"Sunday";"");SE(K4<>"";SOSTITUISCI(K4;"Saturday";"");SE(K4<>"";SOSTITUISCI(K4;"Friday";"");SE(K4<>"";SOSTITUISCI(K4;"Thursday";"");SOSTITUISCI(K4;"     ";""))))))))

Ringrazio chi può aiutarmi.
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 664
Iscritto il: 20/02/10 18:45

Sponsor
 

Re: Eliminare giorno settimana da data in cella di testo

Postdi wallace&gromit » 09/11/17 18:49

sei sicuro di volere veramente fare quello che dici di voler fare?
Non sarebbe meglio trasformare il tutto in data di excel invece di testo?
In questo caso con un "testo in colonne" separi le singole posizioni in varie colonne, cancelli la prima che non ti serve, sostituisci i mesi con numeri (immagino si possa fare rapidamente) e ricomponi la data, questa volta in formato data di excel.
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1692
Iscritto il: 16/01/12 14:21

Re: Eliminare giorno settimana da data in cella di testo

Postdi Anthony47 » 09/11/17 19:45

Se ti basta partire da Testo e ottenere un Testo allora penso potresti usare
Codice: Seleziona tutto
=ANNULLA.SPAZI(STRINGA.ESTRAI(SOSTITUISCI(A1;"day";RIPETI(" ";30));30;99))


Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 14835
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Eliminare giorno settimana da data in cella di testo

Postdi Zer0Kelvin » 09/11/17 19:56

Ciao.
Con una formula è possibile tagliare tutto quello che si trova a sinistra del primo spazio; quindi con

=DESTRA(A1;LUNGHEZZA(A1)-RICERCA(" ";A1))

dovresti ottenere il risultato desiderato.
**EDIT**
Ciao Anthony, non avevo visto la tua risposta; credo vadano bene entrambe le formule.
[Win7,Office2010]
Condividere la conoscenza aumenta la ricchezza di tutti(Z0°K)
Dai ad un uomo un pesce e lo avrai sfamato per un giorno;insegnagli a pescare e lo avrai sfamato per sempre(Confucio)
Il sonno della ragione genera mostri(Francisco Goya)
Avatar utente
Zer0Kelvin
Utente Senior
 
Post: 335
Iscritto il: 08/04/12 11:23

Re: Eliminare giorno settimana da data in cella di testo

Postdi Anthony47 » 09/11/17 20:04

Eh he, si vanno bene tutte e due ma la tua e' piu' diretta!
Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 14835
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Eliminare giorno settimana da data in cella di testo

Postdi Francesco53 » 09/11/17 21:54

Ringrazio tutti per i vostri interventi, a me serve trasformare la data scaricata come testo in data,
in quanto deve poi essere utilizzata come tale.
Ho provato i vostri codici, quello che sembra avvicinarsi di più alle mie necessità sembra quello di
Anthony, l'unico problema è che se poi in altra cella scrivo
Codice: Seleziona tutto
=DATA.VALORE(SINISTRA(L1;10))

non riesco ad ottenere un valore di data, cosa che riuscivo ad ottenere con il codice:
Codice: Seleziona tutto
=SE(K1<>"";SOSTITUISCI(K1;"Wednesday";""))
.
Indipendentemente dai riferimenti di cella, io ho in una cella esempio in K1 il testo
Wednesday 8 November 2017
nella cella L1
Codice: Seleziona tutto
=SE(K1<>"";SOSTITUISCI(K1;"Wednesday";""))

e ottenevo il seguente risultato:
8 November 2017
poi nella cella M1 inserivo il seguente codice:
Codice: Seleziona tutto
=DATA.VALORE(SINISTRA(L1;10))

e ottengo la data utilizzabile
08/11/2017.
Dovendo copiare la formula per diverse righe, per riuscire nel mio scopo dovrei
utilizzare sette colonne, ognuna per un giorno della settimana, oppure riuscire
tramite il codice di Anthony o di chi altro può, trasformare in data.
Vi ringrazio e spero di essere riuscito a chiarire il tutto, in attesa di vostre nuove indicazioni,
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 664
Iscritto il: 20/02/10 18:45

Re: Eliminare giorno settimana da data in cella di testo

Postdi Francesco53 » 09/11/17 22:22

Per zerokelvin, la tua formula purtroppo non riesce a fare quanto dovrebbe
in quanto prima del giorno ci sono spazi vuoti, per cui non riesce ad eliminare
il giorno.
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 664
Iscritto il: 20/02/10 18:45

Re: Eliminare giorno settimana da data in cella di testo

Postdi Francesco53 » 09/11/17 22:36

S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 664
Iscritto il: 20/02/10 18:45

Re: Eliminare giorno settimana da data in cella di testo

Postdi Zer0Kelvin » 09/11/17 23:36

Andando per tentativi ho ricavato questa formula dalle tue e quella di Anthony
Codice: Seleziona tutto
=DATA.VALORE(SINISTRA(ANNULLA.SPAZI(STRINGA.ESTRAI(SOSTITUISCI(SE(B1=1;SOSTITUISCI(A1;" SERA   ";"");SOSTITUISCI(A1;" NOTTE   ";""));"day";RIPETI(" ";30));30;99));5))
che usa un solo passaggio.
E' bruttina e forse si può migliorare, ma sembra che funzioni.
[Win7,Office2010]
Condividere la conoscenza aumenta la ricchezza di tutti(Z0°K)
Dai ad un uomo un pesce e lo avrai sfamato per un giorno;insegnagli a pescare e lo avrai sfamato per sempre(Confucio)
Il sonno della ragione genera mostri(Francisco Goya)
Avatar utente
Zer0Kelvin
Utente Senior
 
Post: 335
Iscritto il: 08/04/12 11:23

Re: Eliminare giorno settimana da data in cella di testo

Postdi Zer0Kelvin » 09/11/17 23:54

**EDIT**
Se invece vuoi usare tutti i passaggi, devi solo modificare l'ultima formula
Codice: Seleziona tutto
=DATA.VALORE(SINISTRA(L1;5))

Se vuoi eliminare anche la colonna B dal calcolo
Codice: Seleziona tutto
=DATA.VALORE(SINISTRA(ANNULLA.SPAZI(STRINGA.ESTRAI(SOSTITUISCI(SE(DESTRA(A1;8)=" SERA   ";SOSTITUISCI(A1;" SERA   ";"");SOSTITUISCI(A1;" NOTTE   ";""));"day";RIPETI(" ";30));30;99));5))


PS:
mi spiegate come fa la formula
Codice: Seleziona tutto
=DATA.VALORE(SINISTRA(L1;10))
a restituire la data corretta?
[Win7,Office2010]
Condividere la conoscenza aumenta la ricchezza di tutti(Z0°K)
Dai ad un uomo un pesce e lo avrai sfamato per un giorno;insegnagli a pescare e lo avrai sfamato per sempre(Confucio)
Il sonno della ragione genera mostri(Francisco Goya)
Avatar utente
Zer0Kelvin
Utente Senior
 
Post: 335
Iscritto il: 08/04/12 11:23

Re: Eliminare giorno settimana da data in cella di testo

Postdi Anthony47 » 10/11/17 00:31

Ciao Z0K; ma tu hai Excel in Inglese? La stessa domanda vale per Francesco.

Perche' secondo me, con Excel in altre lingue allora non credo che si possa ottenere un risultato affidabile senza un "dizionario" che traduca i Mesi in Italiano (salvo smentite :D )

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 14835
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Eliminare giorno settimana da data in cella di testo

Postdi Zer0Kelvin » 10/11/17 00:34

**RE EDIT**
Mi sono appena reso conto (meglio tardi che mai :D ) che il tutto funziona solo per quei mesi che, in inglese ed italiano, cominciano con le stesse 3 lettere.
Sarebbe più pratico, a questo punto, utilizzare una User Function.
Codice: Seleziona tutto
Public Function ConvertiData(Cella As Variant) As Variant
Application.Volatile
Dim GG As Long, MM As Long, AA As Long
Dim Spl As Variant, Mesi As Variant
    Mesi = Array("January", "February", "March", "April", "May", "June", "July", "August", _
                    "September", "October", "November", "December")
    Spl = Split(Trim(Cella), " ")
    GG = Spl(1)
    For MM = 0 To 11
        If Spl(2) = Mesi(MM) Then
            MM = MM + 1
            Exit For
        End If
    Next MM
    AA = Spl(3)
    ConvertiData = GG & "/" & MM & "/" & AA
End Function
[Win7,Office2010]
Condividere la conoscenza aumenta la ricchezza di tutti(Z0°K)
Dai ad un uomo un pesce e lo avrai sfamato per un giorno;insegnagli a pescare e lo avrai sfamato per sempre(Confucio)
Il sonno della ragione genera mostri(Francisco Goya)
Avatar utente
Zer0Kelvin
Utente Senior
 
Post: 335
Iscritto il: 08/04/12 11:23

Re: Eliminare giorno settimana da data in cella di testo

Postdi Francesco53 » 10/11/17 10:06

Buongiorno a tutti, vi ringrazio per le vostre risposte.
Utilizzato il codice di zerokelvin e sembra tutto ok.
La funzione non sono riuscito a farla funzionare, comunque appena ho un pò di tempo ricontrollo con calma.
Per Anthony excel che utilizzo è in italiano.
GRazie

Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 664
Iscritto il: 20/02/10 18:45

Re: Eliminare giorno settimana da data in cella di testo

Postdi Zer0Kelvin » 10/11/17 14:34

Francesco, attento!
La formula funziona solo con alcuni mesi: February, April, March, November.
Con gli altri mesi restituisce #VALORE.

Per usare la function, la devi inserire in un modulo standard:
-Click destro su VBAProject
-Inserisci-->Modulo

Per usarla, fai come se fosse una funzione di Excel
Codice: Seleziona tutto
=ConvertiData(A1)
[Win7,Office2010]
Condividere la conoscenza aumenta la ricchezza di tutti(Z0°K)
Dai ad un uomo un pesce e lo avrai sfamato per un giorno;insegnagli a pescare e lo avrai sfamato per sempre(Confucio)
Il sonno della ragione genera mostri(Francisco Goya)
Avatar utente
Zer0Kelvin
Utente Senior
 
Post: 335
Iscritto il: 08/04/12 11:23

Re: Eliminare giorno settimana da data in cella di testo

Postdi Francesco53 » 10/11/17 15:28

Grazie Zer0Kelvin, ho provato con più calma e la Funzione è perfetta.
Un ringraziamento a tutti per la vostra disponibilità e per la grande capacità che avete tutti messo a mia disposizione.
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 664
Iscritto il: 20/02/10 18:45

Re: Eliminare giorno settimana da data in cella di testo

Postdi Anthony47 » 10/11/17 15:56

Hai risolto, bene e grazie a Z0K.

C'e' da notare che la Funzione restituisce una stringa; ma se vuoi una "vera data" basta usare
Codice: Seleziona tutto
=--ConvertiData(A1)

Infine, a scopo puramente ludico, pubblico questa variante:
Codice: Seleziona tutto
Function ConData(ByVal dtCell As Range, Optional ByVal iLang As Long = 0) As Variant
Dim dtVal As String, I As Long, J As Long, repArr, ubArr, langArr
'
'Utilizzo       =ConData(DataTestoOriginale [,opzionale: codice lingua])
'               Codice lingua originale: 0=Usa, 1=Francese, 2=Tedesco, 3=Spagnolo, 4=Italiano
'               La traduzione sara' sempre nella lingua "Locale"
'
dtVal = dtCell.Text
'Lingua orig:    US,   Fran,  Germ,  Span,  Ita
langArr = Array("409", "40C", "407", "C0A", "410")
repArr = Array("dddd", "ddd", "mmmm", "mmm")
ubArr = Array(7, 7, 12, 12)
For I = 0 To 3
    For J = 1 To ubArr(I)
        If I < 2 Then
'        Debug.Print Application.Text(DateSerial(2017, 1, J), "[$-" & langArr(iLang) & "]" & repArr(I))
            dtVal = Replace(dtVal, Application.Text(DateSerial(2017, 1, J), "[$-" & langArr(iLang) & "]" & repArr(I)) & " ", "", , , vbTextCompare)
        Else
'        Debug.Print Application.Text(DateSerial(2017, J, 1), "[$-" & langArr(iLang) & "]" & repArr(I))
            dtVal = Replace(dtVal, Application.Text(DateSerial(2017, J, 1), "[$-" & langArr(iLang) & "]" & repArr(I)), Format(DateSerial(2017, J, 1), repArr(I)), , , vbTextCompare)
        End If
    Next J
Next I
If IsDate(Trim(Replace(Replace(dtVal, "notte", "", , , vbTextCompare), "sera", "", , , vbTextCompare))) Then
    ConData = DateValue(Trim(Replace(Replace(dtVal, "notte", "", , , vbTextCompare), "sera", "", , , vbTextCompare)))
Else
    ConData = dtVal
End If
End Function

Utilizzo =ConData(DataTestoOriginale [,opzionale: codice lingua])
Codice lingua originale: 0 oppure Omesso=Usa, 1=Francese, 2=Tedesco, 3=Spagnolo, 4=Italiano
La traduzione sara' sempre nella lingua "Locale"

Rispetto alla ConvertiData dovrebbe essere piu' "resistente", cioe' accetta situazioni anche diverse da Weekday gg Mese Anno
Ad esempio accetta i mesi "brevi" (jan, feb,...), accetta l'assenza del Weekday (es 7 jun 2017 SERA), accetta "vere date" (in questo caso non verranno convertite, perche' le vere date sono gia' in notazione locale); e soprattutto accetta stringhe in lingua 1-Francese (lundi 6 mars 2017 NOTTE), 2-Tedesca (Montag 20 marz 2017 SERA), 3-Spagnolo (lunes 6 marzo 2017 NOTTE), oltre che 4-Italiano.
Se il campo "lingua originale" e' 0 oppure omesso si usa la lingua Inglese.

Adattandola al tuo caso, per riga 1:
Codice: Seleziona tutto
=ConData(A1)

Fosse in tedesco:
Codice: Seleziona tutto
=ConData(A1;2)


La formula restituisce una data, formattala come piu' ti piace.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 14835
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Eliminare giorno settimana da data in cella di testo

Postdi Zer0Kelvin » 10/11/17 19:23

C'e' da notare che la Funzione restituisce una stringa;

Colpa mia :oops: non reggo più le ore piccole.
Basta modificare l'ultima istruzione
Codice: Seleziona tutto
    ConvertiData = CDate(GG & "/" & MM & "/" & AA)

Ciao.
[Win7,Office2010]
Condividere la conoscenza aumenta la ricchezza di tutti(Z0°K)
Dai ad un uomo un pesce e lo avrai sfamato per un giorno;insegnagli a pescare e lo avrai sfamato per sempre(Confucio)
Il sonno della ragione genera mostri(Francisco Goya)
Avatar utente
Zer0Kelvin
Utente Senior
 
Post: 335
Iscritto il: 08/04/12 11:23

Re: Eliminare giorno settimana da data in cella di testo

Postdi Francesco53 » 12/11/17 19:28

Scusate il ritardo con cui rispondo, siete veramente grandi.
Grazie
Francesco
S.O. Vista e Office 2007
Francesco53
Utente Senior
 
Post: 664
Iscritto il: 20/02/10 18:45


Torna a Applicazioni Office Windows


Topic correlati a "Eliminare giorno settimana da data in cella di testo":


Chi c’è in linea

Visitano il forum: sysuop33 e 25 ospiti