Kirjaimet

Terve

Onko seuraava mahdollista taulukkolaskennalla:

Ohjelma muuntaa tekstin suoraan numeroiksi,
eli kirjaimilla olisi jokin tietty numeroarvo.
Esim. a=1, B=2 ja sitä rataa.
Kirjoittamalla abba vastaus on 1221

Hml2
19348
Äänestä

Muut lukivat myös

Vastaukset 19

Vanhimmat

tissit = 715517

heh heh... Ja ihan mielenkiinnosta, miksi tällainen muunnos?

Äänestä
  • Terve

    Mutkikas juttu:

    Saan konekielistä aineistoa jossa joka rivillä on tunnistetietoja pitkänä numerosarjana. Eri riveillä on eri asioihin liittyviä asioita ja niissä yksityiskohtaisempaa tietoa.
    Jos minulla on vaikka tuhat riviä tietoa, niin pystyn poimimaan niistä tietyllä tunnisteella oikean rivin ja sieltä tarvittavat tiedot ja tekemään niitten avulla tarvittavia laskutoimituksia. Numerosarjassa on myös kirjaimia joilla yksilöidään tunnistetta entistä tarkemmin, mutta tätä en osaa hyödyntää.
    Siis pystyn poimimaan tietyt oikeat numerot heti vaikka 10 000 rivistä, mutta en yhtään kirjainta. Jos voisin muuntaa kirjaimet numeroiksi, niin näitä voisin sitten taas poimia tunnisteen perusteella ja kääntää taas kirjaimiksi. On varmaan mahdollista poimia kirjaimia suoraan, mutta en ymmärrä miten.

    Äänestä

  • Hml2 kirjoitti:

    Terve

    Mutkikas juttu:

    Saan konekielistä aineistoa jossa joka rivillä on tunnistetietoja pitkänä numerosarjana. Eri riveillä on eri asioihin liittyviä asioita ja niissä yksityiskohtaisempaa tietoa.
    Jos minulla on vaikka tuhat riviä tietoa, niin pystyn poimimaan niistä tietyllä tunnisteella oikean rivin ja sieltä tarvittavat tiedot ja tekemään niitten avulla tarvittavia laskutoimituksia. Numerosarjassa on myös kirjaimia joilla yksilöidään tunnistetta entistä tarkemmin, mutta tätä en osaa hyödyntää.
    Siis pystyn poimimaan tietyt oikeat numerot heti vaikka 10 000 rivistä, mutta en yhtään kirjainta. Jos voisin muuntaa kirjaimet numeroiksi, niin näitä voisin sitten taas poimia tunnisteen perusteella ja kääntää taas kirjaimiksi. On varmaan mahdollista poimia kirjaimia suoraan, mutta en ymmärrä miten.

    Vielä tällainen ajatus:
    =SUMIF(G2:G1000;W11;F2:F1000)

    G2:G1000 käy läpi tunnisteita ja W11 on oikea tunniste jonka avulla löytää oikean luvun riviltä F2:F1000

    Miten F2:F1000 voisi toimia kirjaimilla samalla periaatteella.

    Äänestä

Käviskö tämä sinun tarpeisiin?
A2 =CODE(A1) antaa vastauksen 65
B2 =CODE(B1) antaa vastauksen 66

Eli siitä ABBA sanasta tulisi 65666665.

Äänestä
  • Olisiko mitään näppärää keinoa kääntää tuo luku 65 taas A kirjaimeksi.

    Äänestä

=UNICHAR(A1)

Äänestä

Kiitokset, vielä viimeinen ponnistus.

Nyt joka kirjain on muunnettu numeroksi ja poimittu ja muunnettu takaisin kirjaimeksi. Kirjaimet ovat nyt jokainen omassa vierekkäisessä sarakkeessaan,
kuinka saan ne muunnettua samaan sarakkeeseen.

Äänestä

Katsoppa tuolta aikaisemmista viesteistä solujen yhdistämisestä.
Jospa sieltä löytyisi apua.

Äänestä

Taisin löytää kiitos.

=CONCATENATE(A1;B1)

