måndag 14 september 2015

Guide: Slå samman tabeller. Merge/Join Excel-tabell med hjälp av LibreOffice Databas (Base)

Kort om innehållet i denna artikel

Har du någon gång behövt slå ihop data från två olika Excel-ark i ett ark? T ex om du har två listor med information från samma kunder. Listorna är kanske inte sorterade, och innehåller olika typer av information som kompletterar varandra. Dock har du minst en kolumn med information som gör att du kan identifiera vilken information som tillhör vilken kund. Du vill slå ihop all denna information så att du har informationen samlade i ett Excel-ark och kan bearbeta de.
Det hade varit underbart om Excel erbjöd ett enkelt sätt att utföra detta på, men det finns det inte vad jag vet. Kanske fungerar denna add-in till Excel, DigDB (jag har dock inte testat i skrivande stund).

Jag är något förvånad över att en sådan funktion inte finns i Microsoft Excel, så jag har fått lösa det med hjälp av LibreOffice Databas (Base) och LibreOffice Kalkylblad (Calc).
Det finns antagligen liknande möjligheter i Microsoft Office Access/Excel, men jag föredrar att arbeta med program som bygger på öppen källkod.

En varning

Denna guide är ett utkast för egen användning. Jag kan alltså inte garantera att guiden är fullständig och än mindre att den är pedagogiskt riktig. ;)
Och för er språknördar, jag blandar "jag", "du" och "vi" hejvilt!

Anledningen till att jag lägger upp den är för att att jag själv med jämna mellanrum har behov att slå samman tabeller från Microsoft Excel/LibreOffice Kalkylblad (Calc). Denna snabbguide hjälper mig att snabbare komma in i funktionerna igen.

Jag kommer, som sagt, att använda mig av LibreOffice Databas (Base) och LibreOffice Kakylblad (Calc). När datan är sparad med hjälp av LibreOffice Kalkylblad (Calc) kan tabellen öppnas i Mcrosoft Office Excel.

LibreOffice är ett gratis "Office"-paket, liknande Microsoft Office, som kan hämtas här:  LibreOffice.

Hur du använder LibreOffice Databas (Base) för att slå ihop (join/merge) två Excel-ark 

Då Excel inte tycks ha någon bra funktion för att slå ihop två olika Excel-ark använder jag mig av LibreOffice Base för att slå samman information från två olika ark till ett Excel-ark. (Ibland använder jag även ArcMap och QGIS för att fixa det).

1. Två Excel-ark
Det börjar med att du har två Excel-ark med olika information. Någon av kolumnerna måste dock innehålla någon typ av information som gör det möjligt att avgöra vilken information som tillhör vilken kund.
I detta exempel har vi kolumnen ID.

Excel-ark 1: Utan skostorlek. Kunden har samma ID.

Excel-ark 2: Med skostorlek. Kunden har samma ID.
2. Öppna LibreOffice Databas (Base)
2. Öppna LibreOffice Base.
3. Skapa en ny databas
3a. Skapa en ny databas. Klicka på Nästa.

3b. Skapa en ny databas. Klicka på Slutför.
4. Skapa en tabell i LibreOffice Databas (Base)
Vi kommer att skapa två tabeller i LibreOffice Base. I den ena tabellen kommer vi att kopiera in datan från det ena Excel-arket, och i den andra tabellen kommer vi att kopiera in datan från det andra Excel-arket.

Skapa en tabell i LibreOffice Databas genom att klicka på "Tabeller" och sedan "Skapa en tabell med hjälp av guiden..."

Skapa en tabell i LibreOffice Databas.




5. Följ Tabellguidens olika steg
Tabellguiden hjälper dig att skapa olika kolumner i LibreOffice Databas.

5a. Börja med att välja bland de föreslagna kolumnerna i fältet "Tillgängliga fält". De fält du väljer bör vara samma som du har i ditt Excel-ark. Hittar du inga fält som passar kan man ändra dessa i efterhand (t ex fälten kund-ID, skonummer, ort etc).
Klicka på "Nästa".

5a. Välj passande fält för din tabell.

5b. I nästa steg kan du döpa om fälten, samt ändra vilken typ av variabler som fälten ska fyllas med.
Ändra namn så att de stämmer överens med namnen på de fält du har i ditt ena Excel-ark.
Klicka på "Nästa".

