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

788

    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. Persujen vaalilupaus oli euron bensa

      Nyt puhutaan jo kolmen euron bensasta. Kyseessä on Suomen historian törkein vaalipetos.
      Maailman menoa
      93
      2168
    2. Vain vasemmistohallitus saa minut menemään töihin

      Änkyräkapitalistien sortaessa kansaa en laita rikkaakaan ristiin. Elän mielummin Kelan tuilla, ja jos niitä leikataan, n
      Maailman menoa
      45
      2122
    3. Maataloustuet perittävä korkojen kera takaisin

      Yrittäjiltä jotka ovat myyneet tuotantoaan ulkomaille. Veronmaksajan kustantama tuki on tarkoitettu elintarvikkeiden hi
      Maataloustuki
      50
      1855
    4. Topi osti Askon

      Hieno mies. Pelastaa työpaikkoja. Kiitokset myös emännälleen, joka pitää isännän virkeänä. https://www.is.fi/taloussan
      Maailman menoa
      75
      1370
    5. Mitä kirjainta kaipaat?

      Pitkästä aikaa tämmöistä. Onko kirjain muuttunut edellisestä. ☺️
      Ikävä
      86
      1271
    6. Kastaa ja upottaa on eri sanat

      Kastaa ja upottaa on eri sanat ja niillä on eri merkitys. Eikä Jeesusta haudattu upottamalla maahan kaivettuun kuoppaan
      Kaste
      219
      1151
    7. Uskomatonta touhua!

      Ei olis uskonut että kateus yrittäjää kohtaan menee noin pitkälle. TTP:ssa irrotettu sähköjohto jäätelöaltaasta. Kaikki
      Haapavesi
      31
      1100
    8. Oliko se oikeasti epäselvää

      sinulle että olin ihastunut sinuun? (Ymmärrän että siitä on aikaa, eikä voi olettaa että kaikkea muistaisi tai että men
      Ikävä
      57
      1043
    9. Miten hän sinua katsoi?

      😊😊😊😊😊😊
      Ikävä
      68
      959
    10. Miksi eduskuntatalon portaille sytyttään tänään 8 645 kynttilää?

      Oikeus elämään ry järjestää lauantaina 21.3.2026 tapahtuman, jossa Eduskuntatalon portaille sytytetään 8 645 kynttilää.
      Luterilaisuus
      285
      910
    Aihe