---
title: "Excellistor - sammanställa 2 listor"
type: "forum-thread"
url: "https://www.webforum.nu/amne/kontorsprogram/184565-excellistor-sammanställa-2-listor"
topic: "Kontorsprogram"
topic_url: "https://www.webforum.nu/amne/kontorsprogram"
author: "dirigenten"
published: "2010-09-08T07:29:25.000Z"
updated: "2010-10-18T14:40:57.000Z"
replies: 7
views: 2122
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/kontorsprogram/184565-excellistor-sammanställa-2-listor"
---

# Excellistor - sammanställa 2 listor

## #1 — dirigenten, 2010-09-08T07:29Z

Hej
Skulle vilja få ihop två listor i excel till en enligt beskrivningen nedan, kanske inte jättetydlig, men förhoppningsvis tillräckligt för att få tips

LISTA ETT					LISTA TVÅ					
Nr	Namn	FK	Pers	Oms		Nr	Namn	FK	Pers	Ant
101	AB	S	ASON	50		101	AB	S	ASON	1
102	BB	M	XSON	25		104	DB	V	BSON	2
103	CB	Ö	YSON	75		104	DB	V	CSON	3
104	DB	V	BSON	50		105	EB	N	DSON	1
105	EB	N	DSON	25		105	EB	N	ESON	2
106	FB	S	ZSON	70		107	GB	M	FSON	5
107	GB	M	FSON	25		107	GB	M	GSON	2
108	HB	Ö	ISON	70		107	GB	M	HSON	5
109	IB	V	ÅSON	25		108	HB	Ö	ISON	3
110	JB	N		70		108	HB	Ö	JSON	1
						110	JB	N	KSON	2
										
	Vill jag få ihop till….									
	LISTA TRE… Som alltså matchar värden i de två listorna och sedan ger en fin sammanställning									
	I Lista ett finns varje "Nr" bara en gång, i Lista två kan "Nr" finnas flera ggr och med olika "Pers" och "Ant" Alla "Nr" finns inte i lista två. I lista tre, som exemplet visar skall alltså "NR" finnas för varje förekomst i lista ett och flera ggr om det finns flera i lista två. "OMS" skall hämtas från lista 1, en gång. Finns samma "Nr" fler ggr, skall "OMS" vara tom på alla under den första. "Pers" hämtas om det finns från lista två annars från lista ett, namnet kan vara olika på samma nr, se lista ett. Antal hämtas från lista två om det finns annars tomt, alternativt "0".   "NAMN" är kopplat till "NR". "FK" hämtas på samma sätt som "PERS" 									
	NR	NAMN	FK	OMS	PERS	ANT	OK			
	101	AB	S	50	ASON	1	JA			
	102	BB	M	25	XSON		NEJ			
	103	CB	Ö	75	YSON		NEJ			
	104	DB	V	50	BSON	2	JA			
	104	DB	V		CSON	3	JA			
	105	EB	N	25	DSON	1	JA			
	105	EB	N		ESON	2	JA			
	106	FB	S	70	ZSON		NEJ			
	107	GB	M	25	FSON	5	JA			
	107	GB	M		GSON	2	JA			
	107	GB	M		HSON	5	JA			
	108	HB	Ö	70	ISON	3	JA			
	108	HB	Ö		JSON	1	JA			
	109	IB	V	25	ÅSON		NEJ			
	110	JB	N	70	KSON	2	JA

Permalänk: https://www.webforum.nu/p/184565

## #2 — iHouse, 2010-09-28T18:05Z

Det är lite rörigt att försöka läsa det där, bättre om du bifogar en fil så att man kan labba lite :)

Permalänk: https://www.webforum.nu/p/2255541

## #3 — LimeS, 2010-10-18T11:51Z

Jag har samma fråga, fast enklare beskriven!

Jag vill slå ihop två kolumner och att datan från de båda slås ihop i den nya kolumnen.

före:

FÖRNAMN &#305; EFTERNAMN
Sara &#305; JÖNSSON
Erik &#305; ANDERSSON
STIG &#305; LARSSON

efter:

NAMN
SARA JÖNSSON
ERIK ANDERSSON
STIG LARSSON

Hur gör man det?

Permalänk: https://www.webforum.nu/p/2257216

## #4 — Lasp, 2010-10-18T11:57Z

Kanske moderator lägger LimeS fråga i en ny tråd!
Ja det är enkelt, skapa en ny kolumn, välj sammanfoga kolumn a1 + " " + B2.
Göm sedan ursprungskolumnerna.

Permalänk: https://www.webforum.nu/p/2257219

## #5 — aron, 2010-10-18T12:10Z

@dirigenten

Detta löses väll enklast med ett litet macro (VBA-script). Jag har ett liggandes nånstans som borde funka efter lite modifiering.