5B. Döp om fälten.
5c. Ingen primärnyckel
I detta fall behöver vi ingen primärnyckel. Ta bort krysset i rutan "Skapa primärnyckel".
Klicka på "Nästa".
5c. Ingen primärnyckel behövs. Klicka på "Nästa".
5d. Ge tabellen ett namn.
Ge kolumnen ett namn som gör det lätt att känna igen vilken tabell det är. T ex namnet "Utan skostorlek".
Klicka på "Färdigställ".
5d. Ge tabellen ett namn.
Du har nu skapat en tom tabell i LibreOffice Databas.
6. Klistra in datan från Excel i LibreOffice Databas.
Den tomma tabellen som vi nyss skapade ska vi nu fylla med datan från Excel. Gå till ditt första Excel-ark och markera all data.
Kopiera datan.
6. Kopiera din data från Excel-ark 1.

7a. Klistra in datan i tabellen i LibreOffice Databas (Bas)
Gå tillbaka till LibreOffice Dtabas. Högerklicka på din nyligen skapade databas och klicka på "Klistra in".








7a. Klistra in informationen i databasen.

7b. Välj "Lägg till data".
Dialogruta "Kopiera tabell" öppnas. Välj "Lägg till data".
Klicka på "Nästa".
7b. Välj "Lägg till data". Klicka på "Nästa".
7c. Dialogrutan "Tilldela kolumner".
Nu kommer vi till dialogrutan "Tilldela kolumner". Se till att samtliga kolumner finns med, både från ditt Excel-ark och i den tabell du skapat i LibreOffice Databas. Se även till att de ligger i rätt ordning, så att din data hamnar i rätt kolumn när den förs över till tabellen i LibreOffice Databas (blir det fel går det givetvis att ändra i efterhand).
Klicka på "Färdigställ".
7c. Kontrollera att samtliga kolumner kommer med i överföringen mellan ditt Excel-ark och tabellen i LibreOffice Databas. Klicka på "Färdigställ".
Du har nu en tabell med information i LibreOffice Databas.
8. Skapa en tabell till i LibreOffice Databas (Base) och fyll den med information från ditt andra Excel-ark
Nu ska vi skapa en databas till i LibreOffice Databas som ska fyllas med inforamtionen från Excel-ark 2. Detta moment utför du precis som när du skapade din första tabell och fyllde den med information från Excel-ark 1.

Din andra tabell skapar du genom att följa steg 4 - 7c. Ge dock tabellen något annat namn, och klistra in informationen från ditt andra Excel-ark.
När du ä klar med detta går du till steg 10.

10. Merge/Join, sammanfoga de två tabellerna till en tabell.

Nu har vi två tabeller (eller fler om det behövs) i LibreOffice Databas, som innehåller samma information som våra Excel-ark.
Det har därför blivit dags att sammanfoga dessa tabeller till en tabell.

Detta gör du genom att välja "Frågor" och "Skapa fråga i designvy".
10. Välj "Skapa fråga i designvy".
11. Lägg till tabellerna
Dialogrutan "Lägg till tabell eller fråga" öppnas. Här väljer du de tabeller du skapat, och klickar på "Lägg till".
11. "Lägg till" de två tabellerna.
12. Koppla ihop tabellerna
Du kopplar ihop de tv tabellerna genom att klicka på ID i den ena rutan (i det här fallet, då ID är vår unika kolumn som kopplar ihop kundens olika data), hålla inne musknappen och dra den till ID i den andre rutan.
När du kopplat ihop tabellerna syns ett streck mellan de två rutorna.

12. När du kopllat ID i den ena tabellen med ID i den andre tabellen syns ett streck mellan de två rutorna.
13. Välj hur datan i de två tabellerna ska sammanföras.
Nu ska vi välja hur datan i de två tabellerna ska sammanföras, för att sedan skapa en gemensam tabell.
Detta gör vi genom att högerklicka på strecket mellan de två rutorna och välja "Redigera".

13. Högerklicka på strecket och välj "Redigera".
14. Välj hur datan ska slås samman
Dialogrutan "Egenskaper för sammanslagning (join)" öppnas.
Här väljer du hur du ska slå ihop de två tabellerna. Detta väljer du i menyn "Typ".
Längst ner i dialogrutan står en förklaring om vad de olika alternativen innebär. Beroende på hur din data ser ut och hur den ska slås ihop får du välja vilken typ. Här skulle jag säga att testa sig fram ibland beroende på behov.
Förenklat kan man använda sig av alternativet "Inre sammanslagning", då slås enbart de fält där alla har ett samma ID ihop (har du dock en längre lista i den ena tabellen med fler ID än i den andra så krävs det att du väljer ett annat alternativ om du vill få med all data).

