Funktiota: laske rivistä summa jossa a=1, b=2, jne

sarsaa

Eli miten teen tällaisen kaavan: Rivissä eri ruuduissa on kirjaimia, esim. A, B,C, jne. A tarkoittaa lukua 1, B=2, C=3. Miten rivistä lasketaan näiden summa. Eli jos ekassa ruudussa on A, tokassa B ja kolmannessa C, summa pitäisi olla 6. Mutta miten teen siis sellaisen kaavan että excel ymmärtää minkä arvon mikäkin kirjain saa ja laskee ne yhteen?

11

726

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • lokäyttäjä

      Asenna suosiolla LibreOffice, niin saat apuja.

    • phaku

      PHAKU-funktio yksi mahdollisuus. Esim:
      - tee jonnekin aputaulukko, josta selviää kunkin kirjaimen "numeroarvo" (vaikka J1 alaspäin kirjaimet (A, B, C, jne,) ja K1 alaspäin numerot (1, 2, 3, jne...)
      - jos nuo A,B ja C ovat A1:C1, niin D1 kaava:
      =SUMMA(PHAKU(A1;J1:K10;2;0) PHAKU(B1;J1:K10;2;0) PHAKU(C1;J1:K10;2;0))
      Eli kaava hakee ensin A1 (A) vastaavan numeron aputaulukosta, tässä esimerkissä nyt 10 ensimmäistä aakkosta, solualueesta J1:K10, toisesta (2) sarakkeesta (K), jne... ja SUMMAA ne yhteen.

      • sarsaa

        Tämä toimii muuten mutta jos kopioin kaavan seuraavalle riville, myös aputaulukon alue vaihtuu yhdellä rivillä eteenpäin. Miten saan tehtyä aputaulukosta sellaisen vakio-osan kaavassa että kopioidessa alue ei vaihdu vaan pysyy samana?


      • fdbhsxdf

        Laitat siihen kaavan joka kohtaan aputaulukon alueen osoitteeseen taalamerkkejä $

        Tuossa esimerkissä oli aputaulukko J1:K10
        Muuta se tähän muotoon $J$1:$K$10

        =SUMMA(PHAKU(A1;$J$1:$K$10;2;0) PHAKU(B1;$J$1:$K$10;2;0) PHAKU(C1;$J$1:$K$10;2;0))


    • Kundepuu

      jos tarkoitus laskea loogisesti A=1, B=2, C=3 D=4 jne niin sitten helppoa
      soluun mihin haluat summan laitat matriisikaavan {=SUM(CODE(A1:D1)-64)}

      Keep EXCELing
      Kunde

    • Jos-metsään-haluat-mennä

      Käyköhän tämä ratkaisusta, kun ei ole tuota laskupäätä niin hiirellä vetäen seuraavaan soluun edellisestä: https://imgur.com/a/FdEQW

      ------------------------------------------------------------------------------------------------------------
      Linux Mint 17.3 Rosa
      Xfce 64-bit

    • sarsaa

      Kiitos paljon vastauksista. Loogista järjestystä ei ole, laitoin vain esimerkkinä mitä ajoin takaa. Kokeilen ehkä tuota aputaulukko-hommaa eka. Eli jos tietty kirjain saa tietyn arvon ja näitä kirjaimia on useita, niin niistä täytyis saada laskettua numeerinen summa niistä kirjaimista. Tää tais olla vielä huonommin selitetty kuin aikaisemmin, mut kuitenkin. 😀

      • Tämmöinen

        Aakkosnumeeriset merkit koodataan numeroina ja niiden koodit ovat englannin kielen mukaisessa aakkosjärjestyksessä välillä 65-90, pienet kirjaimet 97-122. (ääkkösten koodit eivät ole suomen kielen mukaisilla paikoillaan) Jos kirjaimen "A" haluaa saada vastaamaan arvoa 1, on sen koodista vähennettävä 64.
        =CHAR(65) --> "A"
        =CODE("A") --> 65

        Aputaulukkoja ei tarvita. Kunden lyhyt kaava huomioi aakkoset A-Z. Huomautuksena: Matriisikaava kirjoitetaan ilman kaarisulkeita, painetaan Ctrl Shift Enter, mikä tekee kaarisulkeet matriisikaavan merkiksi:
        {=SUM(CODE(A1:D1)-64)}


      • sarsaa

        Mutta kun mulla a=7, j=8, ö=14,5 jne. Niin toimiiko tää kaava silloinki?


      • hjlhjk

        Tuo kaava ei silloin toimi, koska se perustuu suoraan sen merkin koodiin. Lisäksi sen tulos on riippuvainen merkin koosta, siis A ja a eivät anna samaa tulosta. Aikaisemmin esitetty PHAKU ei välitä siitä, minkä kokoisia kirjaimia haetaan.


    • Kundepuu

      muuta kirjaimet ja vastaavat arvot sopiviksi koodissa
      ei väliä onko iso vai pikkukirjain vaiko sekaisin molempia

      moduullin...
      soluun mihin haluat tuloksen kaava esim. =LaskeKirjaimilla(A1:AA1)

      Function LaskeKirjaimilla(Laskualue As Range) As Double
      Dim x As Long
      Dim vars1
      Dim vars2

      vars1 = Array("A", "K", "c", "Ä", "VV")
      vars2 = Array(1, 2.3, 3.7, 12, 11.1)
      For Each solu In Laskualue
      If IsNumeric(Application.Match(solu.Value, vars1, 0)) Then
      x = CDbl(Application.Match(solu.Value, vars1, 0) - 1)
      LaskeKirjaimilla = LaskeKirjaimilla vars2(x)
      End If
      Next
      End Function

      Keep EXCELing
      @Kunde

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Sannalla tänään vuorossa The Daily Show

      Eli nyt mennään jo satiirin puolelle. Tuohan on vähän kuten Lindströmin ohjelma Suomessa.
      Maailman menoa
      82
      8023
    2. Tanskassa lain vaatimana Bovaer tappanut nautoja ja sairastuttanut

      Samaa myrkkyä myös Suomen lehmiin ollut tuloillaan, miten teidän tilalla? https://www.agriland.ie/farming-news/bovaer-m
      Maailman menoa
      89
      6053
    3. Ruotsalaisuuden Päivän virallinen liputuspäivä poistettava VÄLITTÖMÄSTI!

      Suomen valtion ja suomalaisuuden kannalta ei ole minkäänlaisia perusteita liputtaa virallisesti ruotsalaisuuden päivää,
      Maailman menoa
      86
      5552
    4. Täysi ryöpytys Sanna Marinille ulkomailla.

      https://www.iltalehti.fi/ulkomaat/a/f699d84f-fa53-4dba-8718-2c395017fc55 Sanna Marinin kirja saa todella tylyn vastaanot
      Maailman menoa
      67
      5466
    5. Minja Koskelan "istumista" kertovassa uutisessa ei sanottu persuista mitään

      eli jälleen kerran äärivasemmistolainen valehtelee, hän kun väittää että juuri persut ovat lähetelleet Koskelalle vähemm
      Maailman menoa
      113
      4710
    6. Pekka Visuri: "Suomen on aika irrottautua Ukrainan sodasta"

      Slava Ukraina-mölinät eivät enää auta. Ukraina on sotansa hävinnyt. Nyt tarvitaan poliittista selvänäköisyyttä, reaalipo
      Maailman menoa
      122
      2465
    7. Ei välimatka meitä erottanut

      Vaan välirikko ja väärinymmärrykset. Oikeastaan henkinen välimatka on meidän välillä pieni, näin uskon. Näen koko ajan e
      Ikävä
      5
      1329
    8. Maajussi-Villen morsioehdokas Maarit ei halunnut Villeä - Tämä totuus valkeni kuvauksissa!

      Ohhoh, tekikö Maarit mielestäsi oikean ratkaisun Villen suhteen? Maajussi-Ville on herättänyt voimakkaita tunteita puol
      Maajussille morsian
      7
      1324
    9. Kohta taas mesikämmeneen

      Onneksi kaupunki ostaa mesikämmenen, niin päästään taas tekemään rahaa
      Ähtäri
      43
      1164
    10. Olin ihan varma että sä olet se oikea

      Tunteet kuitenkin kuoli käyttäytymisesi johdosta. Hyvin tehty jos oli tarkoituskin. Oppia ikä kaikki ja jotkut ei opi ko
      Ikävä
      52
      1153
    Aihe