Numeroita sisältävien solujen siirtäminen omaan sarakkeeseensa

Saako excelissä siirrettyä numeroita sisältävät solut omaan sarakkeeseensa jollain konstilla? Eli esim. jos solussa A1 on abcd, A2 1234, A3 efgh, A4 5678, niin abcd ja efgh jäisi sarakkeeseen A, mutta 1234 ja 5678 pitäisi siirtää sarakkeeseen B, jolloin sarake A jäisi tyhjäksi. Myös numeroita sisältävät solut ovat tekstimuodossa. Rivejä on satoja.
9826
Äänestä

Muut lukivat myös

Vastaukset 9

Vanhimmat

Ja lisäkysymys. Saako tekstin eroteltua omaan sarakkeeseen ja numerot omaansa, jos solussa on useampi sana? Esim. solussa A1 on tekstimuodossa abcd efgh 1234, niin abcd efgh pitäisi siirtää soluun B1 ja 1234 soluun C1. Teksti ja numerosarjat ovat eri pituisia.

Äänestä
  • Näillä funktioilla saat tekstit ja numerot erilleen

    Function tekstit(s As String)
    If s = "" Then
    tekstit = ""
    Exit Function
    End If
    tx = Split(s, " ")
    On Error GoTo eiluku:
    For i = 0 To UBound(tx)
    dummy = CDbl(tx(i))
    Next i
    If t = "" Then
    tekstit = ""
    Else
    tekstit = Left(t, Len(t) - 1)
    End If
    Exit Function
    eiluku:
    t = t & tx(i) & " "
    Resume Next
    End Function

    Function numerot(s As String)
    If s = "" Then
    numerot = ""
    Exit Function
    End If
    tx = Split(s, " ")
    On Error Resume Next
    For i = 0 To UBound(tx)
    t = t & CDbl(tx(i)) & " "
    Next i
    If t = "" Then
    numerot = ""
    Else
    numerot = Left(t, Len(t) - 1)
    End If
    End Function

    Äänestä

  • Anonyymi00004 kirjoitti:

    Näillä funktioilla saat tekstit ja numerot erilleen

    Function tekstit(s As String)
    If s = "" Then
    tekstit = ""
    Exit Function
    End If
    tx = Split(s, " ")
    On Error GoTo eiluku:
    For i = 0 To UBound(tx)
    dummy = CDbl(tx(i))
    Next i
    If t = "" Then
    tekstit = ""
    Else
    tekstit = Left(t, Len(t) - 1)
    End If
    Exit Function
    eiluku:
    t = t & tx(i) & " "
    Resume Next
    End Function

    Function numerot(s As String)
    If s = "" Then
    numerot = ""
    Exit Function
    End If
    tx = Split(s, " ")
    On Error Resume Next
    For i = 0 To UBound(tx)
    t = t & CDbl(tx(i)) & " "
    Next i
    If t = "" Then
    numerot = ""
    Else
    numerot = Left(t, Len(t) - 1)
    End If
    End Function

    Kiitos ohjeesta ja vaivannäöstä! Ei vaan taida omat taitoni riittää näiden käyttämiseen. Onko nämä VBA:n puolella käytettäviä funktioita?

    Äänestä

  • Anonyymi00006 kirjoitti:

    Kiitos ohjeesta ja vaivannäöstä! Ei vaan taida omat taitoni riittää näiden käyttämiseen. Onko nämä VBA:n puolella käytettäviä funktioita?

    Paina Alt+F11 –> aukeaa VBA-editori
    Sieltä ylhäältä valitset Insert - Module –> Ilmestyy ikkuna Module1
    Kopioi nuo funktiot sinne, minkä jälkeen niitä voi käyttää kuten muitakin Excelin funktioita.
    Makroja sisältävä Excel-tiedosto on talletettava muodossa *.xlsm

    Äänestä

Funktio ISNUMBER tunnistaa, onko solussa numero vai jotain muuta.

=IF(ISNUMBER(A1;A1;"") - tulostaa A1 arvon, jos se on numero
=IF(ISNUMBER(A1;"";A1) - tulostaa A1 arvon, jos se ei ole numero

Äänestä
  • Kiitos! Mutta jostain syystä excel ilmottaa, että kaavassa on virhe. En tiedä, mitä teen väärin... Jollain excelistä löytyneellä funktiolla sain eriteltyä numeroita ja tekstiä sisältävät solut: TOSI tai EPÄTOSI, mutta itse teksti tai numerosarja ei tulostu soluun.

    Äänestä

  • Anonyymi00005 kirjoitti:

    Kiitos! Mutta jostain syystä excel ilmottaa, että kaavassa on virhe. En tiedä, mitä teen väärin... Jollain excelistä löytyneellä funktiolla sain eriteltyä numeroita ja tekstiä sisältävät solut: TOSI tai EPÄTOSI, mutta itse teksti tai numerosarja ei tulostu soluun.

    Sinulla on suomennettu Excel
    https://fi.excelfunctions.eu

    Äänestä

Mauaalisesti helppo tapa on seuraava, ei ihan mitä haluat
Valitset sarakkeen A
Data valinnasta Text to Colum ja vastaat kysymksiin.

Äänestä

jos tekstit A-sarakkeessa
B1 soluun matriisikaava SHIFT+CTRL+ENTER (tekstit)
={TEXTJOIN("";TRUE;IF(ISERROR(MID(A1;ROW(INDIRECT("1:"&LEN(A1)));1)*1);MID(A1;ROW(INDIRECT("1:"&LEN(A1)));1);""))}

C1 soluun matriisikaava SHIFT+CTRL+ENTER (numerot)
={TEXTJOIN("";TRUE;IFERROR((MID(A1;ROW(INDIRECT("1:"&LEN(A1)));1)*1);""))}

Keep EXCELing
@Kunde

Äänestä

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

Kommentoi aloitusta


Anonyymi-ap kirjoitti:

Saako excelissä siirrettyä numeroita sisältävät solut omaan sarakkeeseensa jollain konstilla? Eli esim. jos solussa A1 on abcd, A2 1234, A3 efgh, A4 5678, niin abcd ja efgh jäisi sarakkeeseen A, mutta 1234 ja 5678 pitäisi siirtää sarakkeeseen B, jolloin sarake A jäisi tyhjäksi. Myös numeroita sisältävät solut ovat tekstimuodossa. Rivejä on satoja.

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