Välj "Inre sammanslagning".
Klicka på "OK".

14. Välj hur datan ska slås samman.
15. Välj vilka fält som ska finnas med i den nya tabellen
Nu ska vi välja vilka fält som ska finnas med i den nya tabellen.
Detta gör vi genom att dubbelklicka eller dra de fält som finns i de två rutorna, ner till den nedre tabellen.

15. Dubbelklicka på de variabler du vill ska finnas med i den nya tabellen.
16. Klicka på "Utför fråga".
Klicka på ikonen "Utför fråga".
Den sammanslagna tabellen skapas nu.
16. Klicka på "Utför fråga".
17. Spara den nya tabellen
Spara den nya tabellen genom att klicka på Arkiv -> Spara som.
Dialogrutan "Spara som" öppnas.
Ge den nya tabellen ett namn.
Klicka på OK.
17. Spara som.
Du hittar nu den ny tabellen under "Frågor" i LibreOffice Databas (Base).

Den ny tabellen med den sammanställda datan hittar du i LibreOffice Databas, under "Frågor".

18. Spara databasen.
Spara databasen.
Spara databasen.

Öppna den ny tabellen i LibreOffice Kalkylblad (Calc) .

För att öppna den nya tabellen måste databasen som vi precis sparat även registrerad för att LibreOffice Kalkylblad (Calc) ska kunna hämta information från den. För att registrera databasen gör du på följande sätt.
Om du redan registrerade databasen när skapade den, kan du hoppa över detta steg.

19. Öppna LibreOffice Kalkylblad (Calc)
19. Nu arbetar vi i LibreOffice Kalkylblad (Calc).
20. Registrera databas i Libre Office Kalkylblad (Calc)
Klicka på Visa -> Datakällor
 
20. Klicka på "Visa" -> "Datakällor"
21. Öppna Registrerade databaser
I rutan som öppnas högerklickar du, och väljer "Registrerade databaser".
21. Högerklicka och välj "Registrerade databaser".
22. Lägg till registrerar ny databas.
Dialogrutan "Registrerade databaser" öppnas.
I detta steg registrerar vi den databas som vi tidigare skapat.
Klicka på "Nytt..."

22. Klicka på "Nytt..." i dialogrutan "Registrerade databaser".
23. Skapa databaslänk
Dialogrutan "Skapa databaslänk" öppnas.
Klicka på "...".
23. Klicka på "...".
24. Registrera databas
Leta upp den databas som du tidigare skapat och sparat.
Välj din databas.
Klicka på "Öppnas".
24. Öppna din databas i LibreOffice Kalkylblad (Calc).
25. Ge databasen ett unikt namn
Skriv in ett namn för databasen i rutan "Registrerat namn".
Klicka på "OK".
25. Namnge din databas.Klicka på "OK".
26. Öppna den registrerade databasen och den nya tabellen i LibreOffice Kalykblad (Calc)
När databasen är registrerad kan har du tillgång till databasen i LibreOffice Kalkylblad (Calc).

För att öppna den sammanslagna tabellen som vi tidigare skapat. Klickar du på databasen i vänster ruta. Välj databasen -> Frågor -> Tabellen vi skapade (i detta fall kallas den "Sammanslagning").
Tabellen öppnas nu i höger ruta.
26. Öppna den tabell som vi tidigare skapat i databasen.
27. Kopiera tabellen från databasen
Markera tabellen i databasen. Högerklicka och välj "Kopiera".

27. Markera datan i tabellen i databasen. Högerklicka och "Kopiera".
28. Klistra in tabellen i LibreOffice Kalkylblad (Calc)
Markera tabellen i LibreOffice Kalkylblad (Calc). Högerklicka och välj "Klistra in".
29. Spara tabellen
Nu har vi fått in datan i LibreOffice Kalkylblad (Cal). Spara din data i önskat format. Vill du öppna tabellen i Microsoft Office Excel så är det en god idé att spara tabellen i .xls-/.xlxs-format.

Välj "Spara som..." och spara din tabell.

29. Spara i Excel-format.


PUH, KLART!

Inga kommentarer:

Skicka en kommentar