"Tiivistetty" luettelo

Sormi suussa...

Haasteeni on seuraava. Käytössäni on suomenkielinen Excel 2007 ja pitäisi kerätä toisesta taulusta toiseen luettelo ilman tyhjiä välejä, eli kerätä listaan vain ne rivit, jotka olen merkinnyt. Seuraava taulu selittänee asiaa. Eli merkkaan sarkkeeseen A rastin kun haluan B-sarakkeen sisällön olevan käytössä. Kaikki rastitetut kohdat pitäisi kerätä tässä tapauksessa sarakkeeseen C. Käytännössä haluan ne toiseen tauluun:

rivi A________B_________C
1   x   ekarivinteksti    ekarivinteksti
2      tokarivinteksti    kolkkarivinteksti
3   x   kolkkarivinteksti nelkkurivinteksti
4   x   nelkkurivinteksti kutosrivinteksti
5      vitosrivinteksti   
6   x   kutosrivinteksti   

Eli kysymys on: onnistuuko Excelillä ja millä funktiolla vai miten se tehdään?

18

1146

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • ihan Excelin omilla jutuillakin, jos mukana saa olla ne X:t. Jos et halua X:iä mukaan niin sitten pakko hoitaa koodilla. Mun postauksia löytyy aiheesta monia (kopioi/siirrä), kun hiukan hakua käyttää.
      No excelin omalla Advanced Filterillä onnistuu suoraan.
      Siitä toisesta taulukosta määrittelet hakuehtoalueen ja paikan mihin kopioidaan. Originellistä määrittelet suodatusalueen. Täppä Copy to Another location Action kohdassa ja OK
      Ei se ton kummosempi ole...

      • jo nyrkki suussa

        En tajua. Onnistuin kyllä suodattamaan paikalla niin, että ne rivit, joilla ei ole rastia, menivät piiloon - se ei ollut tarkoitus. Toiseen taulukkoon en saanut lajittelua menemään millään, vaikka maalasin alueita miten. Saanko lisää rautalankaa?


      • jo nyrkki suussa kirjoitti:

        En tajua. Onnistuin kyllä suodattamaan paikalla niin, että ne rivit, joilla ei ole rastia, menivät piiloon - se ei ollut tarkoitus. Toiseen taulukkoon en saanut lajittelua menemään millään, vaikka maalasin alueita miten. Saanko lisää rautalankaa?

        siis tiedot Sheet1:llä sarakkeissa A ja B. A sarakkeeseen merkitset X riville,jonka B sarakkeessa olevan tiedon haluat siirtää Sheet2:lle
        1. Lisää Sheet1 1 riville uusi rivi ja laita siihen otsikoiksi A1=Haku ja B1=Tieto
        2.Aktivoi Sheet2
        3. Kirjoita esim. soluihin E1= Haku, E2=X ja F1=Tieto
        4. Data/Filter/Advanced Filter lomakkeelle sitten seuraavat tiedot esim.
        Action kohdassa täppä Copy to another location
        List Range=Sheet1!$A$1:$B$100
        Criteria Range=$E$1:$F$2
        Copy to =$A$1

        siinä se.

        Muista, että suodatusta ei voi kopioida kuin aktiiviseeen taulukkoon, joten hakuehdot yms. on määriteltävä aktiivisessa taulukossa siis Sheet2, mutta itse hakutaulukko voi olla sitten missä tahansa taulukossa...

        ei ole tosta pahemmin mainintaa löytynyt ja vahingossahan se mullekin selvisi aikanaan kun koodissani oli bugi oikeassa paikassa :-)


    • ...

      =JOS(RIVI()-RIVI(mihin) 1>RIVIT(mista)-LASKE.TYHJÄT(mista);"";EPÄSUORA(OSOITE(PIENI((JOS(mista"";RIVI(mista);RIVI() RIVIT(mista)));RIVI()-RIVI(mihin) 1);SARAKE(mista) 1;4)))

      mista on määritelty A1:A6 ja mihin C1:C6

      • VÄHÄN pääsin

        eteenpäin, mutta jotain teen vielä väärin. Nyt saan tämän toimimaan niin, että kullakin rvillä on tuo neuvomasi kaava ja jos laitan täpän, niin seuraava sarake tulee haluttuun paikkaan, mutta
        1. tulee nolla jos täppää ei ole - pitäisi keksiä miten kyseinen rivi korvataan niin, että luetaan seuraavalta riviltä jolla on täppä
        2. kun siirrän tämän toiseen tauluun, kaava kyllä näyttää oikealta, mutta kaikille riveille tulee nolla.

        kaavani on nyt muotoa: =JOS(RIVI($K20:$K25)-RIVI(K20:K25) 1>RIVIT(H20:H25)-LASKE.TYHJÄT(H20:H25);"";EPÄSUORA(OSOITE(PIENI((JOS(H20:H25"";RIVI(H20:H25);RIVI() RIVIT(H20:H25)));RIVI($K20:$K25)-RIVI(K20:K25) 1);SARAKE(H20:H25) 1;4)))

        ja sen tulos on seuraava kun toimin sarakkeissa H-K

        H I J K
        x   eka      eka
            toka      0
        x   kolkka      kolkka
        x   nelkku      nelkku
            viikka      0
        x   kuukka      kuukka


        Että mikä tässä vielä mättää paitsi meikäläisen äly?

        Eli onko vielä joku kaava jolla voi kerätä siis peräkkäisille riveille vain ne K-sarakkeen (tai suoraan I-sarakkeen!) arvot, joiden kohdalla on H-sarakkeessa merkki? Eli jos nolla, lue seuraava...


      • ...
        VÄHÄN pääsin kirjoitti:

        eteenpäin, mutta jotain teen vielä väärin. Nyt saan tämän toimimaan niin, että kullakin rvillä on tuo neuvomasi kaava ja jos laitan täpän, niin seuraava sarake tulee haluttuun paikkaan, mutta
        1. tulee nolla jos täppää ei ole - pitäisi keksiä miten kyseinen rivi korvataan niin, että luetaan seuraavalta riviltä jolla on täppä
        2. kun siirrän tämän toiseen tauluun, kaava kyllä näyttää oikealta, mutta kaikille riveille tulee nolla.

        kaavani on nyt muotoa: =JOS(RIVI($K20:$K25)-RIVI(K20:K25) 1>RIVIT(H20:H25)-LASKE.TYHJÄT(H20:H25);"";EPÄSUORA(OSOITE(PIENI((JOS(H20:H25"";RIVI(H20:H25);RIVI() RIVIT(H20:H25)));RIVI($K20:$K25)-RIVI(K20:K25) 1);SARAKE(H20:H25) 1;4)))

        ja sen tulos on seuraava kun toimin sarakkeissa H-K

        H I J K
        x   eka      eka
            toka      0
        x   kolkka      kolkka
        x   nelkku      nelkku
            viikka      0
        x   kuukka      kuukka


        Että mikä tässä vielä mättää paitsi meikäläisen äly?

        Eli onko vielä joku kaava jolla voi kerätä siis peräkkäisille riveille vain ne K-sarakkeen (tai suoraan I-sarakkeen!) arvot, joiden kohdalla on H-sarakkeessa merkki? Eli jos nolla, lue seuraava...

        syötitkö taulukkokaavana (ctrl shift enter)


      • ...
        VÄHÄN pääsin kirjoitti:

        eteenpäin, mutta jotain teen vielä väärin. Nyt saan tämän toimimaan niin, että kullakin rvillä on tuo neuvomasi kaava ja jos laitan täpän, niin seuraava sarake tulee haluttuun paikkaan, mutta
        1. tulee nolla jos täppää ei ole - pitäisi keksiä miten kyseinen rivi korvataan niin, että luetaan seuraavalta riviltä jolla on täppä
        2. kun siirrän tämän toiseen tauluun, kaava kyllä näyttää oikealta, mutta kaikille riveille tulee nolla.

        kaavani on nyt muotoa: =JOS(RIVI($K20:$K25)-RIVI(K20:K25) 1>RIVIT(H20:H25)-LASKE.TYHJÄT(H20:H25);"";EPÄSUORA(OSOITE(PIENI((JOS(H20:H25"";RIVI(H20:H25);RIVI() RIVIT(H20:H25)));RIVI($K20:$K25)-RIVI(K20:K25) 1);SARAKE(H20:H25) 1;4)))

        ja sen tulos on seuraava kun toimin sarakkeissa H-K

        H I J K
        x   eka      eka
            toka      0
        x   kolkka      kolkka
        x   nelkku      nelkku
            viikka      0
        x   kuukka      kuukka


        Että mikä tässä vielä mättää paitsi meikäläisen äly?

        Eli onko vielä joku kaava jolla voi kerätä siis peräkkäisille riveille vain ne K-sarakkeen (tai suoraan I-sarakkeen!) arvot, joiden kohdalla on H-sarakkeessa merkki? Eli jos nolla, lue seuraava...

        Kaikki viittaukset täytyy olla absoluuttisia.


      • tai absoluuttinen
        VÄHÄN pääsin kirjoitti:

        eteenpäin, mutta jotain teen vielä väärin. Nyt saan tämän toimimaan niin, että kullakin rvillä on tuo neuvomasi kaava ja jos laitan täpän, niin seuraava sarake tulee haluttuun paikkaan, mutta
        1. tulee nolla jos täppää ei ole - pitäisi keksiä miten kyseinen rivi korvataan niin, että luetaan seuraavalta riviltä jolla on täppä
        2. kun siirrän tämän toiseen tauluun, kaava kyllä näyttää oikealta, mutta kaikille riveille tulee nolla.

        kaavani on nyt muotoa: =JOS(RIVI($K20:$K25)-RIVI(K20:K25) 1>RIVIT(H20:H25)-LASKE.TYHJÄT(H20:H25);"";EPÄSUORA(OSOITE(PIENI((JOS(H20:H25"";RIVI(H20:H25);RIVI() RIVIT(H20:H25)));RIVI($K20:$K25)-RIVI(K20:K25) 1);SARAKE(H20:H25) 1;4)))

        ja sen tulos on seuraava kun toimin sarakkeissa H-K

        H I J K
        x   eka      eka
            toka      0
        x   kolkka      kolkka
        x   nelkku      nelkku
            viikka      0
        x   kuukka      kuukka


        Että mikä tässä vielä mättää paitsi meikäläisen äly?

        Eli onko vielä joku kaava jolla voi kerätä siis peräkkäisille riveille vain ne K-sarakkeen (tai suoraan I-sarakkeen!) arvot, joiden kohdalla on H-sarakkeessa merkki? Eli jos nolla, lue seuraava...

        ...niin en onnistu. Toinen vastaaja kysyi teinkö ctrl-shift-enter - sehän on sama kuin transponointikaavassa, kokeilin mutta silloin tulee joka riville ensimmäinen arvo, jonka kohdalle olen laittanut täpän.

        jos taas teen absoluuttisen viittauksen (= $ merkki vai?), niin ei onnistu silloinkaan. Luettelo ei "tiivisty"

        Mahtaako tuo alkuperäisessä viestissäni oleva kysymys onnistuakaan muuten kuin tekemällä joku makro?


      • ...
        tai absoluuttinen kirjoitti:

        ...niin en onnistu. Toinen vastaaja kysyi teinkö ctrl-shift-enter - sehän on sama kuin transponointikaavassa, kokeilin mutta silloin tulee joka riville ensimmäinen arvo, jonka kohdalle olen laittanut täpän.

        jos taas teen absoluuttisen viittauksen (= $ merkki vai?), niin ei onnistu silloinkaan. Luettelo ei "tiivisty"

        Mahtaako tuo alkuperäisessä viestissäni oleva kysymys onnistuakaan muuten kuin tekemällä joku makro?

        kaavassa osa rivi-funktioista on ilman viittauksia.


      • joo!
        ... kirjoitti:

        kaavassa osa rivi-funktioista on ilman viittauksia.

        tämän jossain vaiheessa huomasin itsekin ja olen parina iltana väsyneenä yrittänyt tajuta mitä niihin tulisi. Tuolla aiemmin joku neuvoi sen mitä määritellään kohtii mista ja mihin, mutta tuo jäi selvittämättä enkä muistanut kysyä.

        Eli nyt rupesin tänään taas kokeilemaan ja ongelma on se mitä tuohon rivi() kohtaan pitäisi määritellä.

        Olen kokeillut siihen erilaisia rivi- jaja/tai aluemäärityksiä ja näyttäisi tosiaan tulevan "tiivistetty" luettelo, mutta ongelma on siis se, etten kokeilemallakaan hoksaa mikä alue pitäisi tuohon kohtaan laittaa! Tulee nimttäin "tiivistetyssä muodossa #LUKU? tms

        Kiitos jos vielä olette kärsivällisiä ja jaksatte neuvoa lisää!


      • ...
        joo! kirjoitti:

        tämän jossain vaiheessa huomasin itsekin ja olen parina iltana väsyneenä yrittänyt tajuta mitä niihin tulisi. Tuolla aiemmin joku neuvoi sen mitä määritellään kohtii mista ja mihin, mutta tuo jäi selvittämättä enkä muistanut kysyä.

        Eli nyt rupesin tänään taas kokeilemaan ja ongelma on se mitä tuohon rivi() kohtaan pitäisi määritellä.

        Olen kokeillut siihen erilaisia rivi- jaja/tai aluemäärityksiä ja näyttäisi tosiaan tulevan "tiivistetty" luettelo, mutta ongelma on siis se, etten kokeilemallakaan hoksaa mikä alue pitäisi tuohon kohtaan laittaa! Tulee nimttäin "tiivistetyssä muodossa #LUKU? tms

        Kiitos jos vielä olette kärsivällisiä ja jaksatte neuvoa lisää!

        pitäisi olla kolme rivi-funktiota, joissa ei ole viittauksia eli pelkkä RIVI().


      • kun on jo kolme
        ... kirjoitti:

        pitäisi olla kolme rivi-funktiota, joissa ei ole viittauksia eli pelkkä RIVI().

        kertaa tuo rivi() määritys, eikä toimi, eli joku tässä vielä mättää:

        =JOS(RIVI()-RIVI($D$1:$D$6) 1>RIVIT($A$1:$A$6)-LASKE.TYHJÄT($A$1:$A$6);"";EPÄSUORA(OSOITE(PIENI((JOS($A$1:$A$6"";RIVI($A$1:$A$6);RIVI() RIVIT($A$1:$A$6)));RIVI()-RIVI($D$1:$D$6) 1);SARAKE($A$1:$A$6) 1;4)))

        Tämä kaava tekee sen, että mihin tahansa kohtaan listaa pistän täpän, se ottaa ensimmäiselle riville koko määritellyn alueen *alapuolella* olevan rivin (luulin ensin sen tekevän tyhjää, mutta sitten keksin kirjoittaa tuolle riville "tätä ei enää pitäisi tulla mukaan").

        Kun pistän toisen täpän, se kirjoittaa toiselle riville #LUKU! Nämä kyllä menevät "tiivistetysti" niinkuin on tarkoitus, mutta ei siis poimi b-sarakkeessa olevia arvoja d:hen.

        Pitäiskö jostain kohtaa osata ottaa pois tuo 1, ettei se poimisi sitä alapuolella olevaa 7. riviä? Mutta tuskin siinäkään vielä kaikki?!


      • ...
        kun on jo kolme kirjoitti:

        kertaa tuo rivi() määritys, eikä toimi, eli joku tässä vielä mättää:

        =JOS(RIVI()-RIVI($D$1:$D$6) 1>RIVIT($A$1:$A$6)-LASKE.TYHJÄT($A$1:$A$6);"";EPÄSUORA(OSOITE(PIENI((JOS($A$1:$A$6"";RIVI($A$1:$A$6);RIVI() RIVIT($A$1:$A$6)));RIVI()-RIVI($D$1:$D$6) 1);SARAKE($A$1:$A$6) 1;4)))

        Tämä kaava tekee sen, että mihin tahansa kohtaan listaa pistän täpän, se ottaa ensimmäiselle riville koko määritellyn alueen *alapuolella* olevan rivin (luulin ensin sen tekevän tyhjää, mutta sitten keksin kirjoittaa tuolle riville "tätä ei enää pitäisi tulla mukaan").

        Kun pistän toisen täpän, se kirjoittaa toiselle riville #LUKU! Nämä kyllä menevät "tiivistetysti" niinkuin on tarkoitus, mutta ei siis poimi b-sarakkeessa olevia arvoja d:hen.

        Pitäiskö jostain kohtaa osata ottaa pois tuo 1, ettei se poimisi sitä alapuolella olevaa 7. riviä? Mutta tuskin siinäkään vielä kaikki?!

        Sain toistettua tuon virheen eli tavallisena kaavana vastaus tosiaan tulee alueen alapuolelta, mutta taulukkokaavana toimii.


      • minulle kävi
        ... kirjoitti:

        Sain toistettua tuon virheen eli tavallisena kaavana vastaus tosiaan tulee alueen alapuolelta, mutta taulukkokaavana toimii.

        näin:

           eka      toka
        x   toka      #PUUTTUU!
           kolkka      #PUUTTUU!
        x   nelkku      #PUUTTUU!
           viikka      #PUUTTUU!
           kuukka      toka


    • mikset teet niinkuin neuvoin...
      voinhan koodia laittaaa niin ei tartte tuskailla...

      • nyt vaan

        osaa! Vaikka mitä teen niin pieleen näyttää menevän :(
        Kaava näyttää nyt tuommoiselta:
        =JOS(RIVI()-RIVI($D$1:$D$6) 1>RIVIT($A$1:$A$6)-LASKE.TYHJÄT($A$1:$A$6);"";EPÄSUORA(OSOITE(PIENI((JOS($A$1:$A$6"";RIVI($A$1:$A$6);RIVI() RIVIT($A$1:$A$6)));RIVI()-RIVI($D$1:$D$6) 1);SARAKE($A$1:$A$6) 1;4)))

        Osaan kyllä pistää sen soluun (no siellähän se jo on solussa D1 eli jostain syystä olen jättänyt c-sarakkeen tyhjäksi, kai saa olla?) ja sitten maalata sen alueen eli D1:D6, painaa F2 ja sitten yhtä aikaa ctrl-shift-enter ja kaava tulee alueelle d1:d6 ja siihen ilmestyy aaltosulut, ja tulos on tämä:

           eka      toka
        x   toka      #PUUTTUU!
           kolkka      #PUUTTUU!
        x   nelkku      #PUUTTUU!
           viikka      #PUUTTUU!
           kuukka      toka

        Ja jos en laita sitä taulukkokaavana tulos on tämä:
           eka      Tämä rivi tulee alueen ulkopuolelta!         
        x   toka      #LUKU!         
        x   kolkka      #LUKU!         
           nelkku               
           viikka               
        x   kuukka        

        Että MIKÄ on vikana huh, huh sanon ma, ei enää naurata :(


      • ...
        nyt vaan kirjoitti:

        osaa! Vaikka mitä teen niin pieleen näyttää menevän :(
        Kaava näyttää nyt tuommoiselta:
        =JOS(RIVI()-RIVI($D$1:$D$6) 1>RIVIT($A$1:$A$6)-LASKE.TYHJÄT($A$1:$A$6);"";EPÄSUORA(OSOITE(PIENI((JOS($A$1:$A$6"";RIVI($A$1:$A$6);RIVI() RIVIT($A$1:$A$6)));RIVI()-RIVI($D$1:$D$6) 1);SARAKE($A$1:$A$6) 1;4)))

        Osaan kyllä pistää sen soluun (no siellähän se jo on solussa D1 eli jostain syystä olen jättänyt c-sarakkeen tyhjäksi, kai saa olla?) ja sitten maalata sen alueen eli D1:D6, painaa F2 ja sitten yhtä aikaa ctrl-shift-enter ja kaava tulee alueelle d1:d6 ja siihen ilmestyy aaltosulut, ja tulos on tämä:

           eka      toka
        x   toka      #PUUTTUU!
           kolkka      #PUUTTUU!
        x   nelkku      #PUUTTUU!
           viikka      #PUUTTUU!
           kuukka      toka

        Ja jos en laita sitä taulukkokaavana tulos on tämä:
           eka      Tämä rivi tulee alueen ulkopuolelta!         
        x   toka      #LUKU!         
        x   kolkka      #LUKU!         
           nelkku               
           viikka               
        x   kuukka        

        Että MIKÄ on vikana huh, huh sanon ma, ei enää naurata :(

        tein kuten sinäkin ja tulos oli sama #PUUTTUU! ym.

        Ensin D1:een taulukkokaava ja sitten venytä aluetta oikeasta alakulmasta D6:een (hiiren kohdistin muuttuu :ksi).


      • Kiitokset!!!
        ... kirjoitti:

        tein kuten sinäkin ja tulos oli sama #PUUTTUU! ym.

        Ensin D1:een taulukkokaava ja sitten venytä aluetta oikeasta alakulmasta D6:een (hiiren kohdistin muuttuu :ksi).

        JOPAS toimii :=)

        Oikein paljon kiitoksia avusta ja kiitos myös kärsivällisyydestä!

        Kaunista kevättä!


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

    Luetuimmat keskustelut

    1. Mikä on kaivattusi etunimi?

      Otsikossa siis on kysymys eriteltynä. Vain oikeat vastaukset hyväksytään.
      Ikävä
      130
      2485
    2. En kestä katsoa

      Sitä miten sinusta on muut kiinnostuneita. Olen kateellinen. Siksi pitäisi lähteä pois
      Ikävä
      109
      1484
    3. Anna minulle anteeksi

      Anna minulle anteeksi. Minä pyydän.
      Ikävä
      137
      1317
    4. Peräti 95 % persujen kannattajista rasisteja

      Kertoo EVA:n teettämä kysely. Pakollista yhdenvertaisuuskoulutusta tarvitsee siis paljon laajempi joukko kuin pelkästää
      Maailman menoa
      349
      1246
    5. Kun viimeksi kohtasitte/näitte

      Mitä olitte tekemässä? Millainen ympäristö oli? Löydetään toisemme...
      Ikävä
      109
      1167
    6. Olet kyllä vaarallisen himokas

      Luova, kaunis, määrätietoinen, pervo, mielenkiintoinen, kovanaama, naisellinen ja erikoinen.
      Ikävä
      99
      1055
    7. On minulla suunitelma

      Siitä ei vain tiedä kukaan muu kuin tällä hetkellä minä. Suunnitelma ja varasuunnitelma. Sinun takiasi nainen. Vain s
      Ikävä
      46
      769
    8. Anna vielä vähän vihreää valoa

      Teen sitten siirtoni, nainen. Tiedän, että olet jo varovaisesti yrittänyt lähestyä, mutta siitä on jo aikaa. Jos tunnet
      Ikävä
      13
      751
    9. Ei koskaan saatu tuntea

      Mitä olisi ollut painautua toisiimme vasten. Hengittää syvään, hyväillä ja rakastella vailla kiirettä. Tai repiä vaattee
      Ikävä
      33
      730
    10. Palstan ylivoimaisesti suosituin keskustelunaihe

      Palstan suosituin keskustelunaihe näyttää olevan homoseksuaalisuus. Otsikoiden perusteella voisi kuvitella olevansa Seks
      Luterilaisuus
      252
      729
    Aihe