Äänestä
  • Vaikutat oooOOOooo kaverilta joka taitaa tietää kaiken tästä ohjelmasta.
    Olen joskus nähnyt tällä palstalla seuraavan kysymyksen johon ei tainnut tulla selkeää vastausta:
    2 3=5 Miten nauhoitetaan makro tai vastaava siten, että voimme syöttää yhteenlaskutuloksen sen ensimmäiseksi arvoksi. Eli tässä tapauksessa viitonen siirtyy kakkosen paikalle ja tulos on kahdeksan. Kahdeksan siirtyy viitosen paikalle ja tulos on yksitoista jne.

    Äänestä

  • Hml2 kirjoitti:

    Vaikutat oooOOOooo kaverilta joka taitaa tietää kaiken tästä ohjelmasta.
    Olen joskus nähnyt tällä palstalla seuraavan kysymyksen johon ei tainnut tulla selkeää vastausta:
    2 3=5 Miten nauhoitetaan makro tai vastaava siten, että voimme syöttää yhteenlaskutuloksen sen ensimmäiseksi arvoksi. Eli tässä tapauksessa viitonen siirtyy kakkosen paikalle ja tulos on kahdeksan. Kahdeksan siirtyy viitosen paikalle ja tulos on yksitoista jne.

    alkuarvot: A1=numero1 ja B1=numero2

    sub summaus
    dim numero1,numero2,numero3,i,loopcount
    dim osheet

    osheet=thiscomponent.sheets(0)

    loopcount=10
    for i=0 to loopcount
    numero1=osheet.getcellbyposition(0,i).value
    numero2=osheet.getcellbyposition(1,0).value
    numero3=numero1 numero2
    osheet.getcellbyposition(0,i 1).value=numero3
    osheet.getcellbyposition(2,i).value=numero3
    osheet.getcellbyposition(1,i).value=numero2
    numero1=numero3 numero2
    next i
    end sub

    Tiedä sitten mitä järkeä tässä on tai mihin tarkoitukseen tätä tarvii... Ja tiedä sitten tajusinko kysymyksen oikein... Äh, mä alan kattoon fudista...

    Äänestä

  • No_oooOOOooo kirjoitti:

    alkuarvot: A1=numero1 ja B1=numero2

    sub summaus
    dim numero1,numero2,numero3,i,loopcount
    dim osheet

    osheet=thiscomponent.sheets(0)

    loopcount=10
    for i=0 to loopcount
    numero1=osheet.getcellbyposition(0,i).value
    numero2=osheet.getcellbyposition(1,0).value
    numero3=numero1 numero2
    osheet.getcellbyposition(0,i 1).value=numero3
    osheet.getcellbyposition(2,i).value=numero3
    osheet.getcellbyposition(1,i).value=numero2
    numero1=numero3 numero2
    next i
    end sub

    Tiedä sitten mitä järkeä tässä on tai mihin tarkoitukseen tätä tarvii... Ja tiedä sitten tajusinko kysymyksen oikein... Äh, mä alan kattoon fudista...

    Futis loppui ja QPR olisi ansainnut voiton. Vähän siivosin tuota ylläolevaa sepostusta tässä ennen nukkumattia...

    alkuarvot: A1=numero1 ja B1=numero2

    sub summaus
    dim numero1,numero2,numero3,i,loopcount
    dim osheet

    osheet=thiscomponent.sheets(0)
    numero2=osheet.getcellbyposition(1,0).value
    loopcount=10
    for i=0 to loopcount
    numero1=osheet.getcellbyposition(0,i).value
    numero3=numero1 numero2
    osheet.getcellbyposition(0,i 1).value=numero3
    osheet.getcellbyposition(2,i).value=numero3
    osheet.getcellbyposition(1,i).value=numero2
    next i
    end sub

    Äänestä

  • Ja tekstit voi suoraan yhdistää &-merkillä: =A1&B1

    Äänestä

Kiitos vastauksestasi. Täytyy hieman opiskella kuinka saan tuon tehtyä, koska en ole ennen ohjelmoinnut makroilla yhtään mitään.

