Elikkä kysymys koskee kahden eri mittaisen taulukon liittämisestä. Toisessa talulukossa on kolme riviä ja 2 saraketta (;=solujen väli) esim:
1;2
2;34
3;44
Toisessa taas kaksi riviä ja saraketta esim:
1;33
3;23
Miten saan nuo liitettyä niin että lopputulos on "automaattisesti" seuraavanlainen:
1;2;1;33
2;34;;
3;44;3;23
Elikkä niin että jälkimmäisestä taulukosta rivit menevät oikeille paikoilleen ekaan taulukkoon. Elikkä taulukkojen 1. sarakkeiden numerot "löytävät toisensa".
Yllä hyvin yksinkertaistettu taulukko, mutta jos rivejä on tuhansia on manuaalinen liittäminen hankalaa.
Varmaan ihan simppeli homma mutta vasta-alkajana en keksi miten moinen toteutetaan.
Kiitos!
1;2
2;34
3;44
Toisessa taas kaksi riviä ja saraketta esim:
1;33
3;23
Miten saan nuo liitettyä niin että lopputulos on "automaattisesti" seuraavanlainen:
1;2;1;33
2;34;;
3;44;3;23
Elikkä niin että jälkimmäisestä taulukosta rivit menevät oikeille paikoilleen ekaan taulukkoon. Elikkä taulukkojen 1. sarakkeiden numerot "löytävät toisensa".
Yllä hyvin yksinkertaistettu taulukko, mutta jos rivejä on tuhansia on manuaalinen liittäminen hankalaa.
Varmaan ihan simppeli homma mutta vasta-alkajana en keksi miten moinen toteutetaan.
Kiitos!
Vastaukset 5
Vanhimmat
Jos tekstitiedostojen kanssa pelaat, Linuxissa/Unixissa tuo menisi seuraavalla komennolla:
$ join f1.txt f2.txt -t ';' -a 1
1;2;33
2;34
3;44;23
jos yhdistettävät tiedot ovat tiedostoissa f1.txt ja f2.txt. Erotinmerkki asetetaan -t:llä. Muuten tehdään tavallinen join, mutta -a-parametrilla vastaamattomat rivit otetaan ensimmäisestä tiedostosta.
Kiitos vastauksesta!
Elikkä käyttis on XP ja tiedosto on excel/Open office taulukko. Siis Open Office taulukkolaskennassa näitä yritin yhdistellä. Tosin nuo tiedostot on kyllä myös tekstitiedostoina joten voi ne liittää ennen taulukkona avaamistakin. Ajattelin jos ne saisi avattua samaan Open office taulukkoon (siis ensin toinen auki ja lisätään tähän toinen copy pastella) ja taulukkolaskenta osaisi jollain komennolla järjestää rivit oikein.
Kiitos!
Ok, luulin että tiedot olivat tekstitiedostossa, kun esitit ne tuolla puolipistemerkinnällä.
No se mitä ylläoleva teki oli kahden tietokantataulun join-operaation. En tiedä saako moista tehtyä Calcissa helposti, taitaa Basella olla helpointa.
Koska haluat myös toisen taulun rivin vaikka vastinetta ei löytyisikään toisesta, olisi kyseessä "FULL OUTER JOIN"-kysely. OpenOffice ei käsittääkseni tue tätä kyselyä kevyessä XML-pohjaisessa tietokantamuodossa (joillain muilla muodoilla se toimii), mutta jos toispuoleinen ratkaisu riittää niin LEFT OUTER JOIN ja RIGHT OUTER JOIN toimivat.
Eli tehdään kaksi taulua Taulu1 ja Taulu2, joissa on "id" pääavaimena. Tehdään seuraavanlainen SQL-kysely:
SELECT * FROM { OJ "Taulu1" LEFT OUTER JOIN "Taulu2" ON "Taulu1"."id" = "Taulu2"."id" }
tai hieman siistimmin:
SELECT "Taulu1"."id", "Taulu1"."arvo", "Taulu2"."arvo" FROM { OJ "Taulu1" LEFT OUTER JOIN "Taulu2" ON "Taulu1"."id" = "Taulu2"."id" }
Kiitos vastauksesta. En tosin tiedä edes mikä base on joten pitää keksiä toinen keino. Eiköhän se tuosta lutviinnu.
OpenOfficen tietokantaohjelma. Mutta jos et tiedä mikä se on, voi tuon tekeminen sillä olla turhan työlästä, vaikkakin ehkä opettavaista.
Calcilla tuon saa tehtyä käyttämällä Calcin VLOOKUP-funktiota hakemaan tiedon kakkostaulukosta ykköstaulukon tunnistenumeron perusteella. Tällä saa haettua vastineet vain toisen taulukon perusteella, eli jos haluaa molempiin suuntiin, pitää tehdä sama juttu molemmille taulukoille. Sitten kopioidaan tulokset peräkkäin, järjestetään ja suodatetaan duplikaatit pois. Tässä on jonkin verran käsityötä, mutta onnistuu kyllä.