Mikä on oikea kaava?

Olen yrittänyt pähkäillä oikeaa kaavaa, mutta nyt nuo kaavat eivät vain tunnu onnistuvan. Voisiko joku nero auttaa.

A1 sarakkeeseen kirjoitetaan luku, ja sen pitäisi tulostua B1 sarakkeeseen. Tämä ei ollut vaikea, mutta kun siihen tuleekin poikkeuksia. Eli jos kirjoitan A1 sarakkeeseen 25, pitäisi, B1 tulostua 25 jne., mutta kun kirjoitan luvun 27, pitäisi nyt B1 sarakkeeseen tulostua 24 tai jos kirjoitan 35, pitäisi luku sarakkeeseen tulostua 30. Eli kaavassa ei ole mitään säännöllisyyttä. Kaikki muut luvut pitäisi tulostua sellaisenaan paitsi nämä muutama poikkeus on. Ja jottei tästä tulisi ihan helppo. Pitäisi vielä tuo B sarake pystyä laskemaan yhteen.

A1 kirjoitettava luku
B1 luku joka siirtyy A1:stä
E1 =27, F1 =24
E2 =35, F2 =30
E3 =66, F3 =60

Onkohan tehtävä mahdoton tai minulle se ainakin on.

Kiitän jo etukäteen, jos joku pystyisi auttamaan minua ongelmassa.
7494
Äänestä

Muut lukivat myös

Vastaukset 7

Vanhimmat

taulukon moduuliin...

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
Select Case Target
Case 27
Target = 24
Case 35
Target = 30
Case 66
Target = 60
'JNE..
Case Else
End Select
End If
End Sub

Äänestä
  • Kiitos kun yritit auttaa... Minun on vain todettava, että tunnen itseni entistä tyhmemmäksi.
    Nyt se on sitten jostain yritettävä kalastaa jokin aloittelijan opas tuohon VBA:han, kun sitä en hallitse ja en tiedä yhtään mistä puhutaan. Luultavasti löydän jostain tuolta VBA:sta paikan mihin tuon ohjelmapätkän sitten copy/Paste :) mutta sitä ennen se on minulle utopiaa. Kiitos on kuitenkin paikoillaan, kun viitsit yrittää vääntää minulle rautalankaa.

    Äänestä

  • Onnistuin selvittämään VBA:n käyttöä ja koodi hässäkkä toimii hyvin, mutta ei ihan niin kuin halusin.

    Eli tuo A1 sarakkeeseen kirjoitettava luku 27 pitäisi näkyä siinä A1 sarakkeessa eli sen pitää jäädä siihen, mutta luvun 24 pitää tulostua B1 sarakkeen jne. Entäs jos haluan saman kaavan seuraavalle riville eli A2 jne.

    Kiitos taas etukäteen.

    Äänestä

  • olinpas lukenut huolimattomasti kyssärin...
    kopioi oikealle
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1")) Is Nothing Then
    Select Case Target
    Case 27
    Target.Offset(0, 1) = 24
    Case 35
    Target.Offset(0, 1) = 30
    Case 66
    Target.Offset(0, 1) = 60
    'JNE..
    Case Else
    Target.Offset(0, 1) = Target
    End Select
    End If
    End Sub

    ja alaspäin...

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1")) Is Nothing Then
    Select Case Target
    Case 27
    Target.Offset(1, 0) = 24
    Case 35
    Target.Offset(1, 0) = 30
    Case 66
    Target.Offset(1, 0) = 60
    'JNE..
    Case Else
    Target.Offset(1, 0) = Target
    End Select
    End If
    End Sub

    Äänestä

  • kunde kirjoitti:

    olinpas lukenut huolimattomasti kyssärin...
    kopioi oikealle
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1")) Is Nothing Then
    Select Case Target
    Case 27
    Target.Offset(0, 1) = 24
    Case 35
    Target.Offset(0, 1) = 30
    Case 66
    Target.Offset(0, 1) = 60
    'JNE..
    Case Else
    Target.Offset(0, 1) = Target
    End Select
    End If
    End Sub

    ja alaspäin...

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1")) Is Nothing Then
    Select Case Target
    Case 27
    Target.Offset(1, 0) = 24
    Case 35
    Target.Offset(1, 0) = 30
    Case 66
    Target.Offset(1, 0) = 60
    'JNE..
    Case Else
    Target.Offset(1, 0) = Target
    End Select
    End If
    End Sub

    Kiitos ei ole koskaan pahitteeksi joten,
    Tuhannesti kiitoksia avustasi.
    Olet kyllä kultainen kun autat tällaisia tavallisia taatelintallaajia.

    Äänestä

Solussa B1 kaava
=OFFSET(G1;A1-1;0 )

Sarakkeessa G arvot 1, 2, ...maksimi (arvot saa vetämällä) ja rivillä 27 arvo 24 ja rivillä 35 arvo 30, jotka joutuu kirjoittamaan käsin.
Solun A1 arvo toimii siis hakuindeksinä.

Toimii, jos luvut ovat kokonaislukuja

Äänestä
  • Dollari jäi pois, jos sitä koko sarakkeelle käyttää, eikä vain ylimmälle riville. Suomeksi Offset on Siirtymä.
    =SIIRTYMÄ (G$1;A1-1;0 )

    Äänestä

Kommentoi aloitusta


Pähkäillyt kirjoitti:

Olen yrittänyt pähkäillä oikeaa kaavaa, mutta nyt nuo kaavat eivät vain tunnu onnistuvan. Voisiko joku nero auttaa.

A1 sarakkeeseen kirjoitetaan luku, ja sen pitäisi tulostua B1 sarakkeeseen. Tämä ei ollut vaikea, mutta kun siihen tuleekin poikkeuksia. Eli jos kirjoitan A1 sarakkeeseen 25, pitäisi, B1 tulostua 25 jne., mutta kun kirjoitan luvun 27, pitäisi nyt B1 sarakkeeseen tulostua 24 tai jos kirjoitan 35, pitäisi luku sarakkeeseen tulostua 30. Eli kaavassa ei ole mitään säännöllisyyttä. Kaikki muut luvut pitäisi tulostua sellaisenaan paitsi nämä muutama poikkeus on. Ja jottei tästä tulisi ihan helppo. Pitäisi vielä tuo B sarake pystyä laskemaan yhteen.

A1 kirjoitettava luku
B1 luku joka siirtyy A1:stä
E1 =27, F1 =24
E2 =35, F2 =30
E3 =66, F3 =60

Onkohan tehtävä mahdoton tai minulle se ainakin on.

Kiitän jo etukäteen, jos joku pystyisi auttamaan minua ongelmassa.

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