Äänestä
  • Terve

    Harjoittelin nyt hieman yksinkertaisemmalla tehtävällä jotta pääsisin asiaan käsiksi.
    Löysin tältä palstalta seuraavan kaavan joka kirjoittajan mukaan pitäisi toimia.

    Sub Makro1()
    [B1] = [B1] [A1]
    End Sub

    Sinun esimerkkisi toimii, mutta tämä tässä ei toimi ainakaan minulla.
    En tiedä sitten vaatisiko se painonapin toimiakseen?

    Äänestä

  • Hml2 kirjoitti:

    Terve

    Harjoittelin nyt hieman yksinkertaisemmalla tehtävällä jotta pääsisin asiaan käsiksi.
    Löysin tältä palstalta seuraavan kaavan joka kirjoittajan mukaan pitäisi toimia.

    Sub Makro1()
    [B1] = [B1] [A1]
    End Sub

    Sinun esimerkkisi toimii, mutta tämä tässä ei toimi ainakaan minulla.
    En tiedä sitten vaatisiko se painonapin toimiakseen?

    http://markalexanderbain.suite101.com/openoffice-macros-accessing-calc-cells-a64264

    Tuossa on sivu jossa engelskaksi selitetään miten makrossa päästään käsiksi solujen sisältöihin.

    Jos sun tarkoitus on kirjoittaa makro joka kirjoitetaan soluun, niin:

    function makro1(value1,value2)
    makro1=value1 value2
    end function

    Nyt kirjoitetaan esim. soluun C1 makron kutsu: =makro1(A1;B1)

    Jos taasen haluat tehdän makron jota ei kirjoiteta soluihin ja jota kutsutaan tools->macros->run macro valikosta niin toi menis näin:

    sub makro1
    dim osheet
    osheet=thiscomponent.sheets(0)
    osheet.getcellbyposition(2,0).value=osheet.getcellbyposition(0,0).value osheet.getcellbyposition(1,0).value
    end sub

    tässä osheet viittaa aktiiviseen dokumenttiin ja ja getcellbyposition(x,x) viittaa soluun.

    Äänestä

  • No_oooOOOooo kirjoitti:

    http://markalexanderbain.suite101.com/openoffice-macros-accessing-calc-cells-a64264

    Tuossa on sivu jossa engelskaksi selitetään miten makrossa päästään käsiksi solujen sisältöihin.

    Jos sun tarkoitus on kirjoittaa makro joka kirjoitetaan soluun, niin:

    function makro1(value1,value2)
    makro1=value1 value2
    end function

    Nyt kirjoitetaan esim. soluun C1 makron kutsu: =makro1(A1;B1)

    Jos taasen haluat tehdän makron jota ei kirjoiteta soluihin ja jota kutsutaan tools->macros->run macro valikosta niin toi menis näin:

    sub makro1
    dim osheet
    osheet=thiscomponent.sheets(0)
    osheet.getcellbyposition(2,0).value=osheet.getcellbyposition(0,0).value osheet.getcellbyposition(1,0).value
    end sub

    tässä osheet viittaa aktiiviseen dokumenttiin ja ja getcellbyposition(x,x) viittaa soluun.

    Terve

    Nyt alkaa olemaan kaikki ongelmat ratkaistu, mutta yksi ongelma nousi esiin.

    sub makro1
    dim osheet
    osheet=thiscomponent.sheets(0)
    osheet.getcellbyposition(2,0).value=osheet.getcellbyposition(0,0).value osheet.getcellbyposition(1,0).value
    end sub

    Lisäsin ohjelmaasi rivin
    osheet.getcellbyposition(2,0).value=osheet.getcellbyposition(0,0).value osheet.getcellbyposition(1,0).value
    edellisen alle uusilla arvoilla.

    Tietyissä tilanteissa tämä toinen rivi laskee lukemia väärin, siis aina alempi.
    Kysymykseni kuuluu siis, voiko näitä rivejä noin vain lisätä alekkain, vai pitäisikö siinä ottaa jotain huomioon.

    Kiitos

    Äänestä

  • Hml2 kirjoitti:

    Terve

    Nyt alkaa olemaan kaikki ongelmat ratkaistu, mutta yksi ongelma nousi esiin.

    sub makro1
    dim osheet
    osheet=thiscomponent.sheets(0)
    osheet.getcellbyposition(2,0).value=osheet.getcellbyposition(0,0).value osheet.getcellbyposition(1,0).value
    end sub

    Lisäsin ohjelmaasi rivin
    osheet.getcellbyposition(2,0).value=osheet.getcellbyposition(0,0).value osheet.getcellbyposition(1,0).value
    edellisen alle uusilla arvoilla.

    Tietyissä tilanteissa tämä toinen rivi laskee lukemia väärin, siis aina alempi.
    Kysymykseni kuuluu siis, voiko näitä rivejä noin vain lisätä alekkain, vai pitäisikö siinä ottaa jotain huomioon.

    Kiitos

    Sain vian korjattua ja urakka alkaa olla päätöksessään.
    Kiitokset nimimerkille oooOOOooo ilman sinua en olisi keksinyt kuinka päästä eteenpäin.

    KIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIITOS !!!!!

    Äänestä

Hyvä että joku on saanut apuja neuvoistani.
En minä pajoo tiedä tuosta, ehkä vähän enemmän kuin perus käyttäjä.
On tullut opeteltua openofficella kun en ole halunnut tuhlata rahojani microsoftin vastaaviin ohjelmiin.
Ja itse ainakin olen sitä mieltä että normaali perus käyttäjän EI kannata tuhlata aikaa/rahaa kalliiseen MS officeen.
Kun tälläkin tekee kaikki perus jutut täysin.
Makrojen tekeminen on vielä kyllä vähän hakusessa mutta kyllä silläkin jotain saa aikaiseksi.
Tämä toinen OO taitaa osata neuvoa makroissa paremmin (ja luultavasti kaavoissakin).
Töissä tulee joskus käytettyä Exceliä pakon edessä.
Mutta kaikki jotka tulee omaan käyttöön töissä, teen OO:lla.
Toivottavasti saatas OO käyttäjä kuntaa vähän suurennettua kun aina silloin tällöin neuvoo toisia ongelmien kanssa.

Äänestä

Kommentoi aloitusta


Hml2 kirjoitti:

Terve

Onko seuraava mahdollista taulukkolaskennalla:

Ohjelma muuntaa tekstin suoraan numeroiksi,
eli kirjaimilla olisi jokin tietty numeroarvo.
Esim. a=1, B=2 ja sitä rataa.
Kirjoittamalla abba vastaus on 1221

Hml2

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu