[Risolto] Cancellare testo dopo una parola

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
rxdue
Messaggi: 14
Iscritto il: giovedì 26 gennaio 2017, 11:08

[Risolto] Cancellare testo dopo una parola

Messaggio da rxdue »

Sto cercando di cancellare tutto il testo dopo una parola però al momento con scarso risultato.

Ho il file composto così:

A1
xxxx xxxxx PER xxx xxxxxxx xxx xxxx
xxxxxx xxx xxx PER xxxxx xxxx xxx
xxx PER xxxx xxx xxxx
ecc.

Ho provato varie formule però non riesco a venirne fuori =/
Qualche idea?

Grazie a tutti
Ultima modifica di rxdue il lunedì 6 febbraio 2017, 19:04, modificato 5 volte in totale.
OpenOffice 4.1.2 su Windows 10 Pro
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Cancellare testo dopo una parola

Messaggio da patel »

=SINISTRA(A1;RICERCA("PER";A1; )+3)
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
rxdue
Messaggi: 14
Iscritto il: giovedì 26 gennaio 2017, 11:08

Re: Cancellare testo dopo una parola

Messaggio da rxdue »

patel ha scritto:=SINISTRA(A1;RICERCA("PER";A1; )+3)
Err.511

Hai già provato?
OpenOffice 4.1.2 su Windows 10 Pro
rxdue
Messaggi: 14
Iscritto il: giovedì 26 gennaio 2017, 11:08

Re: Cancellare testo dopo una parola

Messaggio da rxdue »

Risolto Grazie!

Avevi messo uno spazio ed un ; in più
=SINISTRA(A1;RICERCA("PER";A1)+3)

Così funziona

Grazie ancora
OpenOffice 4.1.2 su Windows 10 Pro
rxdue
Messaggi: 14
Iscritto il: giovedì 26 gennaio 2017, 11:08

Re: Cancellare testo dopo una parola

Messaggio da rxdue »

Se invece volessi spezzare un testo appena, a partire da sinistra, vede un numero?
Cioè al primo numero a partire da sx.

Ho provato a mettere val.numero però non funziona
Ultima modifica di rxdue il venerdì 27 gennaio 2017, 17:35, modificato 1 volta in totale.
OpenOffice 4.1.2 su Windows 10 Pro
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Cancellare testo dopo una parola

Messaggio da patel »

non è molto chiaro, ma penso occorra una macro
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
rxdue
Messaggi: 14
Iscritto il: giovedì 26 gennaio 2017, 11:08

Re: Cancellare testo dopo una parola

Messaggio da rxdue »

Es.

A
a1 xxxx xxxxx 123 xxxx 456
a2 xxxx xxxx xxxx 789 xxxx 012 xx

Vorrei che divida il testo al primo numero che trova partendo da sinistra in questo caso deve dividere
in b1
123 xxxx 456

in b2
789 xxxx 012


Mi va bene anche una macro
OpenOffice 4.1.2 su Windows 10 Pro
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Cancellare testo dopo una parola

Messaggio da patel »

Codice: Seleziona tutto

sub estrai
oSheet = ThisComponent.Sheets(0)
oCursor = oSheet.createCursor
oCursor.gotoEndOfUsedArea(False)
LastRow = oCursor.RangeAddress.EndRow
dim s as string
for r= 0 to LastRow
  s = osheet.GetCellByPosition(0,r).string
  p1=firstNumber(s)
  p2= RevfirstNumber(s)  
  osheet.GetCellByPosition(1,r).string = Mid(s,firstNumber(s), RevfirstNumber(s) - firstNumber(s))
next
end sub

Function firstNumber(st)
For i = 1 To Len(st)
  stp =  Mid(st, i, 1)
  If IsNumeric(stp) and stp <> " " Then exit for
Next
firstNumber = i
End Function


Function RevfirstNumber(st)
For i = Len(st) to 1 step -1
  stp =  Mid(st, i, 1)
  If IsNumeric(stp) and stp <> " " Then exit for
Next
RevfirstNumber = i+1
End Function
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
rxdue
Messaggi: 14
Iscritto il: giovedì 26 gennaio 2017, 11:08

Re: Cancellare testo dopo una parola

Messaggio da rxdue »

Grazie mille, funziona alla perfezione!
<3
OpenOffice 4.1.2 su Windows 10 Pro
Gaetanopr
Volontario
Volontario
Messaggi: 3300
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Cancellare testo dopo una parola

Messaggio da Gaetanopr »

patel ha scritto:........ ma penso occorra una macro
Si può fare usando le espressioni regolari

Codice: Seleziona tutto

