Portaal Portaal Pingviini veeb foorumi pealeht
  Viki  |  IRC  |  Otsing  |  Küsimused ja vastused  |  Profiil  |  Privaatsõnumite vaatamiseks logi sisse  | Logi sisse või Registreeru
<empty>
Vaata järgmist teemat
Vaata eelmist teemat

Postita uus teemaVasta teemale
Autor Sõnum
zeroconf
Vana Pingviin
Vana Pingviin


Vanus: 43
Liitunud: 31.03.2007
Postitused: 1018
Asukoht: Rapla, Tallinn
Distributsioon: Linux Mint, Ubuntu jt
estonia.gif
postituspostitatud: 25.01.2009, 01:46  postituse pealkiri:  Eesti täpitähtede jm mittesoovitavate eemaldamine Calc-is?  

Kuidas eemaldada funktsioonide abil täpitähti jm mittesoovitavaid sümboleid Calc-is?

Hetkel ei ole leidnud muud võimalust kui teha nii mitu veergu kui on ebasoovitavaid sümboleid ja siis valemiks on =SUBSTITUTE(B3;"õ";"o") - muidugi see lahter B3 on siin juhuslik. See valem asendab siis kus iganes esineb "õ" tähte "o"-ga. Iga järgnev veerg filtreerib ühe ebasoovitava sümboli välja.

Näiteks on selline ülesanne, et on inimeste nimed ja vaja neist tekitada kasutajatunnused kus ei ole tühikuid/sidekriipse/alakriipse/täpitähti/vms, on väiketähtedega ja ühes lahtris on nii ees- kui perenimi, tühik vahel:
=CLEAN(LOWER(REPLACE(B3;SEARCH(" ";B3);1;"")))

Paraku see CLEAN ei puhastanud täpitähtedest, tühikutest, side/alakriipsudest vms.

Proovisin ka regulaaravaldisi:
Kood:

=SEARCH("[õ{1,2}ä{1,2}ö{1,2}ü{1,2}ž{1,2}š{1,2}]";B40)
=SEARCH("[õ|ä|ö|ü|ž|š]";B40)
ja ka:
=REPLACE(B40;SEARCH("[õ{1,2}|ä{1,2}|ö{1,2}|ü{1,2}|ž{1,2}|š{1,2}]";B40);1;"x")
=REPLACE(B40;SEARCH("[õ|ä|ö|ü|ž|š]";B40);1;"x")

... kuid see ei toiminud. Siin ei saanud valida, et "õ" asemele "o" jne - pidi need kõik "x"-ga asendama.

Ideaalis võiks toimida selline valem:
Kood:

=IF(SEARCH("õ";B3)>0;REPLACE(B3;SEARCH("õ";B3);1;"o");IF(SEARCH("ä";B3)>0;REPLACE(B3;SEARCH("ä";B3);1;"a");IF(SEARCH("ö";B3)>0;REPLACE(B3;SEARCH("ö";B3);1;"o");IF(SEARCH("ü";B3)>0;REPLACE(B3;SEARCH("ü";B3);1;"y");IF(SEARCH("ž";B3)>0;REPLACE(B3;SEARCH("ž";B3);1;"zh");IF(SEARCH("š";B3)>0;REPLACE(B3;SEARCH("š";B3);1;"sh");"B3"))))))

.... kuid see ei toimi Sad

Probleem tekib selles, et niipea kui tegemist on näiteks mitme sõnaga või kui täpitähti on mitu sõnas või ka mitmes sõnas siis asi ei toimi ja annab ka veateateid. Tuvastab vaid esimese täpitähe ent teisi enam mitte.

Proovisin ka leida mingit makrot aga seni ei ole midagi asjalikku leidnud.


wk
Vana Pingviin
Vana Pingviin



Liitunud: 24.10.2007
Postitused: 1133
Asukoht: Tallinn, vahel Vastseliina vald
Distributsioon: Debian, Kubuntu
estonia.gif
postituspostitatud: 25.01.2009, 14:36  postituse pealkiri:  (teema puudub)  

Sa ei saa sellist asja lahendada IF-iga, sest kui esimene tingimus täidetakse, siis täitmine katkestatakse, järgmiseid tingimusi enam proovima ei hakatagi. Seega, minu arust, on vaja selleks ikka mingi makro kirjutada, sest tr/// funktsiooni OOo ei tunne,

_________________
Kõike hääd,
WK

zeroconf
Vana Pingviin
Vana Pingviin


Vanus: 43
Liitunud: 31.03.2007
Postitused: 1018
Asukoht: Rapla, Tallinn
Distributsioon: Linux Mint, Ubuntu jt
estonia.gif
postituspostitatud: 25.01.2009, 15:40  postituse pealkiri:  (teema puudub)  

Ilmselt jah kuid siiski oli väike lootus, et loogika, teksti vms funktsioone omavahel osavalt kombineerides on see ehk võimalik.

Saab ju AND ja OR funktsioonidega ka mitu tingimust samaaegselt IF-lausesse panna. Lisaks saab mitu IF-lauset üksteise sisse panna. Lisaks on olemas regulaaravaldised. Kusjuures näiteks võib OR-lause olla üheks AND-lause argumendiks ja vastupidi.

Lihtsam oleks eraldi funktsioon ehitada - see peaks ju ehk ka Calc-is ja üldse OpenOffice.org-is võimalik olema? Need olemasolevad funktsioonid on ju ka ilmselt makrod, mida siis vastav funktsioon käivitab. Kiire otsing Googles leidis sellised viited:
http://www.oooforum.org/forum/viewtopic.phtml?t=44679
http://wiki.services.openoffice.org/wiki/OpenOffice_Calc_Add-In_Project_Type
Kohati kipub asi üsna hardcore progemiseks minema, millest minu jõud üle ei käi Sad


Näita (aja järgi):      
Postita uus teemaVasta teemale


Vaata järgmist teemat
Vaata eelmist teemat
Powered by phpBB2 Plus based on phpBB © 2001/7 phpBB Group