"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

1178

    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. Paljonko aikaa on kulunut siitä kun viimeksi tapasit hänet?

      Päiviä? Viikkoja? Kuukausia? Vuosia?
      Ikävä
      48
      2110
    2. Se oli siinä sitten

      Yhdysvaltain presidentti Donald Trump on määrännyt kaiken maan Ukrainalle toimittaman sotilaallisen tuen tauolle, kertoo
      NATO
      690
      2090
    3. Mikä sinua ja kaivattuasi

      Yhdistää?
      Ikävä
      120
      1983
    4. Tiedätkö, että haluaisin panna

      Sinua. Onko sinulla samanlaiset ajatukset ja tunteet?
      Ikävä
      77
      1689
    5. Ajelen varmaan siellä suunnalla

      taas yöllä, vahingossa käyn sun pihalla. 😏 m
      Ikävä
      48
      1678
    6. Trump tekee rauhan Amerikan ja Venäjän ehdoilla

      Ukraina luovuttaa Venäjän haluamat alueet Venäjälle. Ukraina luovuttaa Amerikan haluamat arvokkaat mineraalit Amerikall
      Maailman menoa
      239
      1555
    7. Hyväksytty kaivattusi

      Vartaloa vai et? Rehellinen vastaus
      Ikävä
      31
      1321
    8. Syvälliset keskustelut

      Olisivat tärkeintä ensisijaisesti hänen kanssaan Tulisi sellainen hetki, mutta kaikki meni pieleen
      Ikävä
      20
      1269
    9. Olisipa sitä henkisesti eheämpi ja rohkeampi

      mikään maallinen mammona ei itseäni kiinnosta, eikä sen menetys kiinnostus. Mutta kun kohtaa jonkun sykäyttävän ihmisen,
      Ikävä
      17
      1155
    10. Kyllähän tämä vähän kirpaisee

      Mutta oman sisäisen rauhan vuoksi jätän sinut nyt historiaan. Todennäköisesti olet jo sinäkin mennyt eteenpäin. Olipah
      Ikävä
      38
      1097
    Aihe