=DESTRA(A1;RICERCA("[0-9].*";A1)+1)
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Cancellare testo dopo una parola

Messaggio da patel »

non le ho mai capite, me la spieghi ?
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Gaetanopr
Volontario
Volontario
Messaggi: 3300
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Cancellare testo dopo una parola

Messaggio da Gaetanopr »

Codice: Seleziona tutto

"[0-9].*" 
I caratteri inclusi nella cornice cioè le parentesi [] sono legati da una relazione di tipo OR, quindi trova un SOLO carattere tra quelli presenti nella cornice, il trattino significa "tra" per cui tutti i valori numerici tra 0 e 9 è come scrivere [0123456789] invece l'asterisco serve a specificare che dopo il valore numerico trovato può esserci qualsiasi altro tipo di carattere.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Cancellare testo dopo una parola

Messaggio da patel »

grazie, però non mi sembra che funzioni per la seconda riga, deve restituire 789 xxxx 012
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Gaetanopr
Volontario
Volontario
Messaggi: 3300
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Cancellare testo dopo una parola

Messaggio da Gaetanopr »

Allora qualcosa non va anche nella tua macro(restituisce lo stesso risultato della mia formula) :) sicuramente ha sbagliato nell'esempio rxdue, la richiesta è chiara
rxdue ha scritto:Es.
Vorrei che divida il testo al primo numero che trova partendo da sinistra ........
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
rxdue
Messaggi: 14
Iscritto il: giovedì 26 gennaio 2017, 11:08

Re: [Risolto] Cancellare testo dopo una parola

Messaggio da rxdue »

Entrambe le risposte fanno quello che serve a me, cioè estrarre il primo numero a partire da sinistra del testo che viene dopo il primo numero non mi importa nulla.
Quindi avevo "sbagliato" nell'esempio, ho messo che in b1 mi deve riportare "123 xxxx 456" quando a me va bene anche se mi da "123 456" perchè poi con la funzione "Testo a colonne" separo i due numeri con lo spazio in mezzo e così ho ottenuto il famoso primo numero a partire da sinistra.

Grazie di nuovo a tutti
OpenOffice 4.1.2 su Windows 10 Pro
rxdue
Messaggi: 14
Iscritto il: giovedì 26 gennaio 2017, 11:08

Re: Cancellare testo dopo una parola

Messaggio da rxdue »

Non volevo aprire un altro topic visto che si tratta dello stesso argomento, quindi continuo qua, ho modificato il titolo.

Avrei bisogno di fare la stessa cosa della prima richiesta, cioè cancellare il testo a destra dopo una parola, però questa volta la parola che deve cercare la deve prendere da una lista.

ES.

A1
xxx xxxxx PER xxx xx
xxxx xx xxxx DEL xxx
xxx xxxx xx CON xxxx

B1
xxx xxxxx PER
xxxx xx xxxx DEL
xxx xxxx xx CON

C1
DEL
PER
CON

Quindi la forumula non è più

Codice: Seleziona tutto

=SINISTRA(A1;RICERCA("PER";A1)+3)
Perchè dovrei cambiare manualmente la parola da trovare, e quindi ho provato a buttarci in mezzo un CERCA.VERT ma con scarsi risultati

Codice: Seleziona tutto

=SINISTRA(A6;CERCA.VERT(A6;C1:C7;2;0)-1)
Dove sbaglio? =\
OpenOffice 4.1.2 su Windows 10 Pro
Gaetanopr
Volontario
Volontario
Messaggi: 3300
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Cancellare testo dopo una parola

Messaggio da Gaetanopr »

Non è così semplice, supponendo il testo nella colonna A, nella colonna D le parole da ricercare

Codice: Seleziona tutto

=SINISTRA(A1;RICERCA(INDICE(D$1:D$3;CONFRONTA(1;SE(VAL.ERRORE(TROVA($D$1:$D$3;A1)^0);0;TROVA($D$1:$D$3;A1)^0);0));A1)+LUNGHEZZA(INDICE(D$1:D$3;CONFRONTA(1;SE(VAL.ERRORE(TROVA($D$1:$D$3;A1)^0);0;TROVA($D$1:$D$3;A1)^0);0)))-1)
Formula matriciale
Allego un esempio
Allegati
cancella_testo.ods
(8.92 KiB) Scaricato 70 volte
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
rxdue
Messaggi: 14
Iscritto il: giovedì 26 gennaio 2017, 11:08

Re: Cancellare testo dopo una parola

Messaggio da rxdue »

:bravo:

Grazie mille funziona alla grande.

Pensavo bastasse una ricerca in verticale =/
OpenOffice 4.1.2 su Windows 10 Pro
Rispondi