Edit: Bra att man sparat allt som Excelfiler och inte kan öppna dem utan Excel, nån som vet om man kan se macron med Excel Viewer?

Permalänk: https://www.webforum.nu/p/2257223

## #6 — LimeS, 2010-10-18T12:19Z

Sweet att det är enkelt! Varför klarar jag det än inte? :D
Okej, jag har skapat en ny kolumn. Ska jag ha denna markerad? Var väljer jag "sammanfoga"?
Det är kolumn B + C som ska bli D!

Permalänk: https://www.webforum.nu/p/2257225

## #7 — Lasp, 2010-10-18T12:26Z

\>LimeS  Markera D kolumnen Välj formler Text sammanfoga.
Sitter i denna maskin med Engelsk Off 2007 så jag kan inte ge dig exakt hur.
Men det borde räcka
Sedan ville du ha allt versalt, det gör du med Upper vad det nu heter på svaenska och det gör du på B och C innan sammanslagning, notera att du skall slå ihop tre fält B1 +" " + C1

Permalänk: https://www.webforum.nu/p/2257228

## #8 — aron, 2010-10-18T14:40Z

Ok here we go, har du lite programmerings erfarenhet ska detta inte vara några problems :D Börjar med lite grundläggande om macron om du inte redan kan det.

**Skriva Macro-script (steg 4 kan hoppas över)**

> Create a macro using Microsoft Visual Basic
>
> 1\. On the Tools menu in Microsoft Excel, point to Macro, and then click Visual Basic Editor.
> 2\. On the Insert menu, click Module.
> 3\. Type or copy your code into the code window of the module.
> *4\. If you want to run the macro from the module window, press F5.*
> 5\. When you're finished writing your macro, click Close and Return to Microsoft Excel on the File menu.
> <http://office.microsoft.com/en-au/excel-help/create-a-macro-HP005204711.aspx>

För att köra macrot senare så väljer man det i menyn Tools-\>Macro-\>Macros

**Förbered Excel Filen**

Gör 3 flikar, lägg lista 1 i första fliken och lista 2 i andra fliken. Döp flikarna till List1, List2, List3 (om du ska använda mitt macro) Ha Nr i column A och börja på rad 1 i varje flik.

**The Codes**

Helt otestat, och jag har inte lagt in alla kolumner, men en start för dig om du kan förstå koden. Se de båda \*\*\* i koden, raden ovanför är exempel på hur vi skriver nummret till list3. Du lägga till flera liknande rader och anpassa dessa beroende på om du hämtar värden från lista1 eller lista2 och ändra "A" till den kolumn som det ska skrivas till. 

Vi går igenom lista 1 rad för rad, för varje rad går vi igenom hela lista 2 och lägger in resultat i lista 3. 

```
Sub List3macro()
      Dim list1 As Worksheet
      Dim list2 As Worksheet
      Dim list3 As Worksheet

      Set list1 = ThisWorkbook.Worksheets("List1")
      Set list2 = ThisWorkbook.Worksheets("List2")
      Set list3 = ThisWorkbook.Worksheets("List3")

      ' Note: Use double if to may rows for Integer.
      ' Row counters used to keep track of witch row 
      ' we are currently reading or writing to.
      Dim list1row As Integer
      Dim list2row As Integer
      Dim list3row As Integer

      list1row = 1
      list2row = 1
      list3row = 1

      ' Maybe use a bool instead!
      Dim isInList2 As String 
      isInList2 = "False"

      ' While column A in sheet list1 has content
      While Len(list1.Range("A" & CStr(list1row)).Value) > 0

            ' While column A in sheet list2 has content
            While Len(list2.Range("A" & CStr(list2row)).Value) > 0
                  ' Add row to list3 when there is a row with same number in list 2
                  If list1.Range("A" & CStr(list1row)).Value = list2.Range("A" & CStr(list2row)).Value Then
                        isInList2 = "True"
                        list3.Range("A" & CStr(list3row)).Value = list1.Range("A" & CStr(list1row)).Value
                        ' *** Lägg till övriga kolumner som ska vara med
                        
                        list3row = list3row + 1
                  End If
                  list2row = list2row + 1
            Wend

            ' Add row to list3 when there is no row with same number in list2 
            if isInList2 = "False" Then
                  list3.Range("A" & CStr(list3row)).Value = list1.Range("A" & CStr(list1row)).Value
                  ' *** Lägg till övriga kolumner som ska vara med
                  list3row = list3row + 1
            End If

            list2row = 1
            isInList2 = "False"
            list1row = list1row + 1
      Wend
End Sub
```

Går att göra effektivare men våra snabba datorer gör så att det inte spelar så stor roll.

Permalänk: https://www.webforum.nu/p/2257237

---

Tråden på webben: https://www.webforum.nu/amne/kontorsprogram/184565-excellistor-sammanställa-